gpt4 book ai didi

linux - 使用 mmap 函数创建数组。汇编程序 x86_64 AT&T

转载 作者:太空狗 更新时间:2023-10-29 12:14:41 24 4
gpt4 key购买 nike

我想创建一个包含例如 4 个值的数组这是我的代码:

mov $32,%rsi # 4 x 8bytes
mov $9,%rax
mov $0,%rdi
mov $0x3,%rdx
mov $0x01,%r10
mov $0,%r9
syscall

现在我在 rax 中有一个分配的 32 字节的新地址?

当我试图往里面放东西的时候,例如:

mov $0,%r14
mov $3,%rdx
mov %rdx,(%rax,%r14,8)

它给我 SIGSEGV 错误

最佳答案

mmap 需要 6 个参数,但您只传递了 5 个。您忘记为文件描述符设置 r8。假设你想分配匿名内存,这应该设置为 -1,当然 MAP_ANONYMOUS 也应该在标志中设置。

PS:如果您有可用的 C 库,分配内存的简单方法是调用 malloc()

关于linux - 使用 mmap 函数创建数组。汇编程序 x86_64 AT&T,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29882015/

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