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。没有哨兵,我不能打印没有垃圾和其他字符的数组。 :( 我不知道它是因为我的操作系统,Windows 7 32位还是汇编程序。请帮我。 :(
答案 0 :(得分:1)
请看这两条说明:
mov bx, offset array1
GET:
...
mov [array1+bx], al
使用array1
的地址然后在array1+bx
中将其添加到自身中,您觉得奇怪吗?