所以我正在使用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.这里有什么问题,为什么看起来跳转到错误的地址正在生成?它在我正在设计的处理器模型中引起了一些问题。任何帮助都会受到重视!