gpt4 book ai didi

linux - 汇编代码一直显示段错误

转载 作者:太空宇宙 更新时间:2023-11-04 11:18:26 27 4
gpt4 key购买 nike

为什么这段汇编代码汇编和链接正常,但在运行时显示段错误。在说明后发表评论,让我知道我想做什么。

  jmp short init

action:
pop esi
xor eax, eax
mov byte [esi+24], al ;null terminating the string.
mov dword [esi+25],24 ;length of the string

mov al,4 ;syscall write
mov ebx,1 ;standard out
lea ecx,[esi] ;<<---------- Unsure about this. probably load the address of the string to ecx
mov edx,[esi+25] ;<<-- load edx with string length
int 80h


init:
call action
db "what a pity! not working#LLLL"

我正在使用 NASM 进行汇编,并使用 ld 进行链接。该程序将在 64 位计算机上运行,​​但我希望它与 32 位兼容。

最佳答案

您想在 ecx 中获取字符串的地址。那你为什么要 pop esi ?使用 pop ecx 并且您已经将它放在正确的寄存器中。无论如何,您不需要它用于其他目的。

除此之外,您正在写入默认情况下不可写的代码段。

关于linux - 汇编代码一直显示段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19749801/

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