我需要撰寫函式,以實模式輸出字串。有那個代碼:
;; ds:si - string address, cx - length of string
cld
putc:
lods
mov ah, 0x0E
xor bh, bh
int 0x10 ;; display character, advancing cursor and scrolling screen
;; as necessary
loop putc
但它只輸出第一個字符很少(由 CX 暫存器定義)次,即 SI 暫存器不增加。是哪里出錯了?
uj5u.com熱心網友回復:
lods不是有效的指令助記符;你可能的意思是lodsb。
在我的匯編程式(nasm)上,不是有效助記符的標記被決議為標簽,因此不會發出任何代碼。因此,您lods實際上是一個空操作,所以難怪 SI 不會增加。(不過,匯編器確實會發出警告,你的呢?)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/424429.html
