Асемблер

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Волзький університет імені В. Н. Татіщева
Факультет "Інформатика і телекомунікації"
Кафедра "Інформатика та системи управління"
Курсова робота
з дисципліни: "Організація ЕОМ"
Тема: "Асемблер"
Виконав: студент гр. ІС-311
Керівник:
Тольятті

Зміст курсової роботи:
1. Опис і схема алгоритму.
2. Область застосування.
3. Лістинг програми з коментарями.
4. Список літератури.

1. Опис і схема алгоритму
Початок програми починається з розподілу пам'яті під код програми під дані та під стік. Прописавши рядок Model Small виділяється по 64кб під дані та під код. У завданні нам необхідно працювати з 32-х бітними змінними для чого прописуємо рядок .386.
Визначившись з основними моментами починаємо введення змінних. Змінної є x.
Введення змінної x і обробка здійснюється в кілька етапів. Спочатку вводиться код числа стандартним перериванням int 21 функцією 0 Ah, замет береться кожен символ і перетвориться в десяткове значення і здійснюється визначення десятків чи одиниць відповідно. У результаті отримуємо введене нами десяткове число.
Наступним етапом є обчислення полінома за формулою у = 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
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
11.8кб. | скачати


Схожі роботи:
Асемблер 2
Асемблер Завдання 4 - вар2
Асемблер Завдання 3 - вар2
Асемблер Завдання 2 - вар 2
Асемблер Контрольна - вар1
Асемблер Контрольна - варіант 1
Програмування на мові Асемблер
Контрольна (варіант 12), 4 завдання на Асемблер
Асемблер для платформи Java
© Усі права захищені
написати до нас