【发布时间】:2014-02-21 03:41:58
【问题描述】:
我正在尝试使用 NASM 打印单个字符或数字,目标是 x86 GNU/Linux 架构。
这是我正在使用的代码:
section .text
global _start
_start:
; Linux printing preparation
mov eax,4
mov ebx,1
; Print 'A' character
mov ecx,'A' ; ecx should contain the value to print
mov edx,1 ; edx should contain how many characters to print
int 80h
; System exit
mov eax,1
mov ebx,0
int 80h
但是,运行此代码不会打印任何内容。我做错了什么?
【问题讨论】:
-
ecx应该包含指向以 NUL 结尾的字符串的指针,而不是 char 文字。 -
不必以 NUL 结尾,必须在内存中。可以在堆栈上
pushed 和mov ecx, esp。之后不要忘记“删除”它。
标签: linux assembly x86 nasm system-calls