на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Ассемблер

Ассемблер

Волжский университет имени В.Н.Татищева

Факультет “Информатика и телекоммуникации”

Кафедра “Информатика и системы управления”

КУРСОВАЯ РАБОТА

по дисциплине: “Организация ЭВМ ”

Тема: “Ассемблер”

Выполнил: студент гр. ИС-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.Список литературы:

Ефремов В.Д., Мелехин В.Ф., Дурандин К.П. и др. Вычислительные машины и системы. Учебник для вузов - 2М.: Высшая школа, 1994.

Ларионов А.М., Майоров С.А., Новиков Г.И. Вычислительные комплексы, системы, сети.// Учебник для вузов. - Л.: Энергоатомиздат, 1987.

Григорьев В.Л. Микропроцессор i486. Архитектура и программирование. -М.: БИНОМ, 1993



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.