Микроконтроллер 8051: как получить адреса входов в инструкции JB & CJNE? - PullRequest
2 голосов
/ 27 октября 2009

Я реализую весь набор инструкций 8051 в VHDL с нуля. Большинство вещей прошло хорошо, но наткнулся на эти 2 инструкции:

JB bit,rel
00100000 bit_address rel_address

CJNE A,#data,rel
10110100 immediate_data rel_address

Любая помощь или подсказка очень ценится. Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 28 октября 2009

Относительный адрес предоставляется программистом. Обычно это вычисляется ассемблером по меткам.

Ваш файл asm будет содержать:

   ...asm code
   ...asm code
   JB some_bit, some_label
   ...more asm code
   ...more asm code
   ...more asm code
some_label:
   ...more asm code
   ...more asm code

Ассемблер проанализирует код между инструкцией JB и меткой и вычислит количество байтов смещения, необходимое для получения метки, это число, которое он передает в инструкцию JB.

Здесь - хорошее объяснение инструкций 8051.

1 голос
/ 27 октября 2009

Может быть, вы могли бы получить некоторые подсказки от http://www.cs.ucr.edu/~dalton/i8051/i8051syn/?

...