首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Y86程序集全局变量

Y86程序集全局变量
EN

Stack Overflow用户
提问于 2015-11-14 22:48:23
回答 1查看 719关注 0票数 1

我很难让全局变量在我的Y86任务中正确工作。不幸的是,我们得到的唯一例子是在IA-32汇编中。我已经搜寻了几个小时,但没有结果。这是非常基本的,我知道,但我是一个完全的新手在Y86。

我正在“声明”我的变量如下

代码语言:javascript
复制
.align 4
x: .long 1
y: .long 4

当我在像irmovl x, %edx这样的操作中使用它们时,我看到值380被分配给edx寄存器,而不是值4。我认为正在发生的事情是将内存位置分配给寄存器而不是值。将全局变量的值设置为寄存器的正确语法是什么?

我试过使用mrmovl,但不确定带有全局变量的mrmovl语法。

mrmovl,%edx给我错误“x不是一个数字”

EN

回答 1

Stack Overflow用户

发布于 2015-11-14 22:50:34

顾名思义,irmovli中介到register。您需要mrmovl,因为这是memory to register。

至于语法,因为y86确实支持置换,所以我希望mrmovl x, %edx能够工作。你说它没有,作为一个解决办法,你可以使用2条指令:

代码语言:javascript
复制
irmovl x, %edx     # load address
mrmovl (%edx), %edx # fetch value
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33714298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档