可能产生进位,高字节相加就用ADDC
这样,低字节相加产生的进位就会被加进来。
比如 0080H + 0180H
低字节相加用 ADD
80H+80H=100H 用ADD指令得到 00H 并溢出产生进位 C=1
高字节 相加用 ADDC
00H+01H=01H 用 ADDC 指令两数相加结果 01H会再加上进位位 1 得到 02H
0080H+0180H = 02 00H
再比如
0080H + 0101H
80H+01H = 81H 没有溢出进位为 C=0
00H+01H =01H 用ADDC指令会 再加进位位 C=0 得到 01H
结果 0080H+0101H = 0181H
请说明JMP DI和JMP [DI]指令的区别.
谢谢.
20还有几个问题谢谢;
1.用寄存器BX和SI的基址变址寻址方式,把存储器中的一个字节与AL寄存器的内容相加,并把结果送回存储器中.
2.用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器的一个字和(CX)相加,并把结果送回存储器中.
3.用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回该存储单元中.
请说明JMP DI和JMP [DI]指令的区别.
DI就是指放进它里面的东西,如一个内存单元的偏移地址0001H;[DI]表示存储单元里的内容,如偏移地址为0001H内存单元里面放着数据12H,那么[DI]就是指12H.
1.用寄存器BX和SI的基址变址寻址方式,把存储器中的一个字节与AL寄存器的内容相加,并把结果送回存储器中.
ADD AL,[BX][SI]
2.用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器的一个字和(CX)相加,并把结果送回存储器中.
ADD [BX+B2H],CX
3.用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回该存储单元中.
题目打错了吧?0524H应该是偏移地址吧。这样的话,代码如下:
MOV AX,2A59H
ADD [0524H],AX
请说明JMP DI和JMP [DI]指令的区别.
谢谢.
20还有几个问题谢谢;
1.用寄存器BX和SI的基址变址寻址方式,把存储器中的一个字节与AL寄存器的内容相加,并把结果送回存储器中.
2.用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器的一个字和(CX)相加,并把结果送回存储器中.
3.用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回该存储单元中.
请说明JMP DI和JMP [DI]指令的区别.
DI就是指放进它里面的东西,如一个内存单元的偏移地址0001H;[DI]表示存储单元里的内容,如偏移地址为0001H内存单元里面放着数据12H,那么[DI]就是指12H.
1.用寄存器BX和SI的基址变址寻址方式,把存储器中的一个字节与AL寄存器的内容相加,并把结果送回存储器中.
ADD AL,[BX][SI]
2.用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器的一个字和(CX)相加,并把结果送回存储器中.
ADD [BX+B2H],CX
3.用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回该存储单元中.
题目打