Coldfire/m68k проблема с кодировкой перехода
Поэтому я работаю с 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, что означает 16-разрядное смещение расширения слова от ПК. 16-битное расширение - это смещение 8-хэкс от текущего адреса 8-ххх. Это должно привести к 12, однако, моя математика говорит, что я получаю 10. В чем здесь проблема, почему кажется, что генерируется неправильный адрес для перехода? Это вызывает некоторые проблемы в модели процессора, который я проектирую. Любая помощь будет оценена!