小编toi*_*ine的帖子

shrl vs sarl .. x86汇编gnu

我正在使用gcc编译我的代码并查看程序集,这段代码到底在做什么?

shrl $20, %edx
leal (%edx,%eax), %eax
sarl 1, %eax 
Run Code Online (Sandbox Code Playgroud)

假设变量X位于edx寄存器中,Y位于eax且两者都是(32位int).这里发生了什么??

我知道'shrl $ 20,%edx'正在将%eax转移到20位,所以与:eax /(2 ^ 20)相同然后sarl是相同的所以'sarl 1,%eax'= eax /(2 ^ 1 ).是的,如果是的话,勒尔做了什么?

x86 assembly gcc gnu bit-shift

4
推荐指数
1
解决办法
1万
查看次数

在 C++ 中使用集合 vs 使用数组

我想从一个搜索函数中保存一组迭代器。有没有“更好的方法”来保存一组迭代器(数组与集合)。每种方法在内存效率方面的优缺点是什么?

谢谢。

c++ arrays set

3
推荐指数
1
解决办法
2694
查看次数

标签 统计

arrays ×1

assembly ×1

bit-shift ×1

c++ ×1

gcc ×1

gnu ×1

set ×1

x86 ×1