Курсовая работа: Ассемблер
Название: Ассемблер Раздел: Рефераты по информатике Тип: курсовая работа |
Волжский университет имени В.Н.Татищева Факультет “Информатика и телекоммуникации” Кафедра “Информатика и системы управления” КУРСОВАЯ РАБОТА по дисциплине: “Организация ЭВМ ” Тема: “Ассемблер” Выполнил: студент гр. ИС-311 Руководитель: Тольятти Содержание курсовой работы: 1. Описание и схема алгоритма. 2. Область применения. 3. Листинг программы с комментариями. 4. Список литературы. 1. Описание и схема алгоритма Начало программы начинается с распределения памяти под код программы под данные и под стек. Прописав строку Model Small выделяется по 64кБ под данные и под код. В задании нам необходимо работать с 32-х битными переменными для чего прописываем строку .386. Определившись с основными моментами начинаем ввод переменных. Переменной является x . Ввод переменной x и обработка осуществляется в несколько этапов. Вначале вводится код числа стандартным прерыванием int 21 функцией 0 Ah , замет берётся каждый символ и преобразуется в десятичное значение и осуществляется определение десятков или единиц соответственно. В результате получаем введённое нами десятичное число. Следующим этапом является вычисление полинома по формуле у=2* x Завершающей стадией программы являются вывод переменной у и завершение программы. Вывод переменной осуществляется функцией outword , которая содержится в подключаемом модуле io . asm . Подключение данного модуля осуществляется командной include прописываемая до кода программы. Завершение программы осуществляется стандартным способом по стандартному DOS -кому прерыванию int 21 функцией 4С h .
Рис. 1. Схема алгоритма. Модуль ввода-вывода Io . asm . Вначале рассмотрим схему хранения операций ввода-вывода (ВВ) и подключения их к программам: Часть операций ввода-вывода реализована в виде процедур, описания которых собраны в отдельном модуле, хранящемся в файле с именем ioproc . asm (текст модуля приведён ниже). Предполагается, что этот модуль заранее оттранслирован и в виде объектного модуля записан в файл с именем ioproc . obj . Изменения стека во время прогона программы Стек в данной программе при выводе переменной у нам необходимо было освободить 6 байт стека для вывода числа. SP –указатель стека. SS – стек. Приведём пошаговое изменение стека: SP: 00F0 SS: 00F2 0000 SS: 00F0 3530 SP: 00F2 SS: 00F4 13BA SS: 00F2 0000 SP: 0F4 SS: 00F6 0000 SS: 00F4 13BA SP: 00F6 SS: 00F8 00C9 SS: 00F6 0000 SP: 00F8 SS: 00FA 1645 SS: 00F8 00C9 SS: 00FE 0924 SP: 0100 SS: 0102 02B4 SS: 0100 5052 2. Область применения. Программа применяется для расчета полинома у=2* x 3. Листинг программы : model small include io.asm .data vvx db 10,13,'Введите x: ','$' vvy db 10,13,'Введите y: ','$' otvet db 10,13,'Ответ : ','$' x db 0 two dd 2 four dd 4 six dd 6 z dw 0,0 .stack 256 .386 .code main: ;*********-начало программы-******************************** movdx,@data;начальный адрес в сегмент данных movds,dx ;*********-Вывод строки-************************************* movdx,offsetvvx movah,9h;Вывод строки 'Введите x' int 21h ;********-Ввод числа-**************************************** mov ah,1h int 21h sub al,30h push ax ;*********-Вывод строки-************************************* mov dx,offset vvy movah,9h;Вывод строки 'Введите y' int 21h ;********-Ввод числа-**************************************** mov ah,1h int 21h sub al,30h push ax ;**********-Расчёт полинома-*********************************** pop ax xor ah,ah mov bx,word ptr (six+2) mul bx ;dx,ax=y*6 mov cx,dx mov bx,ax pop ax xor ah,ah mov x,al mul x ;ax=al*al ;xor cx,cx mov dx,word ptr (two+2) mul dx ;dx,ax:=2*al sub ax,bx sbbdx,cx ;Результат DX,AX xorcx,cx mov bx,word ptr (four+2) ;dx = Результат sub ax,bx sbb dx,cx ;Результат DX,AX movz,dx movz+2,ax ;**********-Завершение работы программы-********************** movdx,offsetotvet;Вывод сообщения "Ответ" movah,9h int 21h outwordz;Процедура вывода outword z+2 mov ax,4c00h int 21h end main 4.Список литературы: 1. Ефремов В.Д., Мелехин В.Ф., Дурандин К.П. и др. Вычислительные машины и системы. Учебник для вузов – 2М.: Высшая школа, 1994. 2. Ларионов А.М., Майоров С.А., Новиков Г.И. Вычислительные комплексы, системы, сети.// Учебник для вузов. – Л.: Энергоатомиздат, 1987. 3. Григорьев В.Л. Микропроцессор i486. Архитектура и программирование. –М.: БИНОМ, 1993 |