我想知道为什么这个程序会给我一个错误。
Turbo汇编3.0版版权所有(c)1988,1992 Borland International
汇编文件:sample.asm
错误 sample.asm(16)非法索引模式
错误讯息:1
警告信息:无
通行证:1
剩余记忆:470k
title test.program
cstack segment para stack 'stack'
dw 200h
cstack ends
cdata segment para 'data'
msg1 db 'Sample progr! $'
cdata ends
ccode segment para 'code'
assume cs: ccode, ds: cdata ,ss: cstack
main:
mov cl,00
stri:
mov ah,02h
mov dl,[msg1 +cl] ;< this line give me an error of illegal indexing mode
int 21h
add cl,02
cmp dl,12
jbe stri
mov ah,4ch
int 21h
ccode ends
end main
答案 0 :(得分:0)
如果要使用寄存器循环遍历 msg1 的字符,请使用索引寄存器,如SI,DI或BX。
当你add cl,2
时,你将无法正确显示字符串!
与12比较不包括感叹号字符。
main:
mov si,00
stri:
mov ah,02h
mov dl,[msg1 + si] ;< this line give me an error of illegal indexing mode
int 21h
add si,1
cmp si,13
jbe stri