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]中的任何一个
汇编语言中的register1:register2是什么意思?
汇编语言中的register1:register2是什么意思。 例如ax:bx,那么这条指令将使用哪种类型的地址。 显然这涉及到两个寄存器 AX 和 BX
我一直在尝试学习一些汇编并测试数组,发现当我尝试打印出索引点处的值时没有发生任何事情,经过进一步实验后,它似乎...
调试引导加载程序代码时 GDB 中出现“无法找到当前函数的边界”错误
我目前正在学习引导加载程序开发和使用GDB进行调试,以观察实模式下禁用A20线时的内存变化。由于 QEMU 自动启用 A20 线,我尝试...
在实模式下,x86 CPU 只能看到 0x00000 到 0xFFFFF 范围内的地址空间。 MBR 代码由 BIOS 加载到 0x07C00 中。如果该 MBR 代码立即切换到保护模式,那么...
注意:使用OllyDbg v1.1 我正在尝试对程序中的子例程进行逆向工程,该子例程可能采用某种技术来挫败基本“IsDebuggerPresent”之外的过程。 我哈...
我一直在学习 MIT 的 JOS 课程,学习操作系统开发。现在,我正在深入研究引导加载程序的工作原理以及 x86 计算机架构的细节,尤其是内存段...
虽然我有很多 C 和 C++ 经验,但我对汇编很陌生。 我的汇编代码应该像新语言中的所有第一个程序一样打印 hello world。 它打印出 hello world 但也
为什么 GCC 在每次循环迭代时生成数组开头的 mov 来使用 [] 访问数组? (-O3,x86)
描述 我创建了一个示例来研究 TLB 访问/未命中统计信息。示例将 1 写入数组的每个第 4096 个元素。数组有 10'000 * 4096 字节。我预计只会看到 10,000 个 TLB 商店...
根据我的理解,最近的架构中引入了 syscall/sysenter 指令及其同伴,以作为进入内核的更短路径。但我不明白它是如何实现的...
如您所知,PATH_MAX 是用于指示环境变量(在本例中为 PATH 变量)的最大大小的值,但在大多数情况下,情况并非如此,看看我们的这段代码...
我在汇编中编写的灰度滤镜有问题 - 较大图像上的结果很好,但是当我尝试在较小图像(例如 5x1 位图)上测试它时,而不是
Win64 NASM:CommandLineArgvW 中的段错误
任何使用标准 Windows 调用约定在 NASM 中调用 CommandLineToArgvW 的尝试都会导致出现段错误。这个 C 程序的等价物工作得很好 NASM源代码:
为什么访问 16 位寄存器保存的值会导致段错误,而在 32 位寄存器上执行相同的操作却可以正常工作?
我在使用 16 位寄存器进行大学作业时遇到问题。我尝试运行的代码如下: myArray 数据库 1,2,3,4;在正确的部分声明 ;----------------- 莫夫西,
我正在自学组装。我想求偶数之和。但是,它不起作用,我不明白为什么,它没有显示任何错误。 我的代码如下 移动ebx,0; 移动...
问题是我正在训练缓冲区溢出错误,我已经到了只需向内存中注入一些东西的地步,但问题是我在 ESP 中的空间非常小。 .
汇编 x86-64 位 shellcode 不运行 execve 系统调用
我是编写汇编代码/shellcode 的新手。 我的 shellcode 应该通过带有参数数组的系统调用 execve 生成 shell。 当我运行编译后的 shellcode 时,它似乎可以工作,我得到了我的用户......
我在尝试显示用户输入的负整数的最小值、最大值、总和和平均值的正确值时遇到问题。当我运行代码并输入两个负值(-10 和 -30)时,这是
我正在使用 NASM 学习基本汇编,并偶然发现了两个数字的 div 中的问题。 这是我写的代码: .data 节 msg1 db "输入第一位数字 (a): ", 0 len1 等于 $...
MASM - 如何显示负整数的最小/最大、总和和平均值的正确值
我在尝试显示用户输入的负整数的最小/最大、总和和平均值的正确值时遇到问题。当我运行代码并输入两个负值(-10 和 -30)时,这是
在 Visual Studio 2015 中运行 iisexpress 32 位而不是 64 位进行调试模式
我有一个引用 32 位 DLL 的 Web 项目。在 IIS 上,我通常在应用程序池上设置启用 32 位应用程序属性,并且它工作得很好。我尝试通过