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. В чем здесь проблема, почему кажется, что генерируется неправильный адрес для перехода? Это вызывает некоторые проблемы в модели процессора, который я проектирую. Любая помощь будет оценена!

0 ответов

Другие вопросы по тегам