How to print a single ASCII char?

假装没事ソ 提交于 2019-12-18 09:39:04

问题


In DOS Assembly we can do this:

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

But how about Linux nasm x86 Assembly?


回答1:


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.



来源:https://stackoverflow.com/questions/20466018/how-to-print-a-single-ascii-char

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!