问题描述
我在包含文件和使用宏时遇到问题。我需要打开一个文本文件,为此我在一个单独的文件中创建了一个宏。问题是当我使用宏尝试打开文件时,系统无法打开它并转到错误标记。但是,如果我将宏代码放在 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 (将#修改为@)