如何解决如何使 .equ 指令全局化以便它可以在其他文件中使用?
作为一个玩具项目,我正在构建一些仅使用 ARM64 的项目。我有一些名为pairs.s 的文件,它包含某种结构/类的实现,我有一个名为pairs_size 的.equ 指令,它定义了该类的大小,我想在另一个.s 文件中使用该类,所以在哪里pair 类在另一个类中使用,因此我需要在编译时通过添加两个类的大小来计算该类的大小:
这里是pairs.s:
.global pairs_ctor
.global pairs_ctor_dynamic
.equ constant_power_pair_size,16
.equ constant_power_pair_power_offset,0
.equ constant_power_pair_constant_offset,8
that is the .equ I would like to use in another file
**.equ pairs_size,40**
.equ pairs_pairs_offset,0
.equ pairs_count_offset,8
.equ pairs_capacity_offset,16
.equ pairs_single_power_offset,24
.equ pairs_single_constant_offset,32
// pairs* pairs_ctor_dynamic();
pairs_ctor_dynamic:
stp x29,x30,[sp,-16]!
stp d0,d1,-16]!
mov x0,pairs_size
bl malloc
ldp d0,[sp],16
ldp x29,16
// void pairs_ctor(_ x0 : pairs*,_ d0 : power,_ d1 : constant);
pairs_ctor:
add x1,x0,pairs_single_power_offset
str x1,[x0,pairs_pairs_offset]
mov x1,1
stp x1,x1,pairs_count_offset] // count = capacity = 1
str d0,pairs_single_power_offset]
str d1,pairs_single_constant_offset]
ret
另一个文件是例如ASTX.s:
ASTX_vtable:
.quad ASTX_evaluate
.quad ASTX_derivative
.quad ASTX_toString
// unfortunately that line doesn't compile!
**.equ ASTX_size,16+pairs_size**
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。