汇编器字符输出

Assembler char Output

目前我正在研究汇编语言。我想向控制台打印一个字符,我的程序运行没有错误,但没有输出。这是我当前的代码:

movl  , %eax         #Defines Output
movl  , %ebx         #STDOUT as first parameter
movl  , %ecx        #Copy char (0) to ECX
movl  , %edx         #String length 1
int   [=10=]x80            #Trigger Interrupt

movl  %eax, %ebx       #Exitcode 0
movl  , %eax         #System Code SYS_EXIT
int   [=10=]x80            #Trigger Interrupt

你知道为什么它没有输出吗?如您所见,我使用的是 GAS 语法。我的代码有什么问题?

sys_write 调用需要三个参数:

Register | Type         | Description
---------+--------------+----------------------------
ebx      | unsigned int | file descriptor
ecx      | const char * | pointer to data to write
edx      | size_t       | length of data

所以你的问题是你在 ecx 中放置了一个 实际字符 ,你应该在其中放置一个指向字符串的指针。