gpt4 book ai didi

assembly - 如何清理格式错误的 x86_64 程序集?

转载 作者:行者123 更新时间:2023-12-02 19:23:15 25 4
gpt4 key购买 nike

我有一些程序集想要清理。它全部大写、间距不一致以及大量不需要的换行符。

如何美化这段 x86_64 汇编代码?

最佳答案

我不知道任何有关汇编的具体信息,但您提到的事情可以使用 sed 完成。

需要注意的几点:

  • 助记符通过正则表达式[A-Za-z0-9]+进行匹配。我完全想不出任何包含其他字符的助记符。
  • GPR 的上半部分与 r(8|9|1[0-5])(b|w|d) 匹配?
  • 字节 GPR(不包括 r8b-r15b)由 [abcd](l|h)|(sp|bp|si|di)l 匹配
  • 16 位、32 位和 64 位低 8 位 GPR 与 [er]?([abcd]x|sp|bp|si|di) 匹配
  • SSE 寄存器可以与正则表达式 xmm(1[0-5]?|[0,2-9])
  • 匹配

例如:

# Replace tabs with spaces, then clean up lines of the form "op reg/imm, ..."
# N.B. without the /I option the match will be case-sensitive
sed 's/\t/ /g' <test.s | sed 's/^\s*\([a-z0-9][a-z0-9]*\)\s\s*\([a-z0-9][a-z0-9]*\)\s*,\s*/\t\1\t\2, /I'

# Lowercase all GPRs and SSE vector registers"
# I have chosen not to use the more compact patterns above in the interest of readability.
... | sed '/\([^a-z]\)\(AL|AH|AX|EAX|RAX|...XMM0|XMM1|...|XMM15\)/\1\L\2/gI'

# Lowercase all instruction mnemonics. More specifically, matches the first thing on every line except when it is followed by a colon.
... | sed '/^\s*\([a-z0-9][a-z0-9]*\)\([^:]\)/\L\1\2/I

关于assembly - 如何清理格式错误的 x86_64 程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39564119/

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