臨時複習了一上午
語法:
include Irvine32.inc
.data
x1 QWORD 0A02B000190008400h
x2 QWORD 800187008000A904h
; 答案是 01202C870210012D04h 共9個Byte
sum BYTE 9 DUP(?) ;所以申請9個Byte的記憶體空間
.code
main PROC
xor eAX,eAX ;清除AX=0
mov eDI,0 ;目的索引暫存器亦清除
mov eCX,9
CLC
L1:
jnc L2 ;若CF=0則跳到 L2:
adc BYTE PTR [sum+eDI],0 ;否則 sum[下一個Byte]=sum[下一個Byte]+1
CLC ;清除進位旗標 CF=0
L2:
mov AL,BYTE PTR [x1+eDI] ;AL=[x1+eDI]
add AL,BYTE PTR [x2+eDI] ;AL=AL+[x2+eDI]
mov BYTE PTR [sum+eDI],AL ;結果放到 sum
inc eDI ;做下一個Byte
loop L1
;傾印記憶體內容
mov eSI,offset sum
mov CX,9
call DumpMem
call DumpRegs
exit
main ENDP
END main
組譯起來對不對 個人不敢作保證 (沒安裝ASM)
不過邏輯應該沒錯
解說: