【问题标题】:Why is the variable value not moving into the register?为什么变量值没有移入寄存器?
【发布时间】:2023-03-12 15:18:01
【问题描述】:

我正在踏上学习汇编语言的旅程。我正在使用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

【问题讨论】:

    标签: assembly x86-16


    【解决方案1】:

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

    mov cx,[loopcount]
    

    mov cx,word ptr loopcount
    

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


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

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

    【讨论】:

    • 我都试过了。仍然得到似乎是要注册 cx 的地址。
    • 代码现在可以工作了。我将不得不做一些挖掘来了解@data 和 mov ds,cx 是如何工作的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-03-13
    • 2020-08-25
    • 2017-06-15
    • 1970-01-01
    • 2017-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多