查看單個文章
舊 2005-12-16, 12:59 PM   #8 (permalink)
mini
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:97 | 在線時長:9851小時 | 升級還需:145小時級別:97 | 在線時長:9851小時 | 升級還需:145小時級別:97 | 在線時長:9851小時 | 升級還需:145小時級別:97 | 在線時長:9851小時 | 升級還需:145小時級別:97 | 在線時長:9851小時 | 升級還需:145小時級別:97 | 在線時長:9851小時 | 升級還需:145小時級別:97 | 在線時長:9851小時 | 升級還需:145小時
註冊日期: 2002-12-07
文章: 13341
精華: 0
現金: 26444 金幣
資產: 3024304 金幣
預設

臨時複習了一上午

語法:
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)
不過邏輯應該沒錯
解說:
http://fapomatic.com/50/add_test1.jpg
mini 目前離線  
送花文章: 2013, 收花文章: 8001 篇, 收花: 26805 次
回覆時引用此帖