Курсовая

Курсовая на тему Ассемблер

Работа добавлена на сайт bukvasha.net: 2014-12-12

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 22.11.2024


Волжский университет имени В.Н.Татищева
Факультет “Информатика и телекоммуникации”
Кафедра “Информатика и системы управления”
КУРСОВАЯ РАБОТА
по дисциплине: “Организация ЭВМ ”
Тема: “Ассемблер”
Выполнил: студент гр. ИС-311
Руководитель:
Тольятти

Содержание курсовой работы:
1.                 Описание и схема алгоритма.
2.                 Область применения.
3.                 Листинг программы с комментариями.
4.                 Список литературы.

1. Описание и схема алгоритма
Начало программы начинается с распределения памяти под код программы под данные и под стек. Прописав строку Model Small выделяется по 64кБ под данные и под код. В задании нам необходимо работать с 32-х битными переменными для чего прописываем строку .386.
Определившись с основными моментами начинаем ввод переменных. Переменной является x.
Ввод переменной x и обработка осуществляется в несколько этапов. Вначале вводится код числа стандартным прерыванием int 21 функцией 0Ah, замет берётся каждый символ и преобразуется в десятичное значение и осуществляется определение десятков или единиц соответственно. В результате получаем введённое нами десятичное число.
Следующим этапом является вычисление полинома по формуле у=2* x -6y- 4. Во-первых возводим в квадрат “x”, затем умножаем на 2. Потом суммируем полученные значения и помещаем в переменную у, которая и является ответом данной задачи.
Завершающей стадией программы являются вывод переменной у и завершение программы. Вывод переменной осуществляется функцией outword, которая содержится в подключаемом модуле io.asm. Подключение данного модуля осуществляется командной include прописываемая до кода программы. Завершение программы осуществляется стандартным способом по стандартному DOS-кому прерыванию int 21 функцией 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 -6y- 4. Программа имеет ограничения в применении, потому что в ней применяется расчет одного значения и по одному алгоритму.

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:
;*********-начало программы-********************************
 mov dx,@data ;начальный адрес в сегмент данных
 mov ds,dx
;*********-Вывод строки-*************************************
 mov dx,offset vvx
 mov ah,9h ;Вывод строки 'Введите x'
 int 21h
;********-Ввод числа-****************************************
 
 mov ah,1h
 int 21h
 sub al,30h
 push ax
;*********-Вывод строки-*************************************
 mov dx,offset vvy
 mov ah,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  
 sbb dx,cx
 ;Результат DX,AX
 xor cx,cx
 mov bx,word ptr (four+2) ;dx = Результат
 sub ax,bx  
 sbb dx,cx
 ;Результат DX,AX
 mov z,dx
 mov z+2,ax
;**********-Завершение работы программы-**********************
 mov dx,offset otvet ;Вывод сообщения "Ответ"
 mov ah,9h
 int 21h
 outword z ;Процедура вывода
 outword z+2
 mov ax,4c00h
 int 21h
 end main

4.Список литературы:
1.                Ефремов В.Д., Мелехин В.Ф., Дурандин К.П. и др. Вычислительные машины и системы. Учебник для вузов – 2М.: Высшая школа, 1994.
2.                Ларионов А.М., Майоров С.А., Новиков Г.И. Вычислительные комплексы, системы, сети.// Учебник для вузов. – Л.: Энергоатомиздат, 1987.
3.                Григорьев В.Л. Микропроцессор i486. Архитектура и программирование. –М.: БИНОМ, 1993

1. Реферат Сущность и содержание организации труда
2. Реферат Занятие по праву и основные требования к нему
3. Реферат на тему Road Not Taken By Frost Essay Research
4. Реферат на тему Soros Essay Research Paper Today I would
5. Реферат Негативний вплив нафти та нафтопродуктів
6. Реферат на тему Quality Of Life Essay Research Paper Introduction
7. Реферат на тему Great Gatsby Essay Research Paper Great Gatsby
8. Реферат на тему Things Fall Apart By Chinua Achebe Essay
9. Реферат Перенос столицы России из Москвы в Санкт-Петербург
10. Статья на тему Диссидентство в СССР 1950-1980 гг