[an error occurred while processing this directive] [an error occurred while processing this directive]
Малость напутали - данные не на Р1, а опять на Р0
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено BLACKEAGLE 02 апреля 2002 г. 03:10
В ответ на: Процедура такая -> отправлено ZAlex 01 апреля 2002 г. 12:05

Разным видам адресации соответствуют разные процедуры:

1. movc a,@a+dptr (чтение байта из ROM):
- 1-й цикл - младший байт адреса (a+dptr0..7) на Р0, защелкивать по ALE
- 2-й цикл - старший байт адреса (a+dptr8..15) на Р2 и одновременно данные на Р0, считывать по -PSEN

2. movc a,@a+PC (чтение байта из ROM):
- 1-й цикл - младший байт адреса (1+a+PC0..7) на Р0, защелкивать по ALE. К PC добавляется единица ДО формирования адреса!
- 2-й цикл - старший байт адреса (a+PC8..15) на Р2 и одновременно данные на Р0, считывать по -PSEN

3. movx a,@dptr/movx @dptr,a (чтение/запись байта из/в XRAM с 16-битовой адресацией):
- 1-й цикл - младший байт адреса (DPL) на Р0, защелкивать по ALE
- 2-й цикл - старший байт адреса (DPH) на Р2 и одновременно данные на Р0, считывать/записывать по -RD/-WR

4. movx a,@r0(или r1)/movx @r0(или r1),a (чтение/запись байта из/в XRAM с 8-битовой адресацией):
- 1-й цикл - младший байт адреса (r0 или r1) на Р0, защелкивать по ALE
- 2-й цикл - данные на Р0, считывать/записывать по -RD/-WR. Старший байт адреса формируется содержимым буферного регистра Р2 по результату последней ЯВНОЙ записи в него командами blabla p2,something (после RESET в буферный регистр Р2 записано 0xFF). Команды обращения к ROM/XRAM с 16-битовой адресацией не изменяют содержимое буферного регистра Р2.

Вероятно, при генерации кода обращения к XRAM компиляторы выбирают 8- или 16-битовый режим адресации в зависимости от заданной модели памяти - Small, Large и т.д.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru