我对 Assembly 和 TASM 相当陌生,我有以下问题。
我想使用寄存器的扩展版本,特别是 EBX。通过使用下面的代码,但没有“.386”指令,它不起作用,说“未定义的符号 EBX”。但有了它,它无法识别 INT 21h 指令,据我了解,该指令终止了程序,并且在使用 TurboDebugger 调试它时很有用。
有人可以告诉我如何避免这种情况吗?
PS:是的,我知道 TASM 和 TD 很老了,还有更新的更好的,例如 NASM 或 MASM,但我们必须在大学使用这个,所以请不要告诉我使用其他的。
这是代码:
.386
CODE SEGMENT
ASSUME CS : CODE , DS : CODE , SS : CODE
ORG 100H
ENTRY: JMP L1
; data definitions come here
;. . .
L1:
MOV EBX, 10H
MOV AX , 4C00H
INT 21H
CODE ENDS
END ENTRY
放在哪里是相关的.386
。在你的情况下SEGMENT
指令将被解释为 USE32 段,但您需要 USE16 段。
Change
CODE SEGMENT
to
CODE SEGMENT USE16
或者把.386
指示after the CODE SEGMENT
-line.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)