8086汇编问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 19:42:16
我的初学者.下面的这段程序有点不明.请高手帮详解一下.谢谢了.
例] 已知三个无符号数:X=1234 5678H,Y=5678 9ABCH,Z=0102 0304H 顺序放在符号地址DATA开始的存储器单元中。
请编制程序段:实现(X+Y-Z)的运算,并将结果送人DATA+12开始的存储器单元中
MOV AX,DATA
MOV DX,DATA+2
ADD AX,DATA+4
ADC DX,DATA+6
SUB AX,DATA+8
SBB DX,DATA+10
MOV DATA+12,AX
MOV DATA+14,DX
如说明白了,我会再加20-50分.

8086采用的是小尾顺序存储,即低字节存低地址,高字节存高地址。

下面是对这段代码的解释,有什么不懂的可以HI我……

MOV AX,DATA ;X的低位,即5678h送给AX
MOV DX,DATA+2 ;X的高位,即1234h送给DX
ADD AX,DATA+4 ;X的低位加上Y的低位,即5678h+9ABCh,并将所得结果送给AX
ADC DX,DATA+6 ;带进位对X的高位和Y的高位相加,即1234h+5678h+低位相加后送来的进位,并将所得结果送给DX
SUB AX,DATA+8 ;X+Y的低位减去Z的低位,即 X+Y的低位-0304h,结果存于AX
SBB DX,DATA+10 ;带借位将X+Y的高位和Z的高位相减,即X+Y的高位-0102h-低位相减后被借走的位,结果存于DX
MOV DATA+12,AX ; 将X+Y-Z的低位存于DATA+12
MOV DATA+14,DX ;将X+Y-Z的高位存于DATA+14

希望对你有帮助……