我试图编译并运行这个简单的程序:
DIM EQU 10
.MODEL small
.STACK
.DATA
VETT DB DIM DUP(?)
.CODE
.STARTUP
MOV CX,DIM
MOV DI,0
MOV AH,1
lab1: INT 21H
MOV VETT[DI], AL
INC DI
DEC CX
CMP CX,0
JNZ lab1
MOV CX,DIM
MOV AH,2
lab2: DEC DI
MOV DL, VETT[DI]
INT 21H
DEC CX
CMP CX,0
JNZ lab2
.EXIT
END
当我尝试在数组中插入值时,我只能在第一行“DIM EQU 10”中声明五个值而不是十个值。然后,在那之后,程序只显示插入数组的第一个值。
我在Mac OS X 10.9上使用DOSBOX 0.74在MASM611上运行此程序。任何人都可以理解为什么我只能插入五个值而我只得到一个值作为输出?我该如何解决这些问题?
答案 0 :(得分:1)
根据你所描述的行为,我猜你正在输入这样的东西:
1 <Return>
2 <Return>
3 <Return>
4 <Return>
5 <Return>
但是,INT 21H / AH=01H
不会等待按下Return键,因此每次按Return键都会被视为附加字符。
如果您只是输入此内容:
1234567890
程序以
响应 0987654321
正如所料。