汇编器字符输出
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
中放置了一个 实际字符 ,你应该在其中放置一个指向字符串的指针。
目前我正在研究汇编语言。我想向控制台打印一个字符,我的程序运行没有错误,但没有输出。这是我当前的代码:
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
中放置了一个 实际字符 ,你应该在其中放置一个指向字符串的指针。