汇编编程非法索引模式

时间:2015-01-15 11:42:56

标签: assembly tasm

我想知道为什么这个程序会给我一个错误。

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

1 个答案:

答案 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