assembly - 符号 'a1' 未定义(汇编语言)
问题描述
我是汇编编程的新手,我正在尝试编译/汇编我在书中找到的代码。我正在使用 nasm,但我不断收到此错误:
错误:符号“a1”未定义
我不知道如何解决这个问题。我试图在我的 ubuntu(64 位)主机和 Freebsd 32 位虚拟机上编译它,两次我都遇到了同样的错误。
global _start
_start:
xor eax,eax
jmp short string
code:
pop esi
push byte 15
push esi
push byte 1
mov a1,4
push eax
int 0x80
xor eax,eax
push eax
push eax
mov a1,1
int 0x80
string:
call code
db 'Hello world !', 0x0a
解决方案
那应该是mov al, 4
。这是一个小写的 L,而不是数字 1,所以你有al
register。同上mov al, 1
进一步。
推荐阅读
- c# - 如何在 dotnet core 2.2 中反序列化来自 json 的声明
- node.js - 如果一个进程的事件循环中存在多个作业。如果当前作业使进程崩溃,剩余的作业会发生什么?
- scala - 在加特林初始化后向场景添加步骤
- c++ - 只对“真正的”错误使用 C++ 异常处理是惯用的吗?
- java - Java 命名方法以执行查询的方法
- iis - 使用 Web Deploy 同步 Web 应用程序文件
- java - Java:使用列表中的第 n 个值设置第 n 个对象的属性
- windows - bat 脚本将 .gz 文件解压缩到一个位置并提取到另一个位置
- flutter - 使用提供程序从 sqflite db 获取日期
- c# - 无法从用法中推断方法的类型参数。尝试显式指定类型参数