Курсовая

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

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

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

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

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

от 25%

Подписываем

договор

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

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


Волжский университет имени В.Н.Татищева
Факультет “Информатика и телекоммуникации”
Кафедра “Информатика и системы управления”
КУРСОВАЯ РАБОТА
по дисциплине: “Организация ЭВМ ”
Тема: “Ассемблер”
Выполнил: студент гр. ИС-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. Реферат на тему Homosexual Marriage And The Catholic Church Essay
2. Контрольная работа Стратегия финансового развития и выбор инвестиционной политики
3. Реферат Особенности бух.учета в издательской деятельности
4. Реферат на тему Промышленный переворот и развитие промышленного капитализма
5. Реферат Использование судебными ораторами прямой и косвенной речи
6. Реферат Людовик XV
7. Реферат Рынок государственных ценных бумаг 5
8. Отчет по практике на тему Господарська діяльність СГ ТОВ Горуцьке
9. Реферат на тему Содержание форм бухгалтерской отчетности
10. Реферат на тему TheSortOfEconomic Constitution Essay Research Paper The SortOfEconomic