0

我需要为 Qt 中的一些 asm 代码创建一个列表视图。

问题是:

  • asm 文件很大,我无法将其加载到 QPlainTextEdit 小部件或类似部件中,因为这会挂起应用程序并且滚动速度会非常慢
  • 滚动条应该允许向前导航(这应该很简单)但也允许向后导航(我怎样才能反汇编以前的指令?我不知道它们有多少字节!)
  • 即使我确定该地址对应于一条指令(并且不位于一条指令的中间),“转到地址”功能也很难实现,问题与前一点相同:我不不知道之前指令的字节数,所以我不能向后反汇编几行

有人可以帮我解决这个问题吗?

4

1 回答 1

2

不要将整个文件加载到小部件/控件中。仅加载足以显示的内容(例如 50 行或任何适合屏幕的内容),然后缓存其余部分或使用文件映射在需要时快速访问其他行。

至于向后反汇编,您可以尝试在离当前位置较远的点开始反汇编,例如在当前地址 - 256 字节。如果您要反汇编代码,反汇编可能会在这 256 个字节内同步。如果代码中嵌入了数据,那么,除了尝试返回不同数量的字节或文件的开头之外,这大约是您能做的最好的事情。

于 2013-02-03T02:34:01.953 回答