Dsfgsdgdfg

  • 23 апр. 2012 г.
  • 1906 Слова
1.Форматы команд и способы адресации:
Каждый байт имеет уникальный 16-ти битный двоичный адрес, соответствующий местоположению байта в памяти и может адресовать 65536 байт памяти, которая состоит из ПЗУ ОЗУ.
Это число объясняется тем, что используя 16-ти разрядный двоичный код можно закодировать 65536 адресов, которые будут представляться следующим образом 0000 0000 0000 0000,

0000 00000000 0001, 0000 0000 0000 0010, … … … … …
1111 1111 1111 1110, 1111 1111 1111 1111.
Данные в процессоре записываются в виде 8-битных двоичных чисел.
Слово данных
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Старший бит Младший бит

На языке ассемблера любая команда записывается с помощьюмнемоники. Например коду 80 соответствует мнемоника ADD B – сложение содержимого регистра «А» и «В» и запись результата в регистр «А», коду 90 соответствует мнемоника SUB B – вычитание содержимого регистра «В» из содержимого регистра «А» и запись результата в регистр «А».
Точный формат команд зависит от конкретной операции, которую надо выполнить.

Однобайтная команда
D7 | D6| D5 | D4 | D3 | D2 | D1 | D0 |

Двухбайтная команда
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |

Трехбайтная команда
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
D7 | | | | | | | D0 |
D7 | | | | | | | D0 |

Код команды всегда записывается в первый байт команды и занимает 8разрядов. Поэтому не трудно подсчитать какое количество команд можно закодировать, используя 8-и разрядный
двоичный код. Это количество = 256
Каждому коду соответствует своя конкретная команда, которая записывается с помощью мнемоники. Например коду 80 соответствует мнемоника ADD B – сложение содержимого регистров «А» и «В» и запись результата в

регистр «А», коду 90 соответствует мнемоника SUB B –вычитание содержимого регистра «В» из содержимого регистра «А» и запись результата в регистр «А».
Каждый регистр кодируется с помощью трех двоичных разрядов следующим образом:
Регистр «А» - 111
Регистр «В» - 000
Регистр «С» - 001
Регистр «D» - 010
Регистр «Е» - 011
Регистр «Н» - 100
Регистр «L» - 101
Команда пересылки информации из регистра в регистр имеет следующий формат данных
MOV R – мнемоникакоманды
DDD – код регистра назначения
SSS – код регистра источника
0 | 1 | D | D | D | S | S | S |

Чтобы определить код команды MOV A,C,
которая пересылает слово данных из регистра «С» в регистр «А» достаточно заменить DDD кодом регистра «А», а SSS кодом регистра «С». В двоичной системе счисления код команды будет выглядеть следующим образом: 0 1 1 1 1 0 0 1. В ШСС эта запись означает 79. Приопределении кода команды MOV C,A которая пересылает слово данных из регистра «А» в регистр «С», регистром назначения будет «С», а источником регистр «А», следовательно DDD равно 001, а SSS – 111. Подставляя эти данные в формат команды, получим двоичный код команды: 0 1 0 0 1 1 1 1, что соответствует в ШСС коду 4F.

2. Способы адресации.
Часто обрабатываемые данные хранятся не в регистрах, а впамяти. При использовании
многобайтных данных такие данные, как команды хранятся в следующих одна за другой ячейках памяти. Младший байт записывается первым, за ним следуют более старшие байты. В любой команде, обрабатывающей или преобразующей данные, обязательно указываются адреса этих данных.

2.1. Прямая адресация.
Второй и третий байты команды содержат точный адрес ячейки памяти, в которойхранятся нужные данные. Младшие биты адреса содержаться во втором байте, старшие - в третьем.
Эти команды имеют длину 3 байта. В первом байте хранится код команды, во втором и третьем – адрес, т.к для хранения адреса необходимо использовать два байта. К командам с прямой адресацией относятся команды переходов и вызова.
Рассмотрим следующие примеры:
Команда CALL...
tracking img