Assembly 为什么变量值没有移动到寄存器中?

Assembly 为什么变量值没有移动到寄存器中?,assembly,x86-16,Assembly,X86 16,我开始了学习汇编语言的旅程。我正在使用emu8086进行练习。我遇到了一个小问题,但我似乎无法解决——可能是由于缺乏组装方面的知识。我只想将名为“loopCount”的变量的值移动到寄存器cx。当我运行emulator时,我可以看到变量的值被正确分配,但是当代码到达mov语句时,它似乎将我认为是的地址分配给了寄存器cx。我想要完成的是将变量(5)的值赋给寄存器cx 下面是我试图运行的代码: data segment loopCount dw 5; ends stack segment

我开始了学习汇编语言的旅程。我正在使用emu8086进行练习。我遇到了一个小问题,但我似乎无法解决——可能是由于缺乏组装方面的知识。我只想将名为“loopCount”的变量的值移动到寄存器cx。当我运行emulator时,我可以看到变量的值被正确分配,但是当代码到达mov语句时,它似乎将我认为是的地址分配给了寄存器cx。我想要完成的是将变量(5)的值赋给寄存器cx

下面是我试图运行的代码:

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];