如何打印单个ASCII字符?

时间:2013-12-09 08:15:35

标签: linux assembly x86 nasm

在DOS程序集中,我们可以这样做:

mov dl, 41h
mov ah, 02h
int 21h

但Linux nasm x86汇编怎么样?

1 个答案:

答案 0 :(得分:2)

section     .data

msg     db  'H'
len     equ $ - msg


section     .text
global      _start

_start:

mov     edx,len
mov     ecx,msg
mov     ebx,1    ;file descriptor (stdout)
mov     eax,4    ;system call number (sys_write)
int     0x80

mov     eax,1    ;system call number (sys_exit)
int     0x80

写入单个字符可能无法产生所需的输出,因为根据终端设置,它可能会被缓存,因此您可能需要刷新输出,以确保它出现在您写入的任何位置。

以下是linux 32 Bit system calls的列表。