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



ЗНАЕТЕ ЛИ ВЫ?

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

Поиск

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

 

Пример 1. Преобразовать число 57,318 из восьмеричной системы в шестнадцатеричную.

 

Рисунок 5

 

Решение. Сначала представляем число 57,318 в двоичной системе счисления . Далее преобразуем в шестнадцатеричное число, разбивая его на тетрады слева и справа от запятой и дополняя недостающие биты нулями слева от СБ и справа от МБ:

Ответ: .

 

 

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

Практическое занятие «Арифметические и логические операции. Понятие прямого, обратного и дополнительного кодов»

Сложение, вычитание или умножение двоичных чисел выполняются так же, как и в арифметике десятичных чисел.

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

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

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

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

Таблица 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.

 

 

Система команд МП кр580ик80а

Практическое занятие по изучению способов адресации, форматов команд и команд пересылок

Код операции, данные и адрес программы представляются в шестнадцатеричном коде, поэтому первый байт команды воспринимается как код операции.

Команды могут быть трех форматов:

однобайтные – в одном байте содержится всегда код команды;

двухбайтные – в первом байте содержится код команды, во втором – непосредственный операнд;

трехбайтные – в первом байте содержится код операции, во втором и третьем содержатся адрес или данные.

 

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

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

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   Останов


Поделиться:


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

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