8085程式:反轉16位數
在本程式中,我們將學習如何使用8085反轉16位數的數字。
問題陳述
編寫8085組合語言程式,反轉儲存在8000H-8001H位置的16位數。並將結果儲存在8050H-8051H。
討論
這裡的任務很簡單。8085中有一些旋轉指令。RRC、RLC分別用於將累加器內容向右和向左旋轉,不帶進位。我們可以使用RRC或RLC來執行此任務。在最終結果中,H和L的每一位都反轉了,H和L的值也反轉了。因此完成了全部反轉操作。
輸入
地址 | 資料 |
---|---|
… | … |
8000 | AB |
8001 | CD |
… | … |
流程圖
程式
地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
---|---|---|---|---|
F000 | 2A, 00, 80 | | LHLD 8000H | 將數字放入HL暫存器對 |
F003 | 7D | | MOV A,L | 將L載入到A |
F004 | 0F | | RRC | 向右旋轉四次,不帶進位 |
F005 | 0F | | RRC | |
F006 | 0F | | RRC | |
F007 | 0F | | RRC | |
F008 | 6F | | MOV L,A | 將反轉後的數字再次儲存到L |
F009 | 7C | | MOV A,H | 將H載入到A |
F00A | 0F | | RRC | 向右旋轉四次,不帶進位 |
F00B | 0F | | RRC | |
F00C | 0F | | RRC | |
F00D | 0F | | RRC | |
F00E | 65 | | MOV H,L | 將L的值賦給H |
F00F | 6F | | MOV L,A | 將反轉後的數字儲存到L |
F010 | 22, 50, 80 | | SHLD 8050H | 將結果儲存到記憶體 |
F013 | 76 | | HLT | 終止程式 |
輸出
地址 | 資料 |
---|---|
… | … |
8050 | DC |
8051 | BA |
… | … |
廣告