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]中的任何一个
我知道现代CPU可以无序执行,但是他们总是按顺序退出结果,如维基百科所述。 “Out of Oder处理器及时填补了这些”插槽“......
好吧,我开始像一个月前一样学习8086汇编,直到现在我学习它没有太多问题,但现在我被困在字符串中。问题是如何在8086中迭代字符串...
鉴于进程操作的虚拟地址与表示内存中实际位置的物理地址之间的分离,您可以发挥一些有趣的技巧:例如创建...
我注意到NASM汇编代码中scanf的一些特殊行为。我有两次调用scanf:mov rdi,fmt mov rsi,r14 call _scanf和mov rdi,fmt mov rsi,r15 call _scanf其中fmt是...
我在使用NASM程序集时遇到问题。我无法弄清楚如何将2个数字相乘并将它们打印到屏幕上。问题是我们只允许使用只打印32位的功能......
我在x86-x64中查找了维基百科的x86向后兼容性,它说:x86-64完全向后兼容16位和32位x86代码。因为完整的x86 16位和32位...
我正在尝试使用REAL4数据类型将浮点数存储在数组中。以下是什么正确的说明?从用户获取输入并存储在数组中?例如这样做但是......
将Visual Studio 2017中的Assembly和C ++与命令行和输出相结合
我正在尝试将这些语言结合起来用于测试目的。有没有人知道为什么,在构建项目后,当.asm文件在源文件夹中时,无法找到clear函数。 ......
我想编写一个加载基准测试,它跨越给定的内存区域,具有编译时已知的步幅,包含在区域末尾(2的幂),只需要很少的非加载指令...
我正在尝试创建一个用户必须输入输入的程序,例如:Hello World并获得输出:'DLROw OLLEh'。这是我的程序org 100h包括emu8086.inc .DATA STR1 DB 0DH,...
以下是hello world程序的示例代码:#include int main(void){printf(“Hello,world!\ n”);返回0;这是我得到的目标文件的反汇编:文件类型:...
当我们使用术语“用户空间”时,我们是指物理内存中包含用户进程的代码和数据的区域,还是指每个进程具有3 GB的虚拟内存?而且......
thx求助我的问题是关于从下面的代码收到的ax值? mov al,22h mov cl,0fdh imul cl实际机器结果:ff9a我的预期:00:9a(以二进制相乘)第一个数字......
是将值移入xmm寄存器的唯一方法是首先将值移入整数寄存器,不知道它们被称为什么,然后进入xmm寄存器,例如mov [eax],(float)1000; ...
我的代码对于8086和80286处理器来说太慢了,所以我决定在我的实模式代码中使用32位寄存器和指令。我知道我真正需要做的就是前缀...
声明“extern struct cpu * cpu asm(”%gs:0“);”是什么意思?
当我正在阅读xv6源代码时,我对下面声明的语法感到困惑。有谁可以向我解释一下? extern struct cpu * cpu asm(“%gs:0”);
我想在线程(gcc,Linux,x86)之间共享数据结构。假设我在线程A中有以下代码:shared_struct-> a = 1; shared_struct-> b = 1; shared_struct-> enable = true; ...
对于在数组中找到零并切换标志+更新另一个数组的循环的SSE优化
一段C ++代码确定零的出现,并为每个检查的数字保留二进制标志变量。每次在...中遇到零时,标志的值在0和1之间切换。
为了缩小这个问题的范围,让我们只考虑C / C ++中的项目。 x86架构有一整套新的SIMD指令集扩展,但为了受益...
我正在尝试学习x86汇编和c语言。现在我已经完成了一个简单的计时器和键盘中断。第一个可以每隔几个刻度打印一行,第二个可以打印出你的...