TITLE 64bit-add (.asm)
; 计算64位数的加法50000000H+40000000H+70000000H,用EAX,EDX存放第一个加数,其中高位部份存放在EDX中;用EBX,ECX存放第二个加数,其中高位部份存放在EBX存放高位。
; Last update:2009/10/23
; Last update:2009/10/23
Include Irvine32.inc
.data
.data
.code
main PROC
main PROC
mov eax,50000000h
mov edx,00000000h
mov ecx,40000000h
mov ebx,00000000h
;将第一个加数存入eax和edx,将第二个加数存入ecx和ebx
mov edx,00000000h
mov ecx,40000000h
mov ebx,00000000h
;将第一个加数存入eax和edx,将第二个加数存入ecx和ebx
add eax,ecx
adc edx,ebx
;高位与高位相加,低位与低位相加,计算结果高位存放在edx中,低位存放在eax中
adc edx,ebx
;高位与高位相加,低位与低位相加,计算结果高位存放在edx中,低位存放在eax中
mov ecx,70000000h
mov ebx,00000000h
;将第三个加数存入ecx和ebx中
mov ebx,00000000h
;将第三个加数存入ecx和ebx中
add eax,ecx
adc edx,ebx
;继续相加,结果在edx和eax中,edx中应该是00000001h,eax中应该是00000000h。CF标记为0
adc edx,ebx
;继续相加,结果在edx和eax中,edx中应该是00000001h,eax中应该是00000000h。CF标记为0
call DumpRegs
;调用DumpRegs函数,显示寄存器的值
exit
main ENDP
END main
main ENDP
END main
转载于:https://blog.51cto.com/yybug/215679