8085程式查詢16位數的1補碼和2補碼
在這個程式中,我們將看到如何查詢16位數的1補碼和2補碼。
問題陳述
編寫8085組合語言程式,查詢儲存在8000H和8001H中的16位數的1補碼和2補碼。
討論
8085有一個指令CMA。此指令對累加器的內容取反。對於1補碼,CMA指令就足夠了,對於2補碼,我們需要在取反後將數字加1。
對於16位數,我們將數字放入HL對中,但是為了取反,我們必須將數字從H和L逐一複製到累加器中。然後透過INX指令,我們將增加HL對以獲得2補碼
我們從8000H和8001H獲取數字,並將1補碼儲存在8050H和8051H位置,並將2補碼儲存在8052H和8053H位置。
輸入
| 地址 | 資料 |
|---|---|
| . . . | . . . |
| 8000 | CD |
| 8001 | AB |
| . . . | . . . |
流程圖

程式
| 地址 | 十六進位制程式碼 | 助記符 | 註釋 |
|---|---|---|---|
| F000 | 2A, 00, 80 | LHLD 8000H | 將記憶體中的數字載入到HL |
| F003 | 7C | MOV A, H | 將H的內容載入到A |
| F004 | 2F | CMA | 對累加器取反 |
| F005 | 67 | MOV H, A | 用A替換H |
| F006 | 7D | MOV A, L | 將L的內容載入到A |
| F007 | 2F | CMA | 對累加器取反 |
| F008 | 6F | MOV L, A | 用A替換L |
| F009 | 22, 50, 80 | SHLD 8050H | 儲存1補碼結果 |
| F00C | 23 | INX H | 將HL加1 |
| F00D | 22, 52, 80 | SHLD 8052H | 儲存2補碼結果 |
| F010 | 76 | HLT | 終止程式 |
輸出
| 地址 | 資料 |
|---|---|
| . . . | . . . |
| 8050 | 32 |
| 8051 | 54 |
| 8052 | 33 |
| 8053 | 54 |
| . . . | . . . |
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP