Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Группа арифметических команд




 

Команды этой группы предна­значены для выполнения арифметических операций над данны­ми, хранимыми в регистрах и ячейках памяти. Эти команды в отличие от команд предыдущей группы, как правило, оказывают влияние на значения разрядов флагового регистра, по­скольку при выполнении арифметических операций меняются знаки используемых чисел, возникают сигналы переноса, появ­ляются нулевые результаты и т. п. Рассмотрим примеры разме­щения в байтах некоторых команд этой группы.

Команда ADD r. Эта команда выполняет сложение содержимо­го регистра-источника S с содержимым аккумулятора А. Резуль­тат сложения помещается в аккумулятор. Чтобы получить кон­кретную команду, необходимо в формате команды вместо сим­волов S проставить код регистра-источника из табл. 4.4. Напри­мер, команда 10 000 001 производит сложение содержимого регистра С с содержимым аккумулятора А. Двоичный код этой команды 10 000 001 В; в восьмеричной системе это число пред­ставляется кодом 201Q. Это представление является восьмерич­ным кодом команды ADD С, выполняющей указанное выше сложение (см. список команд в приложении 1). Размещение команды ADD г в байте приведено на рис. 4.9,д.

Команда SUB r. Команда выполняет вычитание содержимого регистра-источника S из содержимого аккумулятора. Результат заносится в аккумулятор (рис. 4.9,6). Например, команда 10 010 ОН В выполняет вычитание содержимого регистра Е из содержимого регистра А и помещает результат в аккумулятор. Код этой команды SUB Е — 223 Q.

Таблица 4.4

Регистр Код Пара регистров Код Обозначение условия в мне­мокоде Код
А   В (В, С)   NZ (Z = 0)  
В   D (D, E)   Z(Z=1)  
С   Н (Н, L)   NC (CY - 0)  
D   SP   C(CY= 1)  
Е       РО (Р = 0)  
Н       РЕ(Р = 1)  
L       Р (S - 0) ПО
М (память)       М (S= 1) ПО

 

Команда SUI <В2> производит вычитание содержимого второ­го байта (команда двухбайтовая) из содержимого аккумулято­ра и помещает результат в аккумулятор (рис. 4.9,в). Восьмерич­ный код команды — 326Q (см. приложение 1).

Кроме команд, приведенных в качестве примеров, группа арифметических команд содержит команды сложения и вычита­ния содержимого аккумулятора с содержимым ячеек памяти, а также команды увеличения и уменьшения на единицу содер­жимого различных регистров.

 

ГРУППА ЛОГИЧЕСКИХ КОМАНД

 

Команды этой группы предна­значены для выполнения логических, или булевых, операций над данными,.содержащимися в регистрах, ячейках памяти, а также над флагами условий. К этим операциям относятся операции: логического сложения (ИЛИ), логического умноже­ния (И), суммирования по модулю 2, сравнения, сдвига, до­полнения до 1 и до 2. Как и команды предыдущей группы, все логические команды оказывают влияние на флаги.

Команда ANA г выполняет параллельно поразрядное логиче­ское И над содержимым регистра-источника и аккумулятора. Результат операции заносится в аккумулятор (рис. 4.10,а). Например, команда 10 100 100 В выполняет операцию логиче­ского умножения поразрядно над содержимым регистра Н и А и заносит результат в аккумулятор. Двоичный код 10 100 100 В соответствует восьмеричному коду 244Q коман­ды ANA H.

Рис. 4.10. Примеры размещения некоторых логических команд в байтах

 

Команда ANI < В2 > является двухбайтовой и также выполняет поразрядную операцию логического И, но над содержимым вто­рого байта команды и аккумулятора. Команда имеет восьмерич­ный код-3460 (рис. 4.10,6). Результат операции заносится в аккумулятор.

Команда ORAr аналогична команде ANA r, но в отличие от нее выполняет операцию поразрядного логического ИЛИ. Результат операции заносится в аккумулятор (рис. 4.10,в).

ГРУППА КОМАНД ПЕРЕХОДОВ

 

Эта группа команд предназначе­на для организации правильной последовательности выполнения программы. Сюда входят команды безусловного и условного переходов, команды вызова подпрограммы и возвращения к главной программе. Все команды этой группы на флаги влия­ния не оказывают. Команды безусловного перехода выполняют специальные операции над содержимым счетчика команд. Команды условного перехода обеспечивают необходимое ветвле­ние программы путем анализа состояния одного из четырех флагов: нуля, знака, четности и переноса, коды которых указа­ны в табл. 4.4.

Команда JMP < В2> <ВЗ> — трехбайтовая команда передает управление команде по адресу, содержащемуся в третьем и втором байтах текущей команды. Это осуществляется путем записи содержимого третьего и второго байтов команды в счетчик команд (рис. 4.11,а). Как уже отмечалось в § 4.3, счетчик команд представляет собой 16-разрядный регистр, содержащий адрес, по которому можно обратиться для считывания очеред­ного байта команды. Восьмеричный код этой команды - 303 Q.

Команды CALL и RET — команды безусловного перехода. Первая из них передает управление подпрограмме, прекращая выполнение основной программы; вторая передает управле­ние главной программе, возвращаясь к ее выполнению (рис. 4.11,£, в). Первая команда — трехбайтовая. Восемь стар­ших разрядов адреса следующей команды пересылаются в ячей­ку памяти, адрес которой на единицу меньше содержимого ука­зателя стека. Восемь младших разрядов адреса следующей команды пересылаются в ячейку памяти, адрес которой на две единицы меньше содержимого указателя стека. Содержимое указателя стека уменьшается на две единицы. Управление пере­дается команде, адрес которой размещается в третьем и втором байтах команды CALL

Рис. 4.11. Примеры размещения некоторых команд переходов в байтах

 

Команда RET — однобайтовая. Ее восьмеричный код — 311Q (код предыдущей команды CALL — 315Q). В процессе выполне­ния этой команды содержимое указателя стека получает прира­щение на две единицы. Содержимое ячейки памяти по адресу, хранящемуся в указателе стека, пересылается в счетчик команд на место младших восьми разрядов. Содержимое ячейки памяти по адресу, на единицу большему, чем содержимое указателя стека, пересылается в счетчик команд на место старших восьми разрядов. Таким образом, возвращение к главной программе происходит всегда путем обращения к байту команды, непо­средственно следующему за байтом, используемым командой CALL

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...