在 NASM 中创建常量时出现奇怪的内存布局
考虑以下部分引导加载程序的汇编代码: bits 16 org 0x7C00 msg_init db 'Initializing...', 0Ah, 0Dh, 0 msg_completed db 'Completed', 0Ah, 0Dh, 0…
如何在 nasm 中创建静态库并与 gcc 链接?
我想在(32 位)NASM 中实现许多具有以下签名的函数: int function1(); int function2(); 等。 然后我想创建一个目标文件并能够将其与使用 gcc 编译…
使用 NASM 加载符号的地址?
我有一些程序集需要在 OS X (x86-64) 中加载 C 符号。对于 x86,执行此操作的方法是: mov rax, some_symbol_name 但是,对于 x86-64,这会导致链接警…
如何修复“不允许使用 LOCK 前缀(op1=0x53,attr=0x0,mod=0x0,nnn=0)”?
我的简单代码: [ORG 0x7C00] MOV AH,0x02 ;Using the function of reading floppy MOV AL,0x01 ;The number of sectors to be read is 1. MOV CH,0x0…
操作码和操作数的组合无效? (x86 DOS)
org 100h mov ah, 9 mov dx, str1 mov byte [str1+2], [char] int 21h mov ah, 4Ch int 21h str1 db 'String$' char db "o" 为什么 NASM 给我这个错误…
使用 printf 组件打印新行
您好,我正在尝试编写一些使用 printf 打印给定字符串的汇编代码。我在 .data 部分中使用之前声明我的字符串,测试示例如下所示: extern printf exte…
简单操作系统中的屏幕输出
我现在开始编写一个非常简单的操作系统,只是引导扇区,以习惯基本的汇编。输出文本的最佳方式是什么?我试过: int 0x10 ah = 0x0E int 0x21 ah = 0x…
汇编中没有换行符的 Printf
我最近读过这篇关于在汇编中使用 printf 和 scanf 的文章: 汇编中 intfmt: db "%d", 10, 0 的含义 特别是它说 “在 printf 中,换行符打印一个换行符…
装配 - NASM 阶乘问题
您好,我正在使用 NASM 在 Assembly 中编写阶乘函数。我必须使用俄语乘法来代替 mul 来完成我的作业。我使用的是 32 位 Linux 这是我的阶乘代码 secti…
NASM 一次打印一个字符
为什么这个程序没有打印到屏幕上,我是否遗漏了 INT 80 命令中的某些内容? section .bss section .data hello: db "Hello World",0xa ;10 is EOL sec…
在 Mac OSX 上编译 NASM
在学校编写编译器时,最后一个里程碑是生成汇编代码。尝试学习 NASM。从头开始, http://www.cs.lmu.edu/~ray /notes/nasmexamples/,尝试编译一个Hel…