相关疑难解决方法(0)

ELF文件格式中节和段的区别是什么

来自wiki 可执行文件和可链接格式:

这些段包含运行时执行文件所必需的信息,而段包含用于链接和重定位的重要数据.整个文件中的任何字节最多只能由一个部分拥有,并且可能存在不属于任何部分的孤立字节.

但是段和段之间有什么区别?在可执行的ELF文件中,段是否包含一个或多个部分?

linux debian gnu elf abi

60
推荐指数
3
解决办法
2万
查看次数

x86_64汇编 - 在x64汇编中尝试编辑数组中的字节时的Segfault

我所遵循的教程是针对x86的,并且是使用32位汇编编写的,我正在尝试跟进,同时在此过程中学习x64汇编.在本课程中我已经进行了很好的练习,我有以下简单的程序,它只是尝试修改字符串中的单个字符; 它运行时编译好但是段错误.

section .text

global _start ; Declare global entry oint for ld
_start:

    jmp short message ; Jump to where or message is at so we can do a call to push the address onto the stack

    code:   
    xor rax, rax    ; Clean up the registers
    xor rbx, rbx
    xor rcx, rcx
    xor rdx, rdx

    ; Try to change the N to a space
    pop rsi ; Get address from stack
    mov al, 0x20 ; Load 0x20 into RAX …
Run Code Online (Sandbox Code Playgroud)

assembly x86-64 segmentation-fault

2
推荐指数
1
解决办法
457
查看次数

代码段和数据段背后的基本原理

将内存分为代码段和数据段的基本原理是什么?我在一个来源中读到,由于冯诺依曼架构指令和数据存储在同一个地方,因此完成了这种分离。

但我想知道,由于指令和数据存储在同一个地方,因此需要分为代码段和数据段,可能会导致哪些问题?

为什么还要进一步进入bss段、堆段和堆栈段?

memory assembly

2
推荐指数
1
解决办法
1240
查看次数

标签 统计

assembly ×2

abi ×1

debian ×1

elf ×1

gnu ×1

linux ×1

memory ×1

segmentation-fault ×1

x86-64 ×1