3

我是组装新手,我正在使用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 是不打印的。请纠正我如何打印第二个元素。

4

1 回答 1

2

如果您只想打印“HIGOOD”,请编写:

MOV AH,2
MOV DL,MSG
INT 21H  
MOV DL,MSG+1
INT 21H
MOV DL,MSG+2
INT 21H  
MOV DL,MSG+3
INT 21H
MOV DL,MSG+4
INT 21H  
MOV DL,MSG+5
INT 21H

一个更好的方法是“$”-终止两个字符串MSG DB 'HI$','GOOD$',然后使用字符串输出函数 09h:

MSG DB 'HI$','GOOD$'
...
mov ah, 09h
mov dx, offset MSG
int 21h
mov dx, offset MSG+3
int 21h

更好的是为您的字符串分配单独的标签:

MSG1 DB 'HI$'
MSG2 DB 'GOOD$'
...
mov ah, 09h
mov dx, offset MSG1
int 21h
mov dx, offset MSG2
int 21h
于 2016-05-25T10:40:17.150 回答