8085程式查詢數字的n次冪
在本程式中,我們將瞭解如何查詢數字的n次冪。
問題陳述
編寫8085組合語言程式以查詢數字的n次冪。底數儲存在8000H位置,指數儲存在8001H。將結果儲存在8002H。
討論
在8085中,我們不能直接執行乘法運算。這裡我們正在編寫一個子程式,透過重複加法來執行乘法。要執行數字的n次冪,我們必須將數字乘以n次。n值用作計數器。如果底數為03H,指數為05H,則結果為F3H (243D)
輸入
地址 | 資料 |
---|---|
… | … |
8000 | 03 |
8001 | 05 |
流程圖
程式
地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
---|---|---|---|---|
F000 | 21, 00, 80 | | LXI H,8000H | 初始化HL對 |
F003 | 46 | | MOV B,M | 將底數取到B |
F004 | 23 | | INX H | 指向下一個位置 |
F005 | 4E | | MOV C,M | 將指數取到C |
F006 | 16, 01 | | MVI D, 01H | 用01H初始化D |
F008 | CD, 12, F0 | LOOP | CALL MUL | 呼叫子程式進行乘法 |
F00B | 0D | | DCR C | 將C減1 |
F00C | C2, 08, F0 | | JNZ LOOP | 跳轉到Loop |
F00F | 23 | | INX H | 指向下一個位置 |
F010 | 72 | | MOV M,D | 將D儲存到記憶體中 |
F011 | 76 | | HLT | 終止程式 |
F012 | 58 | MUL | MOV E,B | 將B載入到E |
F013 | AF | | XRA A | 清除累加器以儲存結果 |
F014 | 82 | ML | ADD D | 將D加到A |
F015 | 1D | | DCR E | 遞減E |
F016 | C2, 12, F0 | | JNZ ML | 如果Z = 0,則跳轉到ML |
F019 | 57 | | MOV D,A | 將A的內容傳輸到D |
F01A | C9 | | RET | 返回結果 |
輸出
地址 | 資料 |
---|---|
8002 | F3 |
廣告