1

所以我正在使用coldfire(mcf5225x系列)并且我遇到了跳转编码的一些问题,在这种情况下它具有与68k相同的二进制表示。

asmtest.o:     file format elf32-m68k

Disassembly of section .text:

00000000 <_start>:
   0:   0682 0000 0040  addil #64,%d2
   6:   d481            addl %d1,%d2
   8:   4efa 0008       jmp %pc@(12 <exit>)
   c:   0682 ffff ffff  addil #-1,%d2

00000012 <exit>:
  12:   d081            addl %d1,%d0

如您所见,jmp 指令的模式和寄存器为 111010,表示与 PC 的 16 位字扩展偏移量。16 位扩展是当前地址 8hex 的 8hex 偏移量。它应该导致 12 但是,我的数学表明我得到了 10。这里有什么问题,为什么似乎生成了错误的跳转地址?它在我正在设计的处理器模型中引起了一些问题。任何帮助将不胜感激!

4

0 回答 0