汇编(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. 字节型数据,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寄存器,所以执行会报错。

 

那么,在做加法运算中,如果一个数查过了16位,ax会怎么存储? 如果查过了8位,al,ah又会怎么存储?

如下图: 8080H+8080H = 10100H, 当ax只能存放16位,所以ax的值为 0100H,  那么问题来了,前面的又1去哪了呢?

当8位的寄存器al加上超过8位的数据时, 执行会报错.

 

     

 

 

   

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值