8085程式求前n個自然數之和
在這個程式中,我們將學習如何計算前n個自然數之和。
問題陳述
編寫一個8085組合語言程式來計算前N個自然數之和。N的值已給出。
討論
我們從記憶體地址8000H獲取N的值。我們將數字N用作計數變數,在每一步中,我們計算(A + 計數)的值,並將它們儲存到A中。加完之後,計數器值遞減,因此完成了整個序列的計算。
如果數字是23H(35D),則總和將是(35*36)/2 = 630 (276H)
輸入
| 地址 | 資料 |
|---|---|
| . . . | . . . |
| 8000 | 23 |
| . . . | . . . |
流程圖

程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
|---|---|---|---|---|
| F000 | 21, 00, 80 | LXI H,8000H | 指向獲取上限的地址 | |
| F003 | 4E | MOV C, M | 將上限載入到C暫存器 | |
| F004 | AF | XRA A | 清零A暫存器 | |
| F005 | 47 | MOV B, A | 也清零B暫存器 | |
| F006 | 81 | LOOP: | ADD C | 將C加到A |
| F007 | D2, 0B, F0 | JNC SKIP | 如果CY = 0,跳過下一步 | |
| F00A | 04 | INR B | 如果CY = 1,則增加B | |
| F00B | 0D | SKIP: | DCR C | C減1 |
| F00C | C2, 06, F0 | JNZ LOOP | 直到Z = 1,跳轉到LOOP | |
| F00F | 21, 50, 80 | LXI H, 8050H | 指向目標地址 | |
| F012 | 77 | MOV M, A | 儲存累加器內容 | |
| F013 | 23 | INX H | 指向下一個位置 | |
| F014 | 70 | MOV M, B | 儲存高位位元組 | |
| F015 | 76 | HLT | 結束程式 |
輸出
| 地址 | 資料 |
|---|---|
| . . . | . . . |
| 8050 | 76 |
| 8051 | 02 |
| . . . | . . . |
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP