我正在尝试学习汇编语言,但我在写入数组时遇到了一个简单的问题。我的程序应该读取命令行参数,显示它们并写入数组。在下面的代码中,有一个标记的行。如果我用这行注释程序编译它可以正常工作,但如果我取消注释它,它会在显示几个字符后挂起。这里有什么问题?当参数行较短但此数组应足够大以包含整个命令行时,它可以工作。我在这里错过了什么吗?
assume cs:kod, ds:dane
kod segment
.286
start:
mov ax,seg wstos
mov ss,ax
mov sp,offset wstos
xor cx,cx
xor ax,ax
mov si,80h
mov dl,[si]
mov cl,dl
mov ah,2h
int 21h
inc si
xor di,di
petla:
inc si
mov dl,[si]
;mov [tablica + di],dl <<<< this line
test dl,dl
jz sprawdz
int 21h
inc di
dalej:
loop petla
sprawdz:
mov al,[si+1]
cmp al,0
jne dalej
koniecprogramu:
mov ax,4c00h
int 21h
dane segment
tablica db 128 dup(0)
dane ends
stos1 segment STACK
dw 256 dup(?)
wstos dw ?
stos1 ends