![]() |
|
|||||||
| 論壇說明 |
|
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
|
主題工具 | 顯示模式 |
|
|
#8 (permalink) |
|
管理版主
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
臨時複習了一上午
語法:
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
不過邏輯應該沒錯 解說: ![]() |
|
|
送花文章: 2060,
|