我这里有以下汇编代码。基本上,我想两次执行sys_write syscall来向stdout写入内容。
section .text
global _start
_start:
;write hello world
mov eax, 4
mov ebx, 1
mov edx, len_hello_world
mov ecx, hello_world
int 0x80
;write my name
mov eax, 4
mov ebx, 1
mov edx, len_my_name
mov ecx, my_name
int 0x80
;exit program
mov eax, 1 ; sys_exit
int 0x80
section .data
hello_world db "Hello, World!", 0xd
len_hello_world equ $ - hello_world
my_name db " My name is Moritz!", 0x13
len_my_name equ $ - my_name
预期输出:
Hello, World! My name is Moritz!
实际输出:
My name is Moritz!
我的问题是:为什么第一个sys_call会“跳过”(抱歉,对于外行而言,我完全是菜鸟)