程序集扩展寄存器不起作用

时间:2014-11-09 13:16:23

标签: assembly tasm

我对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

1 个答案:

答案 0 :(得分:1)

.386置于何处。在您的情况下,SEGMENT指令将被解释为USE32段,但您需要一个USE16段。

更改

CODE  SEGMENT

CODE  SEGMENT USE16

或将.386指令放在<{strong> CODE SEGMENT行之后。