How to print a single ASCII char?

2020-02-16 02:38发布

In DOS Assembly we can do this:

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

But how about Linux nasm x86 Assembly?

1条回答
Melony?
2楼-- · 2020-02-16 03:20
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

Writing a single character may not produce the desired output, because depending on the terminal settings, it may be cached, so you may need to flush the output, to make sure that it appears wherever you write to.

Here is a list of linux 32 Bit system calls.

查看更多
登录 后发表回答