x86 相关问题

x86是一个源自Intel 8086 CPU的架构。 x86系列包括32位IA-32和64位x86-64架构,以及传统的16位架构。关于后者的问题应该标记为[x86-16]和/或[emu8086]。如果您的问题特定于64位x86-64,请使用[x86-64]标记。对于x86 FPU,请使用标记[x87]。对于SSE1 / 2/3/4 / AVX *,也可以使用[sse]和[avx] / [avx2] / [avx512]中的任何一个

如何将浮点常量值移动到xmm寄存器中?

是将值移入xmm寄存器的唯一方法是首先将值移入整数寄存器,不知道它们被称为什么,然后进入xmm寄存器,例如mov [eax],(float)1000; ...

回答 1 投票 -1

在MASM中使用32位寄存器而不更改默认段定义大小

我的代码对于8086和80286处理器来说太慢了,所以我决定在我的实模式代码中使用32位寄存器和指令。我知道我真正需要做的就是前缀...

回答 2 投票 1

声明“extern struct cpu * cpu asm(”%gs:0“);”是什么意思?

当我正在阅读xv6源代码时,我对下面声明的语法感到困惑。有谁可以向我解释一下? extern struct cpu * cpu asm(“%gs:0”);

回答 2 投票 6

如何在x86上使用gcc强制执行内存排序

我想在线程(gcc,Linux,x86)之间共享数据结构。假设我在线程A中有以下代码:shared_struct-> a = 1; shared_struct-> b = 1; shared_struct-> enable = true; ...

回答 2 投票 2

对于在数组中找到零并切换标志+更新另一个数组的循环的SSE优化

一段C ++代码确定零的出现,并为每个检查的数字保留二进制标志变量。每次在...中遇到零时,标志的值在0和1之间切换。

回答 2 投票 3

为新指令集扩展优化编译的代码的向后兼容性

为了缩小这个问题的范围,让我们只考虑C / C ++中的项目。 x86架构有一整套新的SIMD指令集扩展,但为了受益...

回答 2 投票 1

使用无限循环时,x86中断处理程序被阻止

我正在尝试学习x86汇编和c语言。现在我已经完成了一个简单的计时器和键盘中断。第一个可以每隔几个刻度打印一行,第二个可以打印出你的...

回答 2 投票 0

可以在x86汇编中使用IN(以及INS,INSB等)指令块吗?

当尝试从x86(专门使用Pentium)上的I / O端口读取时,IN系列指令是否可以在等待数据时阻塞,或者它们是否会立即返回?

回答 3 投票 7

8086汇编语言程序查找两个数字的GCD

当它点击“Ret 8”时,我的程序停止工作。有人能告诉我为什么吗?找到用户输入的2个数字的GCD。保持循环,直到你停止它。提前致谢 ...

回答 1 投票 0

如何在ml64.exe中设置align 64?

使用ml64.exe为某些汇编程序功能代码设置align 64的最简单方法是什么? _TEXT的默认对齐方式为16,因此ml64不允许在align命令中设置超过16。并且ml64不...

回答 1 投票 3

INT 10h功能0Dh不一致

我试图获得单个像素的颜色(我在Emu8086中使用13h图形模式),因为我正在使用中断10h的函数0Dh。但它根本不一致。它没有给出正确的......

回答 1 投票 -1

如果大于参数的大小,ADD指令的结果“包围”是什么意思

我正在关注Udemy的汇编语言冒险:完整课程。在解释ADD指令时,教师说ADD指令的结果“包裹”,如果大于......

回答 1 投票 -1

为什么具有对_GLOBAL_OFFSET_TABLE_的非限定引用的nasm程序集显然可以组装并链接为PIC?

为什么我可以将get_got.asm汇编并链接为与位置无关的代码,因为它包含对其GOT的绝对地址的引用? get_got.asm extern _GLOBAL_OFFSET_TABLE_ section .text global ...

回答 1 投票 2

NASM示例代码中$和$$的真正含义[重复]

我看到了如下代码:section .data db'hello'db'h','e','l','l','o'data_segment_size equ $ - $$为什么data_segment_size等于25?我知道$和$$表示什么,但我不能......

回答 1 投票 -2

写给bl和bh

我试图理解以下行为:mov bl,51;现在在gdb中打印$ ebx返回51 mov bh,52;现在是13363,但我认为这将是5251为什么?我在Intel上使用Linux nasm ...

回答 1 投票 0

当VMEXIT发生时,处理器是否总是重新加载CR3?

当VMEXIT发生时,处理器是否总是重新加载CR3?

回答 1 投票 1

.Net混合非托管x32和x64 dll [重复]

我依赖于一个非托管的dll。我可以在x86和x64中编译非托管dll。我想将我的项目添加到x64和x86 dll中,因此它可以在x64或x86之间动态选择...

回答 1 投票 -1

在调用asm函数之前调用printf与否的神秘副作用?

该程序必须以用户提供的准确度计算pi。 calculate_pi()函数是用NASM编写的。有人可以向我解释为什么这条线被评论:// printf(“准确度:%....

回答 1 投票 1

为什么ModR / M:rm字段在mov al中是100,字节ptr [rbx + rsi * 2 + 0x100]?

指令mov al,byte ptr [rbx + rsi * 2 + 0x100]被编码为8a 84 73 00 01 00 00,这意味着ModR / M是0x84或10.000.100我理解mod(10)和reg(000)田地,但不......

回答 1 投票 0

确定寄存器的值是否等于零的最简单方法是什么?

我正在使用与Irvine库的x86程序集。检查寄存器值是否等于零的最简单方法是什么?我使用cmp指令,但我正在寻找替代方法。这是我的 ...

回答 3 投票 6

© www.soinside.com 2019 - 2024. All rights reserved.