*MLE解决方案2
2025-07-15 08:15:06
发布于:上海
12阅读
0回复
0点赞
dpsk给了几个关于Linux系统核心的代码
// 编译: g++ -nostdlib -O1 -o program program.cpp
// 运行: ./program (输出2)
asm(R"(
.global _start
_start:
# 写入系统调用 (syscall 1)
mov $1, %rax # sys_write
mov $1, %rdi # fd = stdout
lea msg(%rip), %rsi # 消息地址
mov $1, %rdx # 长度=1字节
syscall
# 退出系统调用 (syscall 60)
mov $60, %rax # sys_exit
xor %rdi, %rdi # 退出码=0
syscall
msg:
.ascii "2" # 常量数据
)");
但是编译错误,不行
全部评论 1
asm(R"( .global main main: # 写入系统调用 (syscall 1) mov $1, %rax # sys_write mov $1, %rdi # fd = stdout lea msg(%rip), %rsi # 消息地址 mov $1, %rdx # 长度=1字节 syscall # 退出系统调用 (syscall 60) mov $60, %rax # sys_exit xor %rdi, %rdi # 退出码=0 syscall msg: .ascii "2" # 常量数据 )");改成这样就好了
1周前 来自 上海
0#pragma GCC optimize("no-stack-protector") #pragma GCC optimize("no-unwind-tables") #pragma GCC optimize("no-asynchronous-unwind-tables") #pragma GCC optimize("no-exceptions") #pragma GCC optimize("no-rtti") __asm__( ".global main\n" "main:\n" "pushq $1\n" "popq %rax\n" "leaq msg(%rip), %rsi\n" "cdq\n" "movb $9, %dl\n" "syscall\n" "pushq $60\n" "popq %rax\n" "xorl %edi, %edi\n" "syscall\n" "msg:\n" ".byte 0xe5, 0x8c, 0x85, 0x4d, 0x4c, 0x45, 0xe7, 0x9a, 0x84\n");这是我写的
1周前 来自 浙江
0你那个1.39我这个1.26
1周前 来自 浙江
0










有帮助,赞一个