アセンブリ言語を学ぼうとしていますが、配列への書き込みに単純な問題があります。私のプログラムは、コマンド ライン引数を読み取り、表示し、配列に書き込む必要があります。以下のコードには、マークされた行が 1 つあります。この行でコンパイルすると、コメント付きのプログラムは正常に動作しますが、コメントを外すと、いくつかの文字が表示された後にハングします。ここで何が問題なのですか?短い引数行がある場合に機能しますが、この配列はコマンド行全体を含めるのに十分な大きさでなければなりません。ここで何か不足していますか?
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