0
編輯: 對不起,我犯了一個新手錯誤,並且一直在改變BX的價值! :) 無論如何,謝謝。BX副作用?
我很喜歡NASM和MBR,由於某些原因,BX寄存器被設置爲「某些」值,即使我沒有寫入(只讀)。
這是爲什麼?我確定我錯過了一些明顯的東西,但我似乎找到了任何可以解釋這種行爲的教程。
代碼中的問題:
partfun:
mov bx, 01beh ; store a starting address to BX
; I will increment it later
mov cx, 0
mov al, bl ; BX changes here already, I think!
mov al, bh
; do something with AL here
.loop:
mov al, [bx]
; do something with AL here
add bx, 16 ;BX is 0110h now, not 01ceh, as I would expect!
;I wish to increment the stored value (address) by 16
inc cx
cmp cx, 4
jl .loop
ret
僅限「mov al,bl」*將BL值複製到AL,從而使BX寄存器完全不變,否? – user1248092 2012-03-04 13:16:40
@ user1248092:對不起,你說的沒錯,我的回答是錯誤的。我總是對AT&T和Intel語法感到困惑...... – cha0site 2012-03-04 13:24:15