我对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
答案 0 :(得分:1)
将.386
置于何处。在您的情况下,SEGMENT
指令将被解释为USE32段,但您需要一个USE16段。
更改
CODE SEGMENT
到
CODE SEGMENT USE16
或将.386
指令放在<{strong> CODE SEGMENT
行之后。