问题标签 [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.

0 投票
0 回答
566 浏览

assembly - x86 程序集 - 从 dword 到 qword 的 mov 和 movzx?

我正在测试以下代码:

查看英特尔手册,似乎没有办法使用mov/movzx将 dword 移动到 qword;我看到的唯一方法是使用movsx和屏蔽前 32 位。这是令人惊讶的,提供了可用于 x86_64 的大量指令。

这是正确的,还是我错过了什么?

0 投票
1 回答
233 浏览

assembly - 关于将程序集转换为 c 的问题——特别是 movzbl 指令的作用?

我试图弄清楚汇编中的 this 在 C 中意味着什么:

我很困惑 movzbl (%rdx), %edx 会做什么。谢谢!

0 投票
0 回答
53 浏览

assembly - 不明白 movzx 命令

我不明白这个命令的作用,例如:

'movzx eax, 字节 [rax]'

在命令执行之前,rax 的值是:'0x7ffff253c523',在这一行之后它变成了'0x00000070',为什么?我真的可以用一些解释或例子,没有找到任何好的来源..谢谢!

0 投票
1 回答
55 浏览

assembly - 汇编(AT&T)读取内存进行注册?

在汇编中,我试图将 32 位从内存添加到 64 个寄存器,这将加载 64 位:

所以我尝试了:

这没有用。

我该如何解决这个问题?

0 投票
1 回答
245 浏览

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.

0 投票
1 回答
41 浏览

assembly - 从字到字节

我该怎么做才能只取 num 的正确数字?我尝试了 byte ptr,但它改变了 vale。是否可以删除寄存器中的左2位数字?

编辑:数字写在寄存器中,所以左右我的意思是高位字节(左)和低位字节(右)

00 00

例如,如果我有 1203 我想把它变成 0003 但它仍然必须是字大小