我需要你的帮助,就像标题所说,我正在尝试转换大量源代码,而我的很多旧源代码都有很多汇编程序代码行(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/