使用EAX,EBX,ECX等时未定义的符号异常

Den*_*son 1 x86 assembly

我在使用寄存器EAX,EBX,ECX等时得到一个未定义的符号异常我是X86编程的新手,所以任何帮助都将不胜感激

data segment
msg db 10,13,'enter the number$'
msg1 db 10,13,'the result$'
nline db 13,10,'$'
ttho dd 10000
ten db 10
tho dw 1000
h dw 0100
product dw ?
num1 db ?
num2 db ?
data ends


code segment
assume cs:code,ds:data
start:
mov eax,data
mov ds,eax
mov eax,0001h
mov ebx,0000h
mov ecx,0000h
mov edx,0000h
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述

放入.386后,我仍然收到此错误

us2*_*012 5

  • 您需要.386在文件顶部添加以生成32位代码,如Hans Passant所说.
  • 您的data细分受众群完全缺失msg.添加datamsg,那么对于那些未定义的符号错误便会自行消失了.
  • push msg函数之前调用,并pop msg在功能上看起来很奇怪.根据定义msg,这可以工作,但感觉很尴尬.