русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Преобразование двоичных чисел в десятичные и наоборот.


Дата добавления: 2015-08-14; просмотров: 774; Нарушение авторских прав


Преобраз. 2 – х – разряд. десятичн. число в эквивалентное двоичное

 

 
 

 


 

 

 
 


 

; Вх. пар – р : рег. А – двоич. – десят. число

; Вых. пар – р : рег. А – эквивал. двоичн. число

 

PR 102 : ; распаковка дв. – дес. число

MOV B, A ; копия дв. – дес. число

ANI OFH ; выделить Мл. ц.

MOV C, A ;

MOV A, B ;

ANI OFOH ; выделить Ст. ц.

RRC ; Ст. ц. * 10

MOV B, A ; в рег. в – Ст. ц. * 8

RRC

RRC ; Ст. ц. * 2

ADD B ; Ст. ц. * 10

ADD C ; в рег. А – двоичн. число

RET

 

 


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

 
 


 

; Вх. пар – р : рег. С – двоичное число

; Вых. пар – р : рег. HL – 3 – разр. десятичн. число

 

PR810 : LXI H, O

MVI B, 8 ; счётчик циклов

; сдвиг влево

CYCLE: MOV A, C

RLC

MOV C, A

; дв. – дес. удвоение суммы

MOV A, L

ADC L

DAA

MOV L, A

MOV A, H

ADC H

DAA

MOV H, A

; проверка конца цикла

DCR CYCLE

RET

Операции с целыми двоичными числами со знаком !

 

 

S = 0 – положит. число

S = 1 – отриц. число

 

1) прямой код – ст. разряд – знаковый, остальные разряды – этомодули числа.

 

0 1 1 1 1 1 1 1 = + 127

1 1 1 1 1 1 1 1 = - 127

 

возможно появление 2 – х видов нуля: положит. и отриц.

 

2) обратный код

 

 
 

 

 


 

 

если S = 0 обр. код совпадает с прям.

S = 1 обр. код = инверсии

 

0 1 0 1 0 1 0 1 – прямой код

0 1 0 1 0 1 0 1 – обр. код

 

1 0 1 0 1 0 1 0 – прямой код

1 1 0 1 0 1 0 1 – обр. код

 

возможность появления 2 – х видов нулей.

 

3) дополнительный код

 
 



 


 

 

S = 0 – доп. код совпад. с прям. код

S = 1 – [ AДОП ] = [ AОБР.] + 1 = [ ]ПР + 1

 

Достоинство – слож. и вычит. выполняется одинаково ; имеется только один нуль.

 

Недостаток – громоздкость получения доп. кода ( особенно для многобайтных чисел )

[ A ]ДОП = [ A ]ОБР + 1 = [ ]ПР + 1

 

[ A ]ПР = [ ] = [ AДОП ] + 1

 

- 1 = 1 0 0 0 0 0 0 1 – пр. код

инверсия

0 1 1 1 1 1 1 0

+ 1

0 1 1 1 1 1 1 1 = ошибка

1 1 1 1 1 1 1 1 = FFH

 

П / п преобраз. однобайтных чисел из прям. кода в дополнит. и наоборот

 

; Вх. рар – р : рег. А – исх. число

; Вых. пар – р : рег. А – вых. число

 

DOP : MOV C, A

RLC

JC PREOBR ; если S = 1

MOV A, C

RET

PREOBR : MOV A, C

CMA ; инверсия числа

INR A ; ( A ) ( A ) + 1

RET

 
 

 


; П / п преобраз. из прям. кода в допол.

; Вх. пар – ры : IPORT 1 – ввод Мл. б., IPORT 2 – ввод Ст. б.

; Рег. HL – адрес Мл. б. доп. кода в ОЗУ

 

 

 

DOP 2 : IN IPORT 2: Ввод Ст. б.

RLC

JC PREOBR ; если S = 1

IN IPORT 1 ; ввод Мл. б.

MOV M, A

INX H

IN IPORT 2 ; ввод Ст. б.

MOV M, A

RET

PREOBR: IN IPORT 1 : ввод Мл. б.

CMA

ADI 1

MOV M, A ; запомнить в ОЗУ

IN IPORT 2 ; ввод Ст. б.

CMA

ACI O

ORI 80 ; установить S = 1

MOV M, A

RET

 

1) С использованием специального порта состояний – кода ВУ выставляет данные, оно записывает в определённые ячейки порта “ 1 ”

 

 

 


Если D7 = 1 – данные имеются

D7 = 0 – данных нет

 

 

 


 

MAIN : LXI H, BASE

MVI C, 100 ; загрузить счётчик

WAIT : IN PORTSTAS ; ввод состояния

ANI 1000 0000 B ; выделить D7

JZ WAIT ; цикл ожидания

CALL DOP 2 ; ввод данных и преобразование

DCR C ;

JNZ WAIT ; цикл, если ( С ) ¹ 0

HLT ; остановить МП

 

2) Использование запросов прерывания.

 

 
 


 

 

RST 7 – команда прерыв. вектор прерывания : 0038 H

 

ORG 0000H

JMP MAIN ; переход к главн. программе

ORG 0038H ; вектор прерывания

CALL DOP 2

DCR E

JNZ NEXT ; если ( С ) ¹ 0

JMP EXIT

NEXT : EI

RET

ORG 0100H

MAIN : LXI H, BASE

MVI E, 100

EI ; разрешить прерывание

WAIT : JMP WAIT ; зацикливание

EXIT : HLT

 



<== предыдущая лекция | следующая лекция ==>
Сложение десятичных чисел | КР580ВВ55А (i8285A)


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.122 сек.