0

我目前正在编写一个 EDID 脚本,以便能够在我的 Fedora25 中选择自定义分辨率

我发现这个汇编脚本可以生成不同的解决方案。我能够将其用作“模板”,并且我的 python 脚本可以很好地生成 CEA 扩展 Blob。现在我想在 Wikipedia EDID Byte Order Site的帮助下合并“Head”和我的 CEA Blob 。

但在 GitHub Skript 中,这 (end1-start1) 让我感到困惑:

Descriptor2:
start1:     .ascii  "Linux #0"
end1:       .byte   0x0a    /* End marker */
            .fill   12-(end1-start1), 1, 0x20 /* Padded spaces */

我该怎么办"Linux #0" - 10?(0x0a = 10) 当我转换“Linux #0”时,我得到76 105 110 117 120 32 35 48描述符的 18 字节没有什么意义?

4

1 回答 1

1

在汇编程序中,行首的标记是指地址。 start1是字符串"Linux #0"开始end1的地址,是字节0x0a开始的地址(或者因为它是单个字节而被定位)。该术语(end1-start1)是指地址的差异。由于汇编器将这些东西一个接一个地放入内存中,这就是字符串的长度"Linux #0",即 8。

然后,该术语12 - (end1-start1)是将事物填充到 12 个字节所需的填充字节数。然后将它们放在.byte 0x0a( .filled 后面,带空格 ( 0x20))。

于 2017-10-10T12:45:41.850 回答