问题标签 [zero-extension]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - x86 程序集 - 从 dword 到 qword 的 mov 和 movzx?
我正在测试以下代码:
查看英特尔手册,似乎没有办法使用mov
/movzx
将 dword 移动到 qword;我看到的唯一方法是使用movsx
和屏蔽前 32 位。这是令人惊讶的,提供了可用于 x86_64 的大量指令。
这是正确的,还是我错过了什么?
assembly - 关于将程序集转换为 c 的问题——特别是 movzbl 指令的作用?
我试图弄清楚汇编中的 this 在 C 中意味着什么:
我很困惑 movzbl (%rdx), %edx 会做什么。谢谢!
assembly - 不明白 movzx 命令
我不明白这个命令的作用,例如:
'movzx eax, 字节 [rax]'
在命令执行之前,rax 的值是:'0x7ffff253c523',在这一行之后它变成了'0x00000070',为什么?我真的可以用一些解释或例子,没有找到任何好的来源..谢谢!
assembly - 汇编(AT&T)读取内存进行注册?
在汇编中,我试图将 32 位从内存添加到 64 个寄存器,这将加载 64 位:
所以我尝试了:
这没有用。
我该如何解决这个问题?
assembly - Adding a byte from memory to the AX register
I'm currently trying to figure out how to add the first byte in memory pointed to by the pointer register SI
to the current contents of the AX
register.
So if SI
holds some address, and the values in memory at that address are: 00 and 01, I'm looking to add just 00 to the AX
register.
The first instruction my assembly-noobish self tried was add ax, byte ptr [SI]
but of course, no dice, as I'm trying to add operands of different sizes.
My current workaround is
But this is incredibly wasteful and really hurts my executed instructions count (this is part of a subroutine that runs many times).
I'm limited to the 8086 instruction set so this question/answer by Peter Cordes which suggests movzx
to condense my first two lines is unfortunately not viable.
assembly - 从字到字节
我该怎么做才能只取 num 的正确数字?我尝试了 byte ptr,但它改变了 vale。是否可以删除寄存器中的左2位数字?
编辑:数字写在寄存器中,所以左右我的意思是高位字节(左)和低位字节(右)
00 00
例如,如果我有 1203 我想把它变成 0003 但它仍然必须是字大小