在程序集中打印数组元素
print elements of array in assembly
我是组装新手,我正在使用 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。请纠正我如何打印第二个元素。
如果你只想打印 "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
我是组装新手,我正在使用 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。请纠正我如何打印第二个元素。
如果你只想打印 "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