M68K二进制指令解码及指令边界理解技术求助
M68K反汇编与模拟器实现疑问整理
我正在自行实现M68K二进制文件的反汇编工具与模拟器,目前已通过第三方工具m68k-linux-gnu-objdump -b binary -m m68k:68000 ...将二进制文件反汇编为文本文件。
具体指令二进制解析疑问
现有一条反汇编指令:
0604 0320 addib #32,%d4
通过M68K指令表得知addi指令的二进制格式为:
0000 011 0 <S> <M> <Xn>
该指令的二进制展开为:
0000 011 0 00 000 100
可确定这是针对数据寄存器D4的8位addi(即addib)操作,但对第二个字0x0320的解析存在疑问:低字节的0x20对应立即数#32,不过中间的0x03含义不明,其他addi指令也存在类似的中间4位数据。
M68K指令表相关概念困惑
- 指令表中“数据”列标注的“任意类型”+立即模式具体指什么?
- 指令表中的蓝色数据子列(B,W,/)、绿色大小列(B/W/L)、粉色格式段(00-B,01-W,10-L)三者是否存在关联?关联逻辑是什么?
指令边界与扩展字理解问题
部分M68K指令为16位,但无法理解指令表中“简短扩展字”和“完整扩展字”的概念,目前仅明确opcode的前16位为“单有效地址操作字”。
内容的提问来源于stack exchange,提问作者IC_
相关产品推荐
相关产品推荐

