Informatics Point

Информатика и проектирование

Микропроцессорная реализация СВУ

Микропроцессорная реализация СВУ заключается в составлении программы выполнения заданной макрооперации на определённом языке программирования в системе команд имеющейся ЭВМ. В данном случае осуществлена реализация СВУ на языке Ассемблер в системе команд процессора 8086.

Программа составляется на основе разработанной микропрограммы и алгоритма работы СВУ.

Текст программы представлен в приложении.

Описание программы

Данная программа выполняет вычисление макрооперации

Z=((6A+2B)/8)vC

Числа A, B, D вводятся с клавиатуры и хранятся в двоичном коде. Далее между числами производятся арифметические и логические операции. Результат работы программы выводится в двоичном коде. При возникновении переполнения выдаётся соответствующее сообщение.

данные алгоритм граф макрооперация

Приложение

Листинг программы

title SVU segment 'code' CS:cseg, DS:cseg, SS:cseg, ES:cseg 100h

: jmp SVU db 'Введите a в двоичном коде a = ','$'

inpb db 'Введите b в двоичном коде b = ','$' db 'Введите c в двоичном коде c = ','$' db 10,13,'$'_1 db 'Вычисление z=((6a+2b)/8)\/c',10,13,'$'

ms_2 db '(6a+2d)/8=','$'_3 db '((6a+2d)/8)\/b = ','$'

ms_over_a db 'Ошибка: переполнение а',10,13,'$'_over_b db 'Ошибка: переполнение b',10,13,'$'_over_summ db 'Ошибка: переполнение суммы (6a+2b)/8',10,13,'$'

res db ? db ? db ? db ?proc ax,0600h ;устанавливаем атрибуты экранаbh,74h ;серый фон красные буквыcx,00 ;с левого верхнего углаdx,184Fh ;по правый нижний угол экрана10hah,02h ;устанавливаем курсорbh,00h ;в точку с координатами:dh,05 ;по вертикали - 5,dl,15 ;по горизонтали - 1510h

;вывод начального сообщения

ah,09h ;выводим строку ms_1dx,ms_1 ;на экран21h

linebr ;переход строки

;ввод а и вычисление 6a

bg:ia

:linebr ;переход строки

mov ah,09h ;выводим сообщение о переполнении а

lea dx,ms_over_a ;на экран21h

linebr ;переход строки

ia:ah,09h ;выводим строку inpadx,inpa ;на экран21h

input ;вводим двоичное число (результат в bl)a,bl ;сохраняем его в aax,0 ;обнуляем регистр ax

al,a ;вычисляем 6а

sal al,1 ;2aofaal,a ;2a+a

jo ofa ;при переполнении переходим на вывод сообщения об ошибкеal,1 ;(2a+a)*2ofa ;при переполнении переходим на вывод сообщения об ошибкеa,al ;сохраняем результат в а

;ввод d и вычисление 2d

ib:linebr ;переход строки

ah,09h ;выводим сообщение о переполнении

lea dx,ms_over_b ;на экран21h

linebr ;переход строки

ib:ah,09h ;выводим строку inpbdx,inpb ;на экран21h

input ;вводим двоичное число (результат в bl)b,bl ;сохраняем его в bax,0 ;обнуляем регистр ax

al,b ;вычисляем 2bal,b ;2bofb ;при переполнении переходим на вывод сообщения об ошибкеb,al ;сохраняем результат в b

;вычисление и вывод на экран (6a+2b)/8

cl,a ;помещаем 6a в регистр clbl,b ;помещаем 2b в регистр bl

add bl,cl ;6a+2b в bl

jo ofs ;при переполнении переходим на вывод сообщения об ошибкеbl,4 ;выполнение (6a+2b)/8

jmp nxt

:linebr ;переход строки

mov ah,09h ;выводим сообщение о переполнении суммы (6a+2b)/8 на экран

lea dx,ms_over_summ ;на экран21h

linebr ;переход строки

jmp bg ;переходим на повторный ввод a и b:linebr ;переход строки

ah,09h ;выводим строку ms_2dx,ms_2 ;на экран21h

output ;выводим на экран значение суммы (6a+2b)/8summ,bl ;сохраняем сумму (6a+2b)/8 в summlinebr ;переход строки

;ввод c

linebr ;переход строки

ah,09h ;выводим inpcdx,inpc ;на экран21h

input ;вводим двоичное число (результат в dl)

;логическое умножение c и (6a+2b)/8

;и вывод результата на экран

bh,summ ;перемещаем сумму в регистр bhbl,bh ;логически складываем с и (6a+2b)/8res,bl ;записываем результат в рес res

linebr ;переход строкиah,09h ;выводим строку ms_3dx,ms_3 ;на экран21h

output ;выводим на экран значение результата

linebr ;переход строки

;выход из программы

ah,07h ;ожидаем нажатия любой клавиши21h

ah,4ch ;выходим в DOS21hendp

Перейти на страницу: 1 2

Лучшие статьи по информатике

Часы–будильник с матричным светодиодным индикатором
Данная тема курсового проекта «Часы - будильник с матричным светодиодным индикатором. Схема индикации» была предложена цикловой комиссией специальности 2301 ...

Сенсорный выключатель
Целью данного курсового проекта является разработка, выбор и обоснование конструкции, технологического процесса сборки Сенсорного выключателя. Для обоснован ...

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

Меню сайта