linux – 如何打印单个ASCII字符?

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

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

但是Linux nasm x86汇编怎么样?

解决方法:

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的清单.

上一篇:linux-Cygwin:兼容性问题


下一篇:使用x86 32位Linux sys_write(NASM)打印整数