8085程式查詢數字的階乘
在這個程式中,我們將瞭解如何查詢數字的階乘。
問題陳述
編寫8085組合語言程式以查詢8位數字的階乘。
討論
在8085中,沒有直接指令可以執行乘法。我們需要執行重複加法才能獲得乘法的結果。在每一步中,我們都在減小B的值並乘以B的上一個值。我們重複這些步驟,直到B達到1。並將B – 1至0。 因此生成階乘。
輸入
| 地址 | 資料 |
|---|---|
| 8000 | 05 |
流程圖

程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
|---|---|---|---|---|
| F000 | 21, 00, 80 | | LXI H, 8000H | 載入數字 |
| F003 | 46 | | MOV B,M | 將記憶體中的數字取到B |
| F004 | 16, 01 | | MVI D, 01H | 將D設定為01H |
| F006 | CD, 10, F0 | FACT | CALL MUL | 呼叫乘法 |
| F009 | 05 | | DCR B | 將B減1 |
| F00A | C2, 06, F0 | | JNZ FACT | 如果Z = 0,則跳轉到Fact |
| F00D | 23 | | INX H | 指向下一個位置 |
| F00E | 72 | | MOV M,D | 將結果儲存到記憶體中 |
| F00F | 76 | | HLT | 終止程式 |
| F010 | 58 | MUL | MOV E,B | 將B載入到E |
| F011 | AF | | XRA A | 清除累加器以儲存結果 |
| F012 | 82 | ML | ADD D | 將D加到A |
| F013 | 1D | | DCR E | 遞減E |
| F014 | C2, 12, F0 | | JNZ ML | 如果Z = 0,則跳轉到ML |
| F017 | 57 | | MOV D,A | 將A的內容傳輸到D |
| F018 | C9 | | RET | 返回結果 |
輸出
地址 | 資料 |
|---|---|
8001 | 78 |
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP