x86-64是Intel x86架构的64位扩展
procedure Test; var i2: Integer; begin i2 := 0; i2 := 0 div i2; end; try Test1; except WriteLn('runtime error'); end;
当中断将在基于X86架构的64位CPU中发生时,CPU将自动推动一些IRET寄存器值,然后按照堆栈的方式推动一些IRET寄存器值 +--------------------------------+ |犯错。代码(如果
我有一个函数,它本身需要两个参数,并将其余参数转发给另一个函数。我正在使用快速调用约定。我已经尝试过这个: 向前: Push r14 # r14 和 r13 将被存储
当您拥有 AMD CPU 时,您可以加速使用 Intel-MKL 的代码吗?
我有一个 AMD cpu,我正在尝试运行一些使用 Intel-MKL 的代码。该代码比我预期的要慢得多。 当您拥有 AMD CPU 时,可以加速使用 Intel-MKL 的代码吗?怎么办?
macOS arm64 找不到 x86_64 版本的应用程序
我的macOS 14.2.1(Darwin 23.2.0)默认是arm64。我为不同的应用程序设置了一堆 x86_64 版本(也设置了 Rosetta 2)。例如,cmake 和 Homebrew。但当我用
我正在关注github教程(链接:https://github.com/gmarino2048/64bit-os-tutorial/),当我在第1.3章的“load.asm”上遇到这行代码时: ;接下来是气缸和
如何使用 SIMD 优化单元宽度测量(找到 8x8 字节块中具有非零字节的第一列)
我有一种算法,通过计算从单元格起始位置到其中仅包含零的第一列的距离来测量位图 (128x128) 中每个单元格 (8x8) 的宽度。如果有的话...
我有一种算法,通过计算从单元格起始位置到其中仅包含零的第一列的距离来测量位图 (128x128) 中每个单元格 (8x8) 的宽度。如果有的话...
如何通过gcc中的内联汇编“incl”指令直接操作C变量(不通过寄存器)?
我有以下代码 #包括 易失性 int global_counter = 0; 无效增量计数器(){ 对于 (int i = 0; i < 100000; ++i) { //global_counter++; asm (&...
使用 Sequoia 15.2 的 MacBook M1 Max 上的 Ruby 3.4.1 配置失败 – 目标架构问题(x86_64 与 arm64)
我有一台配备 M1 Max 芯片、运行 macOS Sequoia 15.2 的 MacBook,在安装 Ruby 3.4.1 过程中遇到问题。错误消息指出: Ruby 3.4.1 配置失败! W...
SHLD/SHRD 指令是实现多精度移位的汇编指令。 考虑以下问题: uint64_t array[4] = {/*某事*/}; left_shift(数组, 172); 右移(阿拉...
我是汇编初学者,我在代码中遇到了意外行为。代码按预期工作,将数字从 contador 变量打印到 1,但是当我删除未使用的变量循环时(
我一直在尝试了解 ASM x64 指令的 0x40 REX 操作码的用途。例如,在 Kernel32.dll 的函数序言中: 正如您所看到的,他们使用 Push rbx 作为: 40 53 ...
Assembly 中的 Linux x86-64 命令行参数来自 _start(不是 main)
此描述适用于 Linux 32 位: 当 Linux 程序开始时,所有指向命令行参数的指针都存储在堆栈中。参数的数量存储在 0(%ebp),即
我是汇编初学者,我在代码中遇到了意外行为。代码按预期工作,将数字从 contador 变量打印到 1,但是当我删除未使用的变量循环时(
为什么我的汇编程序在达到值 10 后仍继续执行,即使比较正确?
我正在汇编 x86-64 中编写一个程序,其目标是增加一个值 (num) 直到达到 10。但是,尽管使用正确的比较来检查 num 是否小于 10,该程序