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