segment .data
msg db "Enter your ID", 0xA, 0xD
len equ $ - msg
segment .bss
id resb 10
segment .text
global _start
_start:
mov eax, 4
mov ebx, 1
mov ecx, msg
mov edx, len
int 0x80
mov eax, 3
mov ebx, 0
mov ecx, id
mov edx, 10
int 0x80
mov eax, 4
mov ebx, 1
int 0x80
_exit:
mov eax, 1;
xor ebx, ebx
int 0x80
;End
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 gcc 在 c 中编译这个文件,但是程序给了我一个错误,我完全不知道问题出在哪里。和我的操作系统有关系吗?
您的代码不应该使用标准 C 库,因此将其与 bareld而不是链接gcc会有所帮助(_start默认情况下是入口点,可以使用--entry选项指定其他入口点ld)。
但这没有帮助:这段代码不适用于 Windows 操作系统,而且您显然是为 Windows 编译它。