gpt4 book ai didi

linux - 定义代码段

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:53 26 4
gpt4 key购买 nike

我正在尝试使用 Nasm 汇编以下代码:

section .stage1_main 
extern stage1_get_stage2_addr
global stage1_main

stage1_main:
sub rsp, 0x8
call stage1_get_stage2_addr
cmp rax, -1
jz error
add rsp, 0x8
push stage1_main
jmp rax

error:
ret

.stage1_main 是我定义的新部分。问题是 Nasm 将其定义为数据部分

objdump -h main.o

main.o: 文件格式elf64-x86-64

部分:

Idx 名称 大小 VMA LMA 文件关闭 Algn 0 .stage1_main 0000001b 0000000000000000 0000000000000000 000001c0 2**0 内容、分配、加载、重新定位、只读、数据

我需要一段代码...有没有办法将我的部分定义为代码部分(如 .text)

最佳答案

您可以让您的 section 指令明确声明该部分的内容是可执行的:

.stage1_main exec 部分

您可能还想坚持 16 字节对齐(nasm 会自动为 .text 部分执行):

section .stage1_main exec align=16

关于linux - 定义代码段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10849230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com