如何解决我无法在 MASM 中使用宏打开文件
我在包含文件和使用宏时遇到问题。我需要打开一个文本文件,为此我在一个单独的文件中创建了一个宏。问题是当我使用宏尝试打开文件时,系统无法打开它并转到错误标记。但是,如果我将宏代码放在 main 函数中,它就可以正常工作。我究竟做错了什么?谢谢。 我在 Ubuntu 上使用 DosBox。
main.asm
include CAD.ASM
include ARC.ASM
spila segment stack
DB 32 DUP ('stack___')
spila ends
sdatos segment
RUTA DB 'test.xml',00H
ERR1 DB 'error: no se pudo abrir el archivo','$'
ERR2 DB 'error: no se pudo cerrar el archivo','$'
HAND DW ?
sdatos ends
scodigo segment 'CODE'
ASSUME SS:spila,DS:sdatos,CS:scodigo
main PROC FAR
PUSH DS
MOV AX,0
PUSH AX
MOV AX,sdatos
MOV DS,AX
MOV AH,3DH
MOV AL,02H
LEA DX,RUTA
INT 21H
JC msjError1
MOV HAND,AX
MOV AH,3EH
MOV BX,HAND
INT 21H
JC msjError2
JMP salir
;inicio:
; abrirArchivo RUTA,HAND ; Doesn't work
; cerrararchivo HAND ; Doesn't work
msjError1:
imprimirTexto ERR1
JMP salir
msjError2:
imprimirTexto ERR2
JMP salir
salir:
RET
main endp
scodigo ends
end main
cad.asm
imprimirTexto MACRO string
MOV AH,09H
LEA DX,string
INT 21H
ENDM
arc.asm
abrirArchivo MACRO buffer,handler
MOV AH,3DH
MOV AL,02H
LEA DX,buffer
INT 21H
JC msjError1
MOV handler,AX
ENDM
cerrararchivo MACRO handler
MOV AH,3EH
MOV BX,handler
INT 21H
JC msjError2
ENDM
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。