Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Desktop / Лекции / Лек_14.doc
Скачиваний:
12
Добавлен:
10.06.2015
Размер:
110.59 Кб
Скачать

Особенности методов базирования и индексации в ‘c6x:

  • базирование указывается одним знаком операции со смещением и всегда перед именем базы, а индексация – двумя знаками;

  • смещение указывается в квадратных скобках и представляется либо константой, либо содержимым регистра РОН, например: *-А7[A5], *++А7[5];

  • второй смысл третьей буквы мнемоники команды: W означает предварительное учетверение смещения, H – удваивание, B – неизменность смещения;

  • если величина смещение превышает 5 двоичных разрядов, в качестве базы или индекса может использоваться только регистр В14 или В15. При этом в методе базирования вычитание не поддерживается.

Команды поддерживают три вида адресации:

косвенная, например базирование, например

LDх *А7,А4 LDW *+А7[5],А4

STх А4,*А7 АИ = А7+45

АИ = содержимому А7

STH А4,*-А7[5]

АИ = А7- 25

ИНДЕКСАЦИЯ

прединдексация, например LDB *++А7[5],А4

АИ = А7+15

STH А4,*--А7[5]

АИ = А7-25

постиндексация, например STx А4,*А7++[5]

АИ = содержимому А7

LDх *А7--[5],А4

АИ = содержимому А7

Примеры команд загрузки и хранения:

1. LDW .D1 *A10,B1 (косвенная) 2. LDВ .D1 *-A5[4],A7 (базирование)

Перед командой после 4 тактов Перед командой после 4 тактов

В1 хххх ххххh 21F3 1996h А5 0000 0204h 0000 0204h

A10 0000 0100h 0000 0100h A7 хххх ххххh FFFF FFE1h

Mem 100h 21F3 1996h 21F3 1996h Mem 200h E1h E1h

3. LDН .D1 *++A4[А1],A8 (преиндекс.) 4. STН .D1 A1,*A10--[А11] (постиндекс.)

Перед командой после 4 тактов Перед командой после 1 такта

А1 0000 0002h 0000 0002h А1 9А32 7634h 9А32 7634h

A4 0000 0020h 0000 0024h А10 0000 0100h 0000 00F8h

А8 хххх ххххh FFFF A21Fh А11 0000 0004h 0000 0004h

Mem 24h A21Fh A21Fh Mem 100h В000 800Аh 0000 7634h

5. LDВ .D2 *+В14[36],В1 (конст. >25-1) 6. LDW .D1 *A4++[1],A6 (постиндекс.)

Перед командой после 4 тактов Перед командой после 4 тактов

В1 хххх ххххh 0000 0012h A4 0000 0100h 0000 0104h

В14 0000 0100h 0000 0100h А6 хххх ххххh 0798 F25Ah

Mem 124h 12h 12h Мem 100h 0798 F25Ah 0798 F25Ah

Команды ввода исходных данных

MVК (с расширением знаком)

MVК .S1 293,A1 MVК .S1 0А95АF12h,A1

перед командой после 1 такта перед командой после 1 такта

А1 хххх ххххh 0000 0125h A1 хххх ххххh FFFF АF12h

MVКH

MVКH .S1 0А3291h,A1

перед командой после 1 такта

А1 хххх 7634h 000А 7634h

MVКLH

MVКLН .S1 7A8h,A1

перед командой после 1 такта

A1 хххх F25Ah 07А8 F25Ah

Арифметические команды

ABS – вычисление абсолютной величины.

Особенность команды: результат представляется в дополнительном коде.

ABS .L1 A1,A5 (отрицательное) ABS .L1 A1,A5 (положительное)

перед командой после 1 такта перед командой после 1 такта

А1 8000 4E3Dh 8000 4E3Dh A1 3FF6 0010h 3FF6 0010h

A5 xxxx xxxxh 7FFF B1C3h A5 xxxx xxxxh 3FF6 0010h

ADDК – сложение со знаковой константой

ADDК .S1 15401,A1 (1540110 = 3С29h)

перед командой после 1 такта

А1 0021 37E1h 0021 740Ah

ADD2 – сложение младших и старших полуслов

ADD2 .S1X A1,B1,А2

перед командой после 1 такта

А1 0021 37E1h 0021 37Е1h

В1 039A E4B8h 039A E4B8h

А2 xxxx xxxxh 03BB 1C99h

ADD – сложение знаковых целых

Соседние файлы в папке Лекции