汇编中的 %gs 是什么
void return_input (void) { char array[30]; gets (array); printf("%s\n", array); } 在 gcc 中编译后,该函数被转换为以下汇编代码: push %ebp mo…
是否有 Win32 的 API 允许我使用 ES、GS、FS?
我想在汇编程序中使用 ES、FS 和 GS,以允许我拥有 3 个独立的地址空间。 是否有 Win32 API 可以设置 LDT 并为我提供适当选择器的值?…
__addgs* 如何使用,什么是 GS?
在微软的网站上可以找到 内在函数的一些细节 __addgsbyte ( offset, data ) __addgsword ( offset, data ) __addgsdword ( offset, data ) __addgsqwo…
汇编中的 ds:si 和 es:di 是什么意思?
movsb(移动字符串,字节)指令获取地址处的字节 ds:si,存储在地址es:di处,然后递增或递减 si 和 di 寄存器减一。 我知道 esi,si 和 edi,di 寄存器…
使用分段的 32 位 x86 的 64 TB 虚拟内存:如何实现?
Intel x86 内存模型具有分段和分页功能。系统可以寻址高达 64 TB 的虚拟内存,这意味着什么?我的理解是只有4GB的虚拟内存是可寻址的。这里的差距是什…
MOV AX,CS 和 MOV DS,AX 的概念
谁能解释一下这三个指令的功能吗? ORG 1000H MOV AX,CS MOV DS,AX 我知道理论上代码、数据和额外段是什么,但是: 它们是如何在这个程序中实现的? …