gpt4 book ai didi

python - 想要将旧的 6502 源代码 HEX 行转换为 .byte $00 行

转载 作者:太空宇宙 更新时间:2023-11-03 20:04:31 24 4
gpt4 key购买 nike

我需要你的帮助,就像标题所说,我正在尝试转换大量源代码,而我的很多旧源代码都有很多汇编程序代码行(6502)我不再可以在 Windows 上使用。

我可以进行大量搜索并替换以更改所有操作码,例如!byte 更改为 .byte 或 DCB 更改为 .byte,DCW 更改为 .word 等,但是当我有一行又一行的十六进制时,我陷入困境代码,我需要将其转换为 .byte (例如),即假设我有

HEX 0000000000000000 
HEX 0000000002000000

我想结束

.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$02,$00,$00,$00

现在,如果我只有 2 行代码,我可以手动完成此操作,但是当我打开具有 100 行代码的源代码时,这将是乏味的并且需要很长时间。

我考虑过Python,我考虑过vb脚本甚至批处理脚本,但大多数都涉及将代码复制到文件中,用语言解析文件(弗兰肯斯坦的代码来自互联网)并得到结果并将其加载回来,我想一定有一种方法(可能使用vbscript,因为我过去常常使用VBA和VB6,但我太老了,生锈了,甚至无法考虑这一点现在)弹出两个框,左框,十六进制的原始副本,右框.byte 输出?甚至是一个文本输入框,我复制并粘贴到其中,它会给出下面的结果,然后我可以复制并粘贴回我的源代码中。

最佳答案

您可以将原始字符串的相关部分分割为 2 个字符的 block ,并使用列表理解将其转换为所需的格式:

def convert(s):
codes = s[4:]
return ".byte {}".format(",".join("${}".format(codes[i*2:i*2+2]) for i in range(len(codes)//2)))

然后

print(convert("HEX 0123456789ABCDEF"))

将打印

.byte $01,$23,$45,$67,$89,$AB,$CD,$EF

然后您应该能够在客户端应用程序(例如 tkinter)或简单的 Web 应用程序(例如 flask)中使用此函数。

请注意,您还可以找到 MOS6502 的交叉编译器。

关于python - 想要将旧的 6502 源代码 HEX 行转换为 .byte $00 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59042989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com