如何在 python 中将字符串转换为二进制数据 (EDID)

How to convert a string into binary data (EDID) in python

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

我找到了 this assembly script to generate the different solutions. I was able to use this as a "template" and my python script works fine generating the CEA Extension Blobs. Now i want to merge the "Head" and my CEA Blobs with the help of the Wikipedia EDID Byte Order Site

但是在 GitHub 脚本中这个 (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 字节有什么不合理?

在汇编程序中,行首的标记指的是地址。 start1 是字符串 "Linux #0" 开始的地址,end1 是字节 0x0a 开始的地址(或定位,因为它是一个字节)。术语 (end1-start1) 指的是地址的不同。由于汇编程序将这些东西紧接着放入内存中,因此这就是字符串 "Linux #0", i 的长度。 e. 8.

12 - (end1-start1) 项是将内容填充到 12 字节所需的填充字节数。然后将它们放在 .byte 0x0a 后面(.fill 带空格 (0x20))。