首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在y86中将第4位左移?

如何在y86中将第4位左移?
EN

Stack Overflow用户
提问于 2015-05-03 01:04:01
回答 3查看 2.4K关注 0票数 0

我希望在y86汇编语言中重新创建x86 shl dest,src指令。具体地说,我需要将dest位左移4位。有人能帮我解决这个问题吗?

EN

回答 3

Stack Overflow用户

发布于 2015-05-03 01:18:09

y86中没有移位和乘法运算。您可以通过将值添加到自身来将其左移一位。移位四位意味着四个加法:

代码语言:javascript
复制
addl %eax, %eax
addl %eax, %eax
addl %eax, %eax
addl %eax, %eax
票数 2
EN

Stack Overflow用户

发布于 2015-05-03 01:16:13

移位操作不在Y86指令集中。您可以通过乘以2^4 = 16来模拟向左移位4位。

票数 0
EN

Stack Overflow用户

发布于 2015-11-18 06:33:28

下面是我们需要做的:

  • 为正值构建乘法例程,以解决溢出问题。
  • 计算出结果应该有什么符号。
  • 将操作数转换为绝对值(使用求反例程)。
  • 对绝对值调用乘法例程。
  • 考虑并处理溢出。
  • 如有必要,将结果金额转换为负数。

剩下的就看你的了。顺便说一句,…有符号32位整数值(由.LONG值指定)的最大限制是231-1或2,147,483,647。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30005080

复制
相关文章

相似问题

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