汇编程序char输出

时间:2015-04-27 14:22:47

标签: assembly gas

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

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

movl  %eax, %ebx       #Exitcode 0
movl  $1, %eax         #System Code SYS_EXIT
int   $0x80            #Trigger Interrupt

你有什么想法为什么它没有输出?如您所见,我正在使用GAS语法。我的代码有什么问题?

1 个答案:

答案 0 :(得分:5)

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中放置一个实际角色,你应该在那里放一个指向字符串的指针。