【发布时间】:2016-05-23 06:51:37
【问题描述】:
我是组装新手,我正在使用 emu8086
我试图打印一个数组的两个元素,但我无法打印第二个元素
这是我的代码:
.MODEL SMALL
.STACK 100H
.DATA
MSG DB 'HI','GOOD$'
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV AH,2
MOV DL,MSG
INT 21H
MOV AH,2
MOV DL,MSG+1
INT 21H
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
在输出 hi 被打印,good 没有被打印。请纠正我如何打印第二个元素。
【问题讨论】:
-
您可以循环整个数组并打印偏移量的值。检查此链接:link
-
1)
int 21h / ah=02h打印单个字符,要打印您将使用int 21h / ah=09h的字符串。 2)您使用int 21h / ah = 09h打印的所有字符串都需要'$'-终止;目前只有'GOOD'是'$-终止的。 3)'GOOD'以MSG+2开头,而不是MSG+1(如果您将'$'终止符添加到'HI','GOOD'将从MSG+3开始)。如果您创建另一个包含每个字符串的地址的数组,这将简化事情,然后您可以在循环中处理它。