Практическое занятие «системы счисления. Перевод чисел из одной системы счисления в другую» 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Практическое занятие «системы счисления. Перевод чисел из одной системы счисления в другую»



СОДЕРЖАНИЕ

 

Предисловие 4

Введение 5

1 Системы счисления 7

2 Арифметические и логические операции 14

3 Система команд МП КР580ИК80А 17

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

5 Логические команды 27

6 Команды сравнения и команды переходов 31

7 Операции умножения и деления 35

8 Работа с массивами чисел 37

9 Организация программной задержки 41

10 Команды управления вводом-выводом, стеком и состоянием

микропроцессора 44

Приложения 47

Список литературы 71

 

 

ПРЕДИСЛОВИЕ

 

Наибольшие затраты при проектировании микроЭВМ приходятся на разработку их программного обеспечения. Поэтому и возникла потребность более глубокого овладения средствами вычислительной техники.

В настоящих методических указаниях рассмотрены основные вопросы, возникающие при программировании вычислительных и управляющих микропроцессорных систем.

Во введении рассмотрена структурная схема микроЭВМ, представленная как совокупность функциональных блоков.

Методические указания состоят из двух разделов. Первый раздел посвящен рассмотрению позиционных систем счисления и способам перевода чисел из одной системы счисления в другую.

Во втором разделе приведена система команд микропроцессора КР580ИК80А, полный список которых указан в приложении А. Рассмотрены способы адресации, форматы и типы команд микропроцессора.

Для изучения каждой темы предполагается проведение практического занятия и выполнение лабораторной работы. В методических указаниях по каждой теме, кроме теоретического материала, содержатся практические примеры решения задач и варианты заданий для выполнения лабораторных работ. Основные требования к оформлению отчета по выполнению лабораторных работ приведены в приложении К.

Варианты заданий для самостоятельной работы и контрольных работ приведены в приложениях Б-И.

 


ВВЕДЕНИЕ

 

Микропроцессор – это программно-управляемое устройство для обработки цифровой информации и управления, построенное на одной или нескольких больших интегральных схемах (БИС). В состав структурной схемы микропроцессора (рисунок 1) входят три основных узла: арифметическо-логическое устройство (АЛУ), регистры общего назначения (РОН) и устройство управления (УУ).

Арифметическо-логическое устройство (АЛУ) – часть микропроцессора, выполняющая главные функции: арифметические и логические операции с данными: сложение, вычитание, И, ИЛИ, исключающее ИЛИ, сравнение, инверсия, сдвиг вправо, сдвиг влево.

Регистры общего назначения (РОН) выполняют функции запоминающих устройств. Используются для хранения промежуточных результатов вычислений и различной управляющей информации.

Аккумулятор (А) – главный регистр микропроцессора, в нем хранится промежуточный результат арифметических и логических операций.

Регистр признаков (РП) предназначен для фиксирования состояния микропроцессора в каждый момент выполнения программы. Регистр признаков включает в себя набор триггеров, называемых флагами, которые используются при выполнении последующих операций в АЛУ, а также при выполнении команд условных переходов.

Регистр счетчика команд (РС) формирует адрес следующей по порядку команды программы, выбираемой из памяти, т.е. следит за тем, какая команда выполняется, и указывает, какая будет следующей.

Устройство управления (УУ) – часть микропроцессора, организующая последовательность функционирования всех элементов микропроцессора по задаваемой программе для управления и синхронизации обработки данных. Основные функции: обмен данными между памятью, устройствами ввода-вывода и АЛУ.

 

Рисунок 1

 

Память включает устройство, обеспечивающее хранение команд и данных.

Устройства ввода-вывода (УВВ) – электронные схемы, предназначенные для обмена данными с периферийными устройствами.

 

 


Системы счисления

Таблица 1 - Системы счисления

Десятичное число Двоичное число Восьмеричное число Шестнадца- теричное число
Значение позиций
       
             
             
             
             
             
             
             
             
             
             
            A
            B
            C
            D
            E
            F

 


Перевод чисел из двоичной, восьмеричнойи шестнадцатеричной системы в десятичную

. Каждая цифра умножается на вес соответствующего разряда, затем десятичные числа суммируются.

Таблица 2 – Значения позиций чисел

  Позиции чисел
            -1 -2
Степень основания 105 104 103 102 101 100 10-1 10-2
Значения позиций             0,1 0,01
Степень основания 25 24 23 22 21 20 2-1 2-2
Значения позиций             0,5 0,25
Степень основания 85 84 83 82 81 80 8-1 8-2
Значения позиций             0,125 0,0156
Степень основания 165 164 163 162 161 160 16-1 16-2
Значения позиций             0,0625 0,0039

 

Пример 1. Преобразовать двоичное число 101101102 в десятичный эквивалент.

Решение. Процедура преобразования выполняется в соответствии с таблицей 2. Десятичные значения каждой позиции записаны под каждым битом, затем десятичные числа суммируются:

.

Ответ: 101101102=18210.

 

Пример 2. Записать восьмеричное число 23578 в десятичной форме.

Решение. Согласно таблице 2, вес соответствующих четырех первых восьмеричных разрядов: 512, 64, 8 и 1. Вес соответствующих разрядов умножается на соответствующее этому разряду число, складывается, и получается результат:

.

Ответ: 23578=126310.


Пример 3. Преобразовать шестнадцатеричное число в десятичное.

Решение. Процедура действий соответствует таблице 2. Десятичное число содержит 14 (ЕH) единиц, 6 чисел 16, 12 (СH) чисел 256 и 2 числа 4096. Каждая цифра умножается на вес соответствующего разряда, получается сумма, которая и дает десятичное число:

.

Ответ: 2C6EH=1137410.

 

Перевод числа из двоичной системы счисления в восьмеричную и шестнадцатеричную и наоборот

При переводе целой части двоичного числа в восьмеричное двоичное число, начиная с младшего бита (МБ), разбивается на группы из 3 бит (триады), при необходимости, дополняя недостающие биты нулями слева от СБ. Затем, используя таблицу 1, каждая триада преобразуется в эквивалентную восьмеричную цифру.

Аналогичным образом происходит перевод двоичного числа в шестнадцатеричное. Только двоичное число разбивается на группы из 4 бит (тетрады), и каждая тетрада преобразуется в эквивалентную шестнадцатеричную цифру.

Перевод дробной части двоичного числа производится аналогичным образом, причем разбиение на триады или тетрады начинается справа от запятой со старшего бита (СБ), дополнение нулями недостающих бит осуществляется справа от МБ дробной части.

При переводе из восьмеричной и шестнадцатеричной системы счисления в двоичную систему каждый восьмеричный или шестнадцатеричный символ заменяется своим двоичным эквивалентом из 3 или 4 бит.

Перевод дробной части числа из восьмеричной и шестнадцатеричной системы счисления в двоичную производится также путем представления символа в виде триад или тетрад.


Пример 1. Преобразовать двоичное число 10011101,001110112 в восьмеричный и шестнадцатеричный эквиваленты.

Решение

 

Рисунок 4

 

Ответ: .

 

Пример 2. Преобразовать число 76,158 из восьмеричной системы в двоичную.

Решение

.

 

Пример 3. Преобразовать число A8,4F8 из шестнадцатеричной системы в двоичную.

Решение

.

 

Арифметические операции

Сложение Вычитание Умножение

При арифметическом сложении двух двоичных единиц возникает перенос единицы в старший разряд. При вычитании может возникнуть заем единицы из старшего разряда, поэтому вычитание двоичных чисел лучше производить с помощью сложения (сложение с помощью дополнительного кода). Умножение и деление двоичных чисел производится аналогично умножению и делению десятичных чисел.

Логические операции

Таблица 3 - Таблица истинности логических операций

Логическое сложение ИЛИ (дизъюнкция) Логическое умножение И (конъюнкция) Отрицание равнозначности ИСКЛЮЧАЮЩЕЕ ИЛИ (сложение по модулю 2)
X1 X2 Y X1 X2 Y X1 X2 Y
                 
                 
                 
                 
                     

 

Логическая операция НЕ (инверсия)

Значение бита Результат

1 0

0 1

 

Прямой код двоичного числа – это представление двоичного числа в истинной форме. Обратный код – это замена в каждом разряде исходного числа 0 на 1, а 1 на 0 (инвертирование разрядов).

Вычитание выполняется в дополнительном коде. Дополнительный код (дополнение числа) – это число, которое необходимо добавить к данному числу для получения нулей во всех его разрядах и единицы (единицы переноса) слева от самого старшего бита данного числа. Дополнение двоичного числа можно найти, заменив в каждом разряде исходного числа 0 на 1, а 1 на 0 (преобразование в обратный код) и прибавив к полученному числу 1.

Вычитание реализуется путем инвертирования значений всех разрядов вычитаемого (запись числа в обратном коде), добавления к нему единицы (дополнительный код) и сложения его с уменьшаемым (запись числа в прямом коде).

Появление единицы переноса из самого левого разряда свидетельствует о том, что результат – число положительное и представлен в истинной форме (прямой код). Если перенос отсутствует, это свидетельствует о том, что число отрицательное и необходимо вычислить дополнение результата.

 

Пример 1. Произвести вычитание .

Решение. Представим числа в двоичной системе счисления.

, . Дополнительный код вычитаемого: .

Рисунок 6

 

Процедура преобразования из двоичной системы в десятичную выполняется в соответствии с таблицей 2.

Ответ: 1210=11002.

 

Пример 2. Произвести вычитание .

Решение. Представим числа в двоичной системе счисления.

, . Дополнительный код вычитаемого: .

 

Рисунок 7

Ответ: 1410=000011102.

 

 

Способы адресации

Применяются пять способов адресации:

1. Прямая адресация – адрес ячейки памяти, где расположен операнд, указывается во втором (младший байт - МБ) и в третьем (старший байт - СБ) байтах команды.

2. Регистровая адресация– в команде задается регистр или пара регистров, где находится соответственно 8- или 16-битовый операнд.

3. Регистровая косвенная адресация – адрес ячейки памяти, где расположен операнд, определяется содержимым парного регистра (регистровой пары), явно или неявно указанного в команде; при этом старший байт адреса находится в первом регистре пары, а младший – во втором. В качестве регистровой пары могут быть использованы регистры H-L, B-C, D-E. При этом регистровые пары обозначаются соответственно H, B и D.

4. Непосредственная адресация – операнд содержится в команде: для двухбайтных команд – во втором байте, для трехбайтных – во втором (младший байт операнда) и в третьем (старший байт операнда) байтах команды.

5. Стековая адресация – адрес ячейки памяти, содержащий операнд, находится в указателе стека.

Для управления процессом выполнения программы используется слово-состояние программы. Старший байт слово-состояния представляет содержимое аккумулятора, а младший – содержит флаги условий регистра признаков, определяемые результатом выполнения арифметических и логических операций (рисунок 8).

 

Рисунок 8

Установка флагов производится при выполнении следующих условий:

флаг знака S=1, если знаковый бит результата операции равен 1, иначе сбрасывается;

флаг нуля Z=1, если результат операции равен 0, в противном случае сбрасывается;

флаг дополнительного переноса АС=1 при наличии переноса из третьего разряда в четвертый, иначе сбрасывается;

флаг четности P=1, если результат содержит четное число единиц, иначе сбрасывается;

флаг переноса CY=1 при наличии переноса (при арифметическом сложении) или заема (при вычитании) из старшего разряда результата, иначе сбрасывается.

x– данный бит может принимать безразличное значение (0 или 1).

 

Команды пересылок

Команды пересылок производят обмен данными между регистрами общего назначения (РОН) и памятью микропроцессорной системы. Команды пересылок не влияют на флаги.

Пересылка может происходить:

- из памяти в аккумулятор (прямая адресация):

LDA <addr> – запись аккумулятора по адресу, указанному во втором и третьем байтах команды;

STA <addr> – запись содержимого аккумулятора в память по адресу, указанному во втором и третьем байтах команды;

где <addr> - непосредственное адресное значение, может быть константой или меткой в программе;

- из регистра в регистр (регистровая адресация):

MOV R1, R2 – передача содержимого регистра R2 в регистр R1.

Команда MOV R1, R2 может быть использована для создания копий некоторых переменных, которые многократно используются при вычислениях;

- из памяти в регистр (регистровая косвенная адресация):

MOV M, R – передача содержимого регистра R в память по адресу, который хранится в регистровой паре (H, L);

MOV R, M – передача содержимого ячейки памяти, адрес которой хранится в регистровой паре (H, L), в регистр R.

Эти команды находят широкое применение при обработке связанных структур данных (массивов чисел и т.д.);

- непосредственно в регистр байта данных (непосредственная адресация):

MVI R, <data> – передача байта в регистр R,

где <data> - непосредственное значение (константа);

MVI M, <data> - передача байта в ячейку памяти, адрес которой хранится в регистровой паре (H, L);

LXI M, <data> - передача содержимого ячейки памяти, адрес которой хранится в регистровой паре (H, B, D).

Команды непосредственной адресации сами содержат операнд. Преимущество таких команд в быстродействии и экономии объема памяти МП системы.

 

Пример. Переслать содержимое ЯП (0800) в регистр В, используя различные способы адресации.

 

 

Таблица 4 - Пример программы

Адрес ЯП Мнемоническое обозначение Код Комментарий
       
I способ (прямая адресация)
  LDA 3A Содержимое ЯП (0800) переслать в аккумулятор А
     
     
  MOV B, A   Содержимое А переслать в регистр В
  HLT   Останов
II способ (косвенная регистровая адресация)
  LXI H   Запись адреса (0800)в регистровую пару (H,L)
     
     
  MOV B, M   Содержимое ЯП переслать в регистр В
  HLT   Останов
III способ (непосредственная адресация)
090A MVI H   Запись числа 08H (СБ адреса) в регистр H
090B    
090C MVI L 2E Запись числа 00H (МБ адреса) в регистр L
090D    
090E MOV B, M   Содержимое ЯП переслать в регистр В
090F HLT   Останов

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

 

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

Арифметические команды управляют выполнением операций сложения и вычитания с данными, размещенными в РОН и во внешней памяти. Операции умножения и деления в системе команд микропроцессора КР580ИК80А отсутствуют. Арифметические операции выполняются над положительными и отрицательными числами.

Перед выполнением арифметических команд один из операндов располагается в аккумуляторе. В результате выполнения команд в регистре признаков устанавливаются флаги – признаки состояний (см. приложение А). Результат выполнения команд сохраняется в аккумуляторе, исходное содержимое аккумулятора при этом теряется.

В системе команд предусмотрены три команды простого сложения и три команды сложения с учетом триггера переноса. В этих командах первый операнд расположен в аккумуляторе, а второй может быть расположен либо в одном из регистров (РОН), либо в ячейке памяти, адресуемой содержимым пары регистров (H, L), либо во втором байте команды.

 

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

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

Команды умножения на 2:

RLC – сдвинуть циклически влево содержимое аккумулятора (рисунок 9).

Рисунок 9

 

RAL– сдвинуть циклически влево содержимое аккумулятора через триггер переноса CY (рисунок 10).

 

Рисунок 10

Команды деления на 2:

RRC- сдвинуть циклически вправо содержимое аккумулятора (рисунок 11).

Рисунок 11

RAR - сдвинуть циклически вправо содержимое аккумулятора через триггер переноса CY (рисунок 12).

 

Рисунок 12

 

Умножение на нечетные числа происходит с помощью команд сдвига и команд арифметического сложения. Если шестнадцатеричное число нужно умножить на число, не кратное 2N, то сначала число нужно умножить на 2N с помощью команд сдвига, а потом к результату прибавить исходное число с помощью команд сложения (ADD R, ADC R).

Пример 1. Сложить два однобайтных числа, находящихся в ЯП (0800) и (0801). Результат записать в ЯП (0802).

 

Таблица 5 – Пример программы

Адрес ЯП Мнемоническое обозначение Код Комментарий
  LDA 3A Содержимое ЯП (0800) переслать в аккумулятор А
     
     
  MOV B, A   Содержимое А переслать в регистр В
  LDA 3A Содержимое ЯП (0801) переслать в аккумулятор
     
     
  ADD B   Сложить содержимое А и регистра В
  STA   Переслать содержимое аккумулятора в ЯП (0802)
     
090A    
090B HLT   Останов

Пример 2. Из содержимого регистра В вычесть число ODH и умножить результат на 03H. Результат записать в ЯП (0800).

 

Таблица 6 – Пример программы

Адрес ЯП Мнемоническое обозначение Код Комментарий
  MOV A, B   Содержимое регистра B переслать в аккумулятор A
  SUI D6 Вычесть из содержимого А число 0DH
  0D 0D
  RLC   Cдвинуть влево циклически содержимое аккумулятора (умножение на 02H)
  ADD B   Сложить содержимое А и регистра В (умножение на 03H)
  STA   Переслать содержимое аккумулятора A в ЯП (0800)
     
     
  HLT   Останов

 

Таблица 7 – Пример программы

Адрес ЯП Мнемоническое обозначение Код Комментарий
  LDA 3A Содержимое ЯП (0801) переслать в аккумулятор А
     
     
  ADD B   Сложить содержимое А и регистра В
  STA   Переслать содержимое аккумулятора в ЯП (0802) (МБ)
     
     
  MVI D   Запись числа 00H в регистр D (создание СБ второго числа)
     
  LDA 3A Содержимое ЯП (0800) переслать в аккумулятор (СБ первого числа)
090А    
090B    
090C ADC D 8A Сложить содержимое А и регистра D с учетом триггера переноса CY
090D STA   Переслать содержимое аккумулятора в ЯП 0803 (CБ)
090E    
090F    
  HLT   Останов

 

4.4 Лабораторная работа «Арифметические операции над двухбайтными числами»

Составить рабочую программу, считая, что СБ числа находится в ЯП с более младшим адресом. Например, двухбайтное число находится в ЯП , где в ЯП (0800) находится СБ числа, а ЯП (0801) – МБ числа.

Варианты заданий.

1. . 4. .

2. . 5. .

3. .

 

Логические команды

 

Таблица 8 – Пример программы

Адрес ЯП Мнемоническое обозначение Код Комментарий
  MOV A, D Содержимое регистра D переслать в аккумулятор А
  CMA 2F Инвертирование содержимого аккумулятора А
  MOV D, A   Содержимое А переслать в регистр D
  MOV A, B   Содержимое регистра B переслать в A
  RLC   Сдвинуть циклически влево содержимое аккумулятора (умножение на 2)
  ANA D A2 Логическое умножение содержимого аккумулятора А и регистра D
  MOV B, A   Содержимое А переслать в регистр В
  LDA 3A Содержимое ЯП (0800) переслать в аккумулятор А
     
     
090A CMA 2F Инвертирование содержимого аккумулятора А
090B XRA B A8 Операция неравнозначности содержимого А и регистра B
090C STA   Переслать содержимое аккумулятора в ЯП 0801
090D    
090E    
090F HLT   Останов

Пример. Составить программу установки «1» в 3 бите и «0» в 4 бите ячейки памяти (ЯП) 0800. Результат запитать регистр С.


Таблица 9 – Пример программы

Адрес ЯП Мнемоническое обозначение Код Комментарий
  LDA Содержимое ЯП (0800) переслать в аккумулятор А
     
     
  ORI D8 Операций логического сложения с числом 08H
     
  ANI E6 Операций логического умножения с числом EFH
  EF EF
  MOV C,A A8 Содержимое А переслать в регистр C
  HLT   Останов

Команды сравнения

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

Сравнение выполняется при помощи АЛУ посредством внутреннего вычитания. Первое из сравниваемых чисел размещается в аккумуляторе, второе может находиться в одном из регистров РОН или в памяти.

Особенностью команд сравнения является то, что содержимое аккумулятора и регистра не изменяются при выполнении команды.

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

CMP R - сравнение содержимого аккумулятора и регистра;

CMP M - сравнение содержимого аккумулятора и ячейки памяти, адрес которой хранится в регистровой паре (H, L);

CPI <data> - сравнение содержимого аккумулятора с содержимым второго байта команды.

Команды переходов предназначены для изменения последовательности выполнения команд программы. Команды переходов позволяют организовать в программах циклы и ветвления.

Переход может быть условный и безусловный. Условный переход осуществляется по результатам проверок значений разрядов регистра признаков. Предусмотрено девять команд переходов: одна команда безусловного перехода и восемь команд условных переходов. Все команды переходов используют прямую адресацию и являются трехбайтными командами. Во второй и третий байты команды заносится адрес, по которому осуществляется переход; причем во второй байт – младший байт адреса перехода, а в третий – старший байт адреса перехода. Значение регистра признаков команды перехода не изменяют.

Команды условных переходов

JC <addr> – переход, если есть перенос в старший байт или заем; флаг переноса CY=1. В противном случае выполняется следующая команда;

JNC <addr> - переход, если нет переноса или заема; флаг переноса CY=0. В противном случае выполняется следующая команда;

JZ <addr> - переход, если результат в аккумуляторе равен нулю; флаг нуля Z=1. В противном случае выполняется следующая команда;

JNZ <addr> - переход, если результат в аккумуляторе не равен нулю; флаг нуля Z=0. В противном случае выполняется следующая команда;

JP <addr> - переход, если флаг знака S=0, т.е. в аккумуляторе находится положительное число. В противном случае выполняется следующая команда;

JM <addr> - переход, если флаг знака S=1, т.е. в аккумуляторе находится отрицательное число. В противном случае выполняется следующая команда;

JPE <addr> - переход, если флаг знака P=1, т.е. число в аккумуляторе содержит четное количество единиц. В противном случае выполняется следующая команда;

JPO <addr> - переход, если флаг знака P=0, т.е. число в аккумуляторе содержит нечетное количество единиц. В противном случае выполняется следующая команда.

Пример 1. Сравнить два однобайтных числа, находящихся в регистрах D и ЯП (0800). Большее из чисел записать в ЯП (0801).

 

Таблица 9 – Пример программы

 

Адрес ЯП Мнемоническое обозначение Код Комментарий
  LDA 3A Содержимое ЯП (0800) переслать в аккумулятор А
     
     
  CMP D BA Сравнение A и регистра D
  JNC D2 Условный переход по нулевому значению триггера переноса по адресу (0909)
     
     
  MOV A, D Содержимое регистра D переслать в а А
  STA   Переслать содержимое аккумулятора в ЯП (0801)
     
090А    
090B HLT   Останов

 

Пример 2. Если однобайтное число в регистре В четное, то его проинвертировать и записать в ЯП (0800), если нечетное, записать его в ЯП (0801).

 

Таблица 10 – Пример программы

Адрес ЯП Мнемоническое обозначение Код Комментарий
  MOV A, B   Содержимое регистра B переслать в А
  CPI FE Сравнение содержимого аккумулятора с нулем
     
  JPO E2 Условный переход по нечетному коду результата по адресу (090D)
  0D 0D
     
  CMA 2F Инвертирование содержимого А
  STA   Переслать содержимое аккумулятора в ЯП (0800)
     
     
090A JMP С3 Безусловный переход по адресу (0910)
090B    
090C    
090D STA   Переслать содержимое аккумулятора в ЯП (0801)
090E    
090F    
  HLT   Останов

Таблица 11 – Пример программы

Адрес ЯП Мнемоническое обозначение Код Комментарий
       
  LDA 3A Содержимое ЯП (0800) переслать в аккумулятор А
     
     
  MVI D   Запись числа 00H в регистр D (организация счетчика)
     
  MVI B   Запись числа 03H в регистр B
     
  SUB B   Вычитание из содержимого А содержимое регистра B
  JC DA Условный переход по единичному значению триггера переноса по адресу (0910)
  0F 0F
090A    
090B INR D   Увеличение содержимого регистра D (счетчика) на 1

 

 

Продолжение таблицы 11.

       
090C JMP C3 Безусловный переход по адресу (0907)
090D    
090E    
090F MOV A, D 7A Содержимое регистра D переслать в аккумулятор А
  STA   Переслать содержимое аккумулятора в ЯП (0801)
     
     
  HLT   Останов

 

Работа с массивами чисел

 

8.1 Практическое занятие «Работа с массивами»

Таблица 12 – Пример программы

Адрес ЯП Мнемоническое обозначение Код Комментарий
  LDA 3A Содержимое ЯП (0800) переслать в аккумулятор А
     
     
  LHI H   Запись адреса (0801) в регистровую пару (H,L)
     
     
  MVI C 0E Запись числа 20H в регистр C
     
  CMP M BE Сравнение содержимого А и регистровой пары H
  JNC D2 Условный переход по нулевому значению триггера переноса по адресу (090D)
090A 0D 0D
090B    
090C MOV A, M 7E Содержимое регистр. пары (H, L) переслать в аккумулятор А
090D INX H   Увеличение содержимого регистровой пары H на 1
090E DCR C 0D Уменьшение содержимого регистра C на 1
090F JNZ C2 Условный переход по нулевому значению результата по адресу (0908)
     
     
  STA   Переслать содержимое аккумулятора в ЯП (0821)
     
     
  HLT   Останов

 

Программа нахождения наименьшего числа из массива отличается оператором перехода JC вместо JNC.

 

Таблица 13 – Пример программы



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 340; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.5.239 (0.196 с.)