Написание программы преобразования однобайтового числа в соответствующий ему код ASCII с подпрограммой

Страницы работы

Содержание работы

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

Сибирский Федеральный Университет Политехнический институт

Кафедра «Радиотехника»

Лабораторная работа №4

                                                                                                                         Выполнил:

                                                                                                                                       Студент гр. Р54-2

                   Рындин А.С.

                                                                                                                          Проверил:

                                                                                                                                                Тронин О. А.

Красноярск 2007

Цель работы:  Изучение языка программирования ассемблер для процессора Интел 8086.

Задание: Написать программу преобразования однобайтового числа в соответствующий ему код ASCII  с  подпрограммой.

текст программы:

model small                           ;директива модели памяти model с параметром small

.data                                        ;упрощенная директива сегмента данных

            nomer db 0A8h          ;исходное однобайтовое число nomer

.stack 256h                             ;упрощенная директива для 256-байтного сегмента стека

.code                                       ;упрощенная директива сегмента кода

podprwork proc                      ;начало процедуры podprwork

            add dl,30h                   ;сложение вида dl:=dl+30h

            ret                               ;возврат в основную процедуру

podprwork endp                     ;конец процедуры podprwork

main proc                               ;начало процедуры main

            mov ax,@data                        ;инициализация сегментного...     

            mov ds,ax                   ;...регистра ds           

            xor ax,ax                     ;обнуление регистра ax

            xor dx,dx                    ;обнуление регистра dx

            mov al,nomer             ;запись исходного числа nomer в младший байт регистра ax

            mov dl,nomer             ;запись исходного числа nomer в младший байт регистра dx

            and dl,00001111b       ;конъюнкция младшего байта регистра dx с маской 00001111b

            and al,11110000b       ;конъюнкция младшего байта регистра ax с маской 11110000b

            mov bl,10h                 ;запись в младший байт регистра bl числа 10h

            div bl                          ;деление вида ax:=ax/bl

            mov dh,al                   ;в старший байт регистра dx запись результата деления

            cmp dl,9                     ;сравнение вида dl<=9 и если верно,то переход на...

            jle podprog                 ;...метку podprog

            add dl,37h                   ;в противном случае сложение вида dl:=dl+37h

sled:                                        ;пользовательская метка sled

            cmp dh,9                     ;сравнение вида dh<=9 и если верно,то переход на... 

            jle simvol2                 ;...метку simvol2

            add dh,37h                  ;в противном случае сложение вида dh:=dh+37h и...

            jmp endwork              ;...переход на метку конца программы

podprog:                                 ;пользовательская метка podprog

            call podprwork           ;вызов процедуры podprwork

            jmp sled                      ;безусловный переход на метку sled

simvol2:                                 ;пользовательская метка simvol2

            add dh,30h                  ;сложение вида dh:=dh+30h

endwork:                                ;пользовательская метка endwork

            mov ax,4c00h            ;формирование функции стандартного выхода                                              

            int 21h                        ;формирование прерывания типа 21h и стандартный выход 

main endp                              ;конец процедуры main

end main                                ;конец программы с точкой входа main

Блок схемa:

 


                                                                                                 Нет

                                                                                              

                                                                                  Да

 


dl:=dl+30h

 
                                                        

dl:=dl+37h

 
                                                        

 


Ромб: dh<=9                                                       Нет

dh:=dh+37h

 
                                                                                   

                                                                                   

                                                                                  Да

 

Похожие материалы

Информация о работе