我很困惑,我有这个简单的hello world程序,编译并测试here。
汇编程序如何知道写入ecx
的内容,即使命令msg db 'Hello, world!',0xa
在底部执行?汇编程序是从下到上阅读代码,或者这是如何工作的?
另一个问题。为什么0xa
后面有msg db 'Hello, world!
?
mov edx, len ;message length
mov ecx, msg ;message to write
mov ebx, 1 ;file descriptor (stdout)
mov eax, 4 ;system call number (sys_write)
int 0x80 ;call kernel
mov eax, 1 ;system call number (sys_exit)
int 0x80 ;call kernel
msg db 'Hello, world!',0xa ;our dear string
len equ $ - msg ;length of our dear string
答案 0 :(得分:0)
汇编程序只使用汇编代码生成机器代码。然后运行机器代码。