Шпаргалки по МПС / MPS_shprots / Вопрос 18
.pdf
4-11
Адрес регистра в окне |
HWindow 15 чтение |
HWindow 15 запись |
17h |
|
IOS2 |
16h |
IOC1 |
IOS1 |
15h |
IOC0 |
IOS0 |
14h |
WSR |
WSR |
13h |
|
|
12h |
|
|
11h |
|
|
10h |
Reserved |
Reserved |
0Fh |
Reserved |
Reserved |
0Eh |
Reserved |
Reserved |
0Dh |
T2CAPTURE(HI) |
T2CAPTURE(HI) |
0Ch |
T2CAPTURE(LO) |
T2CAPTURE(LO) |
0Bh |
IOC2 |
TIMER1(HI) |
0Ah |
WATCHDOG |
TIMER1(LO) |
09h |
|
|
08h |
|
|
07h |
SBUF(TX) |
SBUF(RX) |
06h |
|
|
05h |
|
|
04h |
|
|
03h |
|
|
02h |
|
|
01h |
|
|
00h |
|
|
|
Рисунок 4.6. HWindow 15. |
|
4.6.СОЗДАНИЕ ВЕРТИКАЛЬНЫХ ОКОН
Создание вертикальных окон преобразует области верхнего Регистрового Файла в блоки старших ячеек нижнего Регистрового Файла, размером в 32-, 64-, или 128 байт, известные как вертикальные окна - VWindows. 8XC196KC имеет 16 32-байтных VWindows, 8 64-байтных VWindows и 4 128-байтных VWindows. Так как 8XC196KD имеет вдвое большее RAM (ОЗУ), чем 8XC196KC, то он также имеет вдвое больше вертикальных окон. Пример 128-байтного окна показан на рисунке 4.7.
Рисунок 4.7. Создание вертикальных окон.
4-12
4.6.1.Выбор Вертикального Окна
Регистр Выбора Окна (WSR, 14h) обеспечивает доступ к горизонтальным - HWindow и вертикальным - VWindows окнам. Установите WSR.4, WSR.5, или WSR.6 для выбора 128-, 64-, или 32-байтного VWindows соответственно (смотрите рисунок 4.8). Запишите номер VWindows в младшие биты WSR. В приложение С приведено полное описание WSR с таблицами, которые показывают необходимое содержимое WSR для выбора каждого VWindows. ( Для выбора вертикального окна, показанного на рисунке 4.7, загрузите 17h в WSR.)
Рисунок 4.8. Установка битов регистра выбора окна.
4.6.2.Создание Вертикальных Окон и Способы Адресации
При создании вертикальных окон возможны:
∙команды с прямой регистровой адресацией, которые используют адрес внутри окна нижнего Регистрового Файла, в действительности получают доступ к VWindows в верхнем Регистровом Файле;
∙команды с косвенной или индексной адресацией, использующие адрес внутри окна в нижнем Регистровом Файле или в VWindows, получают доступ к действительной ячейке памяти.
ПРИМЕЧАНИЕ. Косвенные операции сдвига выполняются неправильно, если WSR = X100 0000.
Расположенные ниже команды иллюстрируют различие между прямой регистровой и индексной адресациями, при использовании вертикальных окон:
PUSHA |
; pushes the contents of WSR onto the stake |
|
|
|
; (засылает содержимое WSR в стек) |
LDB |
WSR, #17h |
; select VWindow 7, a 128-byte block |
|
|
; (выбор VWindow 7, 128-байтный блок) |
|
|
; The next instruction uses register-direct addr |
|
|
;(следующая команда использует прямую регистровую |
адресацию) |
|
|
ADD |
40h, 80h |
; mem_word(40h) <- mem_word(40h) +mem_word(380h) |
|
|
;The next two instructions use indirect addr |
; |
|
; (следующие две команды используют косвенную адресацию) |
ADD |
40h, 80h[0] |
; mem_word(40h) <- mem_word(40h) + mem_word(80h+0) |
|
|
; |
ADD |
40h, 380h[0] |
; mem_word(40h) <- mem_word(40h) +mem_word(380h+0) |
|
|
; |
POPA |
|
; reloads the previous contents into WSR |
|
|
;(перегружает в WSR первоначальную информацию) |
