我用Gnu管理'Hello World'了!
那么,接下来的事情是打印1到10对吗? (也许在红宝石中)
目前,我很乐意打印A紧随其后的B.这就是我所拥有的。
.section .text
.globl _start
_start:
# Print A
movl $4,%eax
pushl $0x41
movl %esp,%ecx # Would rather movl $0x41,%ecx
movl $1,%ebx
movl $1,%edx
int $0x80
# Closely followed by B
movl $4,%eax
incl (%esp) # Rather incl(%ecx) here
movl %esp,%ecx
movl $1,%ebx
movl $1,%edx
int $0x80
movl $1,%eax
movl $0,%ebx
int $0x80
它确实有效,但我的问题是,为什么我不能
movl $0x41,%ecx
首先,然后
incl (%ecx)
过了一会儿?
答案 0 :(得分:0)
对于sys_write,%ecx想要指向一个或多个字符驻留在内存中的位置,而不是“be”要打印的字符。 “incb”可能比“incl”更正确,因为你只增加一个字节 - “(%esp)”或“(%ecx)”应该起作用,因为它们指向同一个地方。请注意,您正在递增内存的“内容”,而不是指向内存的指针。
最佳, 弗兰克