NASM 中的命令行优化级别
我编写了一个汇编代码来使用字节变量添加十个数字,并且代码没有错误。 汇编代码: ; a program to add ten numbers using byte variables [org 0x010…
一直在为 x86-64 Linux 系统编写一个打印函数,通过 NASM 上的系统调用将二进制转换并打印为十进制
我对 x86-64 Linux 系统的 NASM 上的汇编代码仍然很陌生,我正在尝试编写一个程序,将 rdi 中存储的数字转换为十进制,以便可以打印。我不确定如何编…
我有一个 x86-64 程序,仅当从 gdb 调试器运行时才能正常工作
我在 x86 汇编程序中编写了 malloc 的原始版本作为练习。该代码使用链表来跟踪分配的内存块。我决定添加一个函数来遍历列表并打印出每个块的元数据,…
NASM 是否存在未对齐访问问题?
我知道什么是 C 语言中的未对齐访问以及它可能对某些处理器 UB 造成的影响。 我想知道在 NASM 程序集上编写的代码中是否存在相同的问题: section .te…
asm x86_64 Intel Linux - 将 RDX:RAX 移至 XMM0
我正在使用 rdtsc 指令,我知道它将高四字存储到 RDX 中,将低四字存储到 RAX (RDX:RAX) 中,但我想用这个进行算术运算(两个时间戳相减) 所以我需要…
使用 NASM 和 mingw 命令时出现编译错误
我想玩一下汇编。首先,我创建了一个小asm脚本并尝试编译它。第一步一切都很顺利: nasm -felf64 hello.asm 但是当我尝试使用 ld -o hello.o 你好 从 …
如何使用 nasm、x86_64、linux 函数修改堆栈(使用“ret”关键字)?
TL;DR 如何在使用ret时修改堆栈或在使用其他东西时实现类似的效果? 你好世界, 我正在尝试为我的语言制作一个编译器, 目前一切都是内联的,它使得 …
如果 JMP 指令在 NASM 中失败,运行代码?
我正在写一个引导加载程序,正在考虑如何跳转到内核。我看到人们使用jmp 0x8000(或内核所在的任何地址)来加载它。但是如果 JMP 由于某种原因失败(…
如何编译 16 位 Mac 汇编代码?
因此,我尝试在我的 Mac(蒙特雷)上汇编这段 16 位汇编代码: global _main section .text _main: mov ah, 0x0e mov al, '!' int 0x10 mov ah, 0x4c …
如何在配备 M1 芯片的 Macbook Air 上运行 X86 NASM?
我有一门关于汇编编程的课程,他们在该课程中遵循的是 x86 NASM。 对于在线评估,我必须使以下命令在我的计算机上运行,以便在终端上执行我的 .as…
用汇编语言弹出 CD/光驱
这再简单不过了,但并没有改变。 我有一个简单的代码,我用它来查看光驱是否会弹出 该代码采用汇编语言,intel nasm 语法。 [BITS 16] [ORG 0X07C00] …