【发布时间】:2021-03-18 01:18:23
【问题描述】:
我正在用汇编程序编写游戏,我想知道是否有一种方法可以在一行中混合可变长度,就像您可以在一行中定义许多相同长度的变量一样。这是一个例子:
.Sprites:
db $0f,120,39,$D506E3
此示例在该列表中的最后一个数字上失败,因为它不是一个字节。但是这个:
.Sprites:
dl $0f,120,39,$D506E3
编译并在变量之间插入空格。 我希望能够改变大小的原因是因为这将是一个包含许多精灵的表格,并且每个精灵都有相同的格式,所以最好将每个人的数据留在一行而不是使用两行可以困惑:
.Sprites:
?? $0f,120,39,$D506E3
?? $0b,110,39,$D5001C
?? $01,120,36,$D509A1
【问题讨论】:
-
(1) 你用的是什么汇编程序? (2)你想让
$D506E3像三个字节d5 06 e3,还是24位little-endiane3 06 d5,或者32位little-endian00d506e3 = e3 06 d5 00,还是什么? -
我认为大多数程序都会让这些数据由其他脚本自动生成,然后可以为
db写出单个字节。像 nasm 这样的一些汇编程序也有incbin,您可以在其中导入外部二进制文件,而无需麻烦地将其转换为db指令。 -
@NateEldredge 1.fasmg 用于 ti-84 pce。 2.我实际上是在使用记忆标签。它是一个指向精灵像素数据的指针。我希望它采用标签通常采用的任何格式
-
每条记录最好使用 2 行,因此第一行可以是
db,第二行可以是dl。或者,如果您的汇编器支持某种struct语法?