c - 如何正确使用 .bss 内存部分(用于全局变量)进行汇编(armv8)程序?
问题描述
这是我在我的代码上写它的方式:
.section .text
fmt: .string "x \t\t ln(x)\n"
sfmt: .string "%.10lf \t %.10lf\n"
error: .string "Error"
filename: .string "input.bin"
.section .data
LIM: .double 0r1.0E-13
zero: .double 0r0.0
one: .double 0r1.0
half: .double 0r0.5
x_arr: .skip 98*8
...(我认为运行良好的其余代码。我隔离了这部分,因为这是在我编译+链接+运行我的可执行文件时导致分段错误的部分。此外,x_arr 最初位于 .bss 部分,但我保留在获得段错误时,每当我尝试在 gdb 中进行布局注册时,什么都没有出现。)
可能导致整个程序出现问题的其余代码:
define(i_r,w19)
define(j_r,w20)
define(n_r,w21)
define(fd_r,w22)
define(ln_x,w8)
define(cur_term,d9)
define(n_read,x25)
define(x_j,d10)
BUF_SIZE = 98*8
AT_FDCWD = -100
O_RDONLY = 0
ln_size = 8
cur_term_size = 8
x_j_size = 8
fp .req x29
lr .req x30
alloc = -(16+ln_size+cur_term_size+x_j_size) & -16
dealloc = -alloc
.balign 4
.global main
.type main,%function
main: stp fp,lr,[sp,alloc]!
mov fp,sp
ldp fp,lr,[sp],dealloc
ret
解决方案
推荐阅读
- selenium - Docker 上的 Selenium GRID 部署 - 哪些容器?
- excel - 如何比较两个工作表的列,突出显示相同的值#code
- csv - 按行数拆分 CSV 并保留标题
- c# - 使用 C# 创建的出站呼叫,但呼叫没有铃声并断开连接
- c# - 启动时的 aspboilerplate 调用服务
- javascript - 在多个画板中复制图层 - Photoshop 2019
- python - 代码在空闲状态下工作,但在 VS Code 中出现错误
- jquery - 具有切换持续时间的动画 jquery 过滤器
- python - 仅获取 https 链接
- python - Seaborn 没有显示完整的情节