Assembly 为什么变量值没有移动到寄存器中?
我开始了学习汇编语言的旅程。我正在使用emu8086进行练习。我遇到了一个小问题,但我似乎无法解决——可能是由于缺乏组装方面的知识。我只想将名为“loopCount”的变量的值移动到寄存器cx。当我运行emulator时,我可以看到变量的值被正确分配,但是当代码到达mov语句时,它似乎将我认为是的地址分配给了寄存器cx。我想要完成的是将变量(5)的值赋给寄存器cx 下面是我试图运行的代码:Assembly 为什么变量值没有移动到寄存器中?,assembly,x86-16,Assembly,X86 16,我开始了学习汇编语言的旅程。我正在使用emu8086进行练习。我遇到了一个小问题,但我似乎无法解决——可能是由于缺乏组装方面的知识。我只想将名为“loopCount”的变量的值移动到寄存器cx。当我运行emulator时,我可以看到变量的值被正确分配,但是当代码到达mov语句时,它似乎将我认为是的地址分配给了寄存器cx。我想要完成的是将变量(5)的值赋给寄存器cx 下面是我试图运行的代码: data segment loopCount dw 5; ends stack segment
data segment
loopCount dw 5;
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
mov cx,loopCount;
mov ax, 4c00h
int 21h
ends
end start
您需要移动位置
loopcount
的内容,而不是loopcount
的值
mov cx,[loopcount]
或
应根据您的汇编程序[设置]完成此操作
嗯-似乎需要手动将DS指向数据段
mov cx,@data
mov ds,cx
mov cx,[loopCount];
我两个都试过了。仍然得到似乎要注册cx的地址。代码现在可以工作了。我必须做一些挖掘来了解@data和mov-ds、cx是如何工作的。谢谢
mov cx,@data
mov ds,cx
mov cx,[loopCount];