为什么变量值不会进入寄存器?

时间:2014-09-10 02:45:38

标签: assembly x86-16

我正在开始学习汇编语言的旅程。我正在使用emu8086练习。我遇到了一个我似乎无法弄清楚的小问题 - 可能是由于缺乏装配知识。我只想将名为'loopCount'的变量的值移动到寄存器cx中。当我运行模拟器时,我可以看到变量的值被正确分配,但是当代码到达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

1 个答案:

答案 0 :(得分:1)

您需要移动loopcount位置的内容,而不是loopcount

mov cx,[loopcount]

mov cx,word ptr loopcount

应该完成此操作,具体取决于您的汇编程序[设置]。


嗯 - 似乎需要手动将DS指向数据段...

mov cx,@data
mov ds,cx
mov cx,[loopCount];