mov相关内容

MOVDQA 和 MOVAPS x86 指令之间的区别?

我正在查看英特尔数据表:英特尔® 64 和 IA-32 架构Software Developer's Manual 和我找不到 之间的区别 MOVDQA:移动对齐双四字 MOVAPS:移动对齐打包单精度 在英特尔数据表中,我可以找到这两个指令: 此指令可用于从 128 位内存位置,将 XMM 寄存器的内容存储到128 位内存位置,或在两个 XMM 寄存器之间移动数据. 唯一 ..
发布时间:2022-01-06 13:01:12 其他开发

ffmpeg 每帧请求的位数太多

我正在使用 ffmpeg 将视频转换为 mp4 格式.除了 MOV 格式外,一切正常. 我用于一切的命令是: ffmpeg -i input.mov -strict Experimental -sameq -s vga -aspect 1.7777 -vcodec libx264 -preset fast -crf 22 -y output.mp4 但我不断得到的输出是: ff ..
发布时间:2021-12-26 18:50:46 其他开发

了解英特尔汇编中的 %rip 寄存器

关于下面的小代码,在另一篇关于结构大小和正确对齐数据的可能性的文章中进行了说明: 结构{字符数据1;短数据2;整数数据3;字符数据4;} X;未签名的乐趣(无效){x.Data1=1;x.Data2=2;x.Data3=3;x.Data4=4;返回(大小(x));} 我得到了相应的反汇编(64位) 0000000000000000 :0: 55 推 %rbp1: 48 89 e5 m ..
发布时间:2021-12-18 09:31:22 其他开发

MOV (%r11,%r12,1), %edx 是什么意思?

这个指令有什么作用? mov (%r11,%r12,1), %edx 解决方案 查看这里.它说 在 AT&T 语法中,内存是引用方式如下, segment-override:signed-offset(base,index,scale) 页面下方有一些示例.我觉得这是最好的: GAS 内存操作数 NASM 内存操作数------------------ ------------- ..
发布时间:2021-12-18 08:56:15 其他开发

ARM MOV 和 MVN 操作数

我正在尝试编写代码来做两件事:如果我的值在 ARM 数据处理指令中可以作为常量表示,则将 1 返回到寄存器 r2.这段代码就是这样做的(如果效率低,请提供更好的方法).但是,我也想修改它以告诉我是否需要使用 MOV 或 MVN. AREA ArmExample18b, CODE入口MOV r2, #0 ;寄存器返回值.如果=1,可表示,否则,不可表示LDR r1, TABLE1 ;我们要使用的 ..
发布时间:2021-11-17 21:48:59 其他开发

“移动"“汇编语言"是复制还是移动?

最近看了std::mov的C++,想到了一个题目. 假设初始值如下: int a= 1;整数 b = 2; 我认为: 情况一, 移动后(a a= 2 , b= b 为空,因为移动了 情况 2, 复制后(a a=2 , b=2 我知道 C++ 的 std::move 是情况 1 汇编语言的mov(mov %b %a)是什么情况? 这是我的问题. ..
发布时间:2021-06-04 18:30:54 C/C++开发

非常大的地址被复制为负值

我正在浏览与C程序相对应的二进制文件. 我有一个很大的地址存储在%eax 中. 当尝试通过 gdb 查看该值时,它会显示一个负值(原因在此处). 现在,当执行 mov%eax,0x4c(%esp)时, 0x4c(%esp)中的结果有时为正,有时为负.随后出现 cmp $ 0,0x4c(%esp)语句! 有人可以解释这种行为吗? 如果这有帮助: core:ELF 32位LSB ..
发布时间:2021-05-10 18:35:07 其他开发

内存和寄存器之间的区别

我看到了汇编代码, MOV [EAX],EBX 以上一行,它们被提及为 [EAX] 是内存,而 EBX 是Register.因此,这是 [EAX] 和 EBX 之间的区别.以上说明会发生什么. 解决方案 在这种语法中,寄存器周围的括号表示使用内存位置(根据指令,作为源或目的地),并在寄存器中指定了起始地址(您的情况下EAX).例如,如果EAX在指令之前包含1344,则将EBX中 ..
发布时间:2021-04-24 21:09:30 其他开发

为何完成旅行?

我最近发现了这个问题: https://github.com/xoreaxeaxeax/movfuscator 这似乎取决于 mov 是图灵完整的事实.是真的,为什么? 解决方案 是的,x86的 mov 已完成图灵化.我将该标签添加到您的问题中,因为对于其他ISA,使用 mov 指令可能不是真的,并且movfuscator编译器仅针对x86. 本身不是在进行计算的“移动",而是可以 ..
发布时间:2021-04-23 20:22:38 其他开发

在两个内存地址之间移动

我正在尝试学习汇编语言(所以请多多包涵),并且在此行上出现编译错误: mov byte [t_last], [t_cur] 错误是 error: invalid combination of opcode and operands 我怀疑导致此错误的原因仅仅是mov指令无法在两个内存地址之间移动,而是半小时的谷歌搜索,而我却无法确认这一点-是这种情况吗? 此外,假设我是对 ..
发布时间:2020-09-12 21:33:01 其他开发

汇编程序编程-将32位寄存器的内容移动到16位寄存器?

是否可以执行以下操作:MOV AX,EBX 如果是的话,在这种情况下会发生什么? 另外,MOV EBX,AX会发生什么? (使用NASM,8086架构) 解决方案 假定Intel语法,其中 MOV AX, EBX 如果允许,会将EBX的内容复制到AX. 只需尝试一下.我记得它不受支持.但是您可以复制任何16位组,例如 MOV AX, BX 但是, ..
发布时间:2020-07-01 01:12:14 其他开发

x86汇编MOV指令-寄存器到寄存器和存储器到存储器

众所周知,MOV指令允许寄存器进行寄存器移动,而无法进行存储器之间的移动.为什么是这样? 我在此处阅读了该记忆不允许移动到内存,因为这会使CPU复杂化,并且任何给定指令的RAM必须处于读取模式或写入模式.任何人都可以对此进行扩展吗?为什么RAM必须处于读模式和写模式?如何在单个指令中从寄存器而不是从RAM读取和写入? 解决方案 因为Intel是这样设计的,并且即使您使用or al, ..
发布时间:2020-07-01 01:12:10 其他开发

X86:`movsxd rdx,edx`指令是什么意思?

我一直在使用intel mpx,发现它添加了某些我无法理解的说明.例如(以英特尔格式): movsxd rdx,edx 我发现了此,其中谈到了类似的指令-. 从这个问题出发,我对该指令的解释是,它占用了双字节(这就是movsxd中有一个d的原因)并将其复制到rdx寄存器中(两个最低有效字节)并且用该双字节的符号填充其余部分. 我的解释正确吗(我认为我错了)?如果不能,请告诉我 ..
发布时间:2020-07-01 01:12:06 其他开发

x86简单mov指令

这是一个简单的问题,但我在Google上找不到可靠的答案. 此说明是什么意思: movl %eax, (%esi, %ecx, 4) 是否会将寄存器eax中的值移动到(%esi, %ecx, 4)指向的内存中的值? (%esi, %ecx, 4)用于数组.因此,这意味着Array [Xs + 4i],其中Xs是Array内存中的起点,而i只是整数数组中的偏移量. 解决方 ..
发布时间:2020-07-01 01:12:04 其他开发

条件指令(cmov)和跳转指令之间的区别

我很困惑在汇编中在哪里使用cmov指令以及在哪里使用jump指令? 从性能的角度来看: 两者的区别是什么? 哪个更好? 如果可能,请举例说明它们的区别. 解决方案 movcc 是所谓的 predicated 指令.花哨的是“该指令在条件(谓词)下执行"的意思. 在执行算术运算(尤其是比较指令)之后,包括x86在内的许多处理器都将条件代码位设置为指示运算结果的状态. ..
发布时间:2020-07-01 01:12:02 其他开发

MOVSX汇编指令如何工作?

在以下示例中,汇编指令MOVSX如何工作: MOVSX ECX,BYTE PTR DS:[EDX] 在这种情况下,这是寄存器的状态: ECX = 0000000F EDX = 0012FD9F 根据我的想法,它需要[EDX] = 9F的最后一个字节,将其移至ECX,然后对其进行符号扩展以匹配16位= 0000009F.但是,实际结果是00000016.有人可以帮我解释我 ..
发布时间:2020-07-01 01:11:59 其他开发