Assembly 内存中的变量未由存储更新为该符号
当我运行emu8086时,这个结果(ans)返回给我0..为什么Assembly 内存中的变量未由存储更新为该符号,assembly,x86-16,emu8086,memory-segmentation,Assembly,X86 16,Emu8086,Memory Segmentation,当我运行emu8086时,这个结果(ans)返回给我0..为什么 data segment ans dw ? ends stack segment dw 128 dup(0) ends code segment start: mov ax,@data mov dx,ax mov ax,2 mov bl,2 mul bl mov ans,ax mov ax, 4c00h int 21h ends end start 这部分代码必须设置DS段寄存器。 你打错了,改写了DX
data segment
ans dw ?
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
mov ax,@data
mov dx,ax
mov ax,2
mov bl,2
mul bl
mov ans,ax
mov ax, 4c00h
int 21h
ends
end start
这部分代码必须设置DS
段寄存器。你打错了,改写了
DX
mov ax, @data
mov ds, ax
由于此错误,AL
*BL
乘法(4)的结果仍然由mov ans,ax
写入内存,但它没有写入数据段。它重写了ProgramSegmentPrefix的第一个单词,因为DS
指向这个单词
mov ax, @data
mov ds, ax