Arrays 汇编程序8086:半输入阵列和一个单输出
我试着编译并运行这个简单的程序:Arrays 汇编程序8086:半输入阵列和一个单输出,arrays,assembly,input,output,x86-16,Arrays,Assembly,Input,Output,X86 16,我试着编译并运行这个简单的程序: 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 l
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 eq 10”中声明的十个值。然后,在此之后,程序只显示插入数组中的第一个值
我在MASM611上运行这个程序,在Mac OS X 10.9上运行DOSBOX 0.74。任何人都能理解为什么我只能插入五个值,而只能得到一个值作为输出?如何解决这些问题?根据您描述的行为,我猜您输入了如下内容:
1 <Return>
2 <Return>
3 <Return>
4 <Return>
5 <Return>
1
2.
3.
4.
5.
但是,INT 21H/AH=01H
不会等待按下回车键,因此每次按下回车键时,该键将被视为附加字符
如果您只是输入以下内容:
1234567890
该计划的回应是:
0987654321
正如所料。是的,你完全正确。非常感谢你的帮助。