我正在尝试打印这个数组。以下是我的代码。但它打印了一些奇怪的字符9次(如:εεεεεεεε)...请告诉我有什么问题?
.data
arr db 2,3,4,5,6,7,8,9,0
.code
Main Proc
mov cx, 9
l1:
lea si, arr
mov bl, arr[si]
mov dl, bl
mov ah, 2
int 21h
inc si
loop l1
答案 0 :(得分:0)
您需要将要显示的 ASCII字符放入dl
。如何将ASCII字符放入程序中取决于您的汇编程序,最简单的方法就是自己计算数值。
至于实际代码,你的循环标签l1
处于错误的位置,并且它周围的一些代码是多余的。您可以编写这样的程序:
.data
arr db 50,51,52,53,54,55,56,57,48
.code
Main Proc
mov cx, 9
#wrong position l1:
lea si, arr
#redundant mov bl, arr[si]
l1:
mov dl, [si]
mov ah, 2 #not sure if this could be moved in front of the loop, check if syscall clobbers ah
int 21h
inc si
loop l1