如何在python

时间:2017-10-10 12:39:16

标签: python binary data-conversion edid

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

我找到了this汇编脚本来生成不同的解决方案。我能够将其用作"模板"和我的python脚本工作正常生成CEA扩展Blob。现在我想合并" Head"和我的CEA Blob在the Wikipedia EDID Byte Order Site的帮助下。

但是在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字节有什么意义吗?

1 个答案:

答案 0 :(得分:1)

在汇编程序中,行开头的标记表示地址。 start1是字符串"Linux #0"开始的地址,end1是字节0x0a开始的地址(或因为它是单个字节而定位)。术语(end1-start1)指的是地址的差异。由于汇编程序将事物放在内存中,因此这是字符串"Linux #0"的长度,即i。即8。

术语12 - (end1-start1)则是将事物填充到12个字节所需的填充字节数。然后将它们放在.byte 0x0a.fill ed with spaces(0x20))后面。