汇编(8086cpu): AX,BX,CX,DX寄存器
? ? ? AX,BX,CX,DX寄存器這四個寄存器也被稱為通用寄存器.一般用來存放數據,一個寄存器可以存放16bit,也就是2bytes. 所以也被稱為16位寄存器。
? ? ? 什么特殊的地方導致這四個寄存器和其他寄存器不一樣呢? 是因為這四個寄存器可以被分為兩個8位寄存器,比如
? ? ? ?AX = AH + AL, BX = BH+BL, CX = CH + CL, ?DX = DH+DL
? 8086cpu的數據線是16根,所以可以處理兩種尺寸的數據.?
? ? 1. 字節(jié)型數據,byte ?8bit存放到8位寄存器中。 ? 2. 字型數據, ?2bytes=16bit, 存放到16寄存器中。
?
在使用mov指令,要保證數據和寄存器之間位數的一致性。
使用mov ax, 5指令, 匯編編譯器會將5編譯成 16位的5, 但使用mov al,5指令,匯編編譯器會將5編譯成8位的5.也就是數據的位數要與寄存器的位數一致.
? mov ax, 6666; # ax寄存器只能存放16位數據,所以這條指令沒有問題。
? mov ax, 66666;# 66666H已經查過了16位,該數據放入不了ax寄存器,所以執(zhí)行會報錯。
?
那么,在做加法運算中,如果一個數查過了16位,ax會怎么存儲? 如果查過了8位,al,ah又會怎么存儲?
如下圖: 8080H+8080H = 10100H, 當ax只能存放16位,所以ax的值為 0100H, ?那么問題來了,前面的又1去哪了呢?
當8位的寄存器al加上超過8位的數據時, 執(zhí)行會報錯.
?
? ? ?
?
?
? ?
總結
以上是生活随笔為你收集整理的汇编(8086cpu): AX,BX,CX,DX寄存器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编:端口
- 下一篇: 汇编(8086cpu): 地址寄存器