Главная Учебники - Разные Лекции (разные) - часть 35
|
Волжский университет имени В.Н.Татищева
Факультет “Информатика и телекоммуникации”
Кафедра “Информатика и системы управления”
по дисциплине: “Организация ЭВМ ”
Тема: “Ассемблер”
Выполнил: студент гр. ИС-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.
| |||||