assembly 程序集扩展寄存器不工作

z3yyvxxp  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(224)

我是相当新的汇编和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
mfpqipee

mfpqipee1#

这与.386的位置有关。在您的情况下,SEGMENT指令将被解释为USE32段,但您需要USE16段。
变更

CODE  SEGMENT

CODE  SEGMENT USE16

或者将.386指令放在CODE SEGMENT之后。

相关问题