为什么mov指令使用ax而不是直接使用两个段寄存器?
我看到这样的代码: mov ax, cs mov ds, ax mov es, ax 为什么我不能将其压缩为: mov ds, cs mov es, cs 由于使用累加器寄存器,第一种方法是否更快…
从程序集调用 Windows API,同时最小化程序大小
我正在尝试用汇编语言编写一个程序,并使生成的可执行文件尽可能小。 我正在做的一些事情需要 Windows API 调用 WriteProcessMemory 等函数。 我在调…
如何使用 Assembly (NASM) 将内核从 CD-ROM 加载到内存中
我正在为自己编写一个引导程序和内核,引导程序和内核都将刻录在 CD-R 上,并将用作 CD-live。 它不是 Linux CD-Live 或其他东西,完全是我自己的引导…
在 Objective C 中调用汇编例程
我在汇编文件 math.nasm 中编写了一个函数 nabs 如下 %ifdef USE_x86_ASM SECTION .text cglobal nABS *------------------------* * int nABS(int a)…
如何翻译 NASM“推字节” 到气体语法?
我正在将 NASM 源“移植”到 GAS,并发现以下代码行: push byte 0 push byte 37 GAS 不允许“push byte”或“pushb”。 我应该如何将上面的代码翻译…
将 32 位和 16 位代码与 nasm 混合
这是一个低级系统问题。 我需要混合 32 位和 16 位代码,因为我试图从保护模式返回到实模式。 作为一些背景信息,我的代码是在 GRUB 启动后执行此操作…
求解,gcc编译c++内联汇编编译后,原始内联代码被更改的问题
c++内联汇编代码,内存访问处的代码,g++编译之后出现问题: 原始代码: 1 int main() 2 { 3 unsigned long tmp = 0 4 __asm__ __volatile__ 5 ( 6 "…
win7_x64上cygwin nasm语法汇编程序编译通过,运行报错,帮忙看看。
系统是win7 64位。 nasm代码: 执行命令: ld -m i386pe -e _start test.obj 也不好使,不知道咋回事儿了,求大侠帮忙看看~~~~ ps:linux上可以  …