ideal
model small
stack 1024
dataseg
array1 db 11 dup(?)
codeseg
org 100h
PROC MAIN
CALL GETINPUT
CALL PRINTARRAY
EXIT:
mov ah, 4ch
int 21h
ENDP
PROC PRINTARRAY
lea dx, [array1]
mov ah, 9
int 21h
ret
ENDP
PROC GETINPUT
mov bx, offset array1
GET:
CALL GETCHAR
cmp al, '.'
je ENDGET
mov [array1+bx], al
inc bx
cmp bx, 10
jge ENDGET
CALL PRINTSPACE
jmp GET
ENDGET:
mov [array1+bx], '$'
ret
ENDP
PROC GETCHAR
mov ah, 1
int 21h
ret
ENDP
PROC PRINTSPACE
mov dl, ' '
mov ah, 2
int 21h
ret
ENDP
PROC PRINTCHAR
mov ah, 2
int 21h
ret
ENDP
END MAIN
「$」を追加すると、NTVDM エラー cs:0423 ip:0125 が表示されます。センチネルがないと、ガベージやその他の文字が含まれていない配列を印刷できません。:(それが私のOS、Windows 7 32ビット、またはアセンブラのせいなのかわかりません。助けてください。:(