我是一名新手汇编程序员,目前正在使用 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。请指正并告诉我如何打印第二个元素。
int 21h / ah=02h
时,会打印单个字符。若要打印字符串,需要使用指令int 21h / ah=09h
。2)所有使用指令int 21h / ah = 09h
打印的字符串都需要以$
结尾;目前只有'GOOD'
以$
结尾。3)'GOOD'
应该从MSG+2
开始,而不是从MSG+1
开始(如果你在'HI'
后添加一个$
,则'GOOD'
会从MSG+3
开始)。如果创建另一个数组来包含每个字符串的地址,那么可以在循环中处理这些地址并简化代码。 - Michael