Розробка програми на мові Асемблера

Створення двух файлів В1 і В2 з шести двоцифрових цифр з введенням в довільному порядку цифр з клавіатури із записуванням парних цифр в файл В3, а непарних - у файл В4. Процес розробки програми за допомогою мови "Асемблер". Блок-схема алгоритму задачі.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 26.11.2011
Размер файла 37,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Міністерство освіти і науки України

КОЛЕДЖ ЕЛЕКТРОННИХ ПРИЛАДІВ

Івано-Франківського національного технічного університету

нафти і газу

Циклова комісія комп'ютерних дисциплін

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

Розробка програми на мові Асемблера

ПОЯСНЮВАЛЬНА ЗАПИСКА

ІВАНО-ФРАНКІВСЬК

2009

Зміст

Вступ

1. Постановка задачі

2. Метод розв'язування

3. Блок-схема алгоритму та його опис

4. Таблиця ідентифікаторів

5. Програма та її опис

6. Контрольний приклад

Висновок

Список використаної літератури

Вступ

Колись асемблер був мовою, без знання якої не можна було примусити комп'ютер зробити що-небудь корисне. Поступово ситуація мінялася. З'являлися більш зручні засоби спілкування з комп'тером. Але, на відміну від інших мов, асемблер не вмер.

Мова асемблера - це символічне представлення машинної мови.

Всі процеси в машині на найнижчому, апаратному рівні приводяться в дію тільки командами (інструкціями) машинної мови. Звідси зрозуміло, що, не дивлячись на загальну назву, мова асемблера для кожного типу комп'ютера своя. Це торкається і зовнішнього вигляду програм, написаних на асемблері, і ідей, віддзеркаленням яких ця мова є.

По-справжньому розв'язати проблеми, пов'язані з апаратурою (або навіть, більш того, залежні від апаратури як, наприклад, підвищення швидкодії програм), неможливо без знання асемблера. Яким би розумним не був програміст, якщо б хорошою не була мова, на якій він пише свою програму, без знання асемблера йому не обійтись. І не випадково практично всі компілятори мов високого рівня містять засоби зв'язку своїх модулів з модулями на асемблері або підтримують вихід на асемблерний рівень програмування.

Звичайно, час комп'ютерних універсалів вже пройшов. Як мовиться не можна обійняти неосяжне. Але є щось загальне, свого роду фундамент, на якому будується хоча б якась серйозна комп'ютерна освіта. Це знання про принципи роботи комп'ютера, його архітектуру і мову асемблера як віддзеркалення і втіленні цих знань.

1. Постановка задачі

Створити два файли В1 і В2 з шести двоцифрових цифр. Вводити з клавіатури в довільному порядку цифри. При чому парні цифри записувати в файл В3. Непарні цифри записувати у файл В4.

2. Метод розв'язування

Для вирішення поставленого завдання використовувалася мова “Асемблер” - програмна мова низького рівня.

Для створення файлів була використана функція 3Ch переривання DOS 21h. Виведення коментарів й світлофорів вдалося здійснити з допомогою функції 13h переривання BIOS 10h. Теж у програмі використовувалися оператори умовних та безумовних переходів. Не обминемо увагою й те, що програма містить арифметичну команду асемблера ADD. Її використання дозволило виведення на екран світлофорів у вигляді квадратів, їх затирання і зупинку при введенні символів.

Для переміщення покажчика зчитування запису із файлу та власне самого зчитування були використані відповідно функції 42h і 3Fh переривання DOS 21h. Щоб закрити файли була застосована функція 3Eh переривання DOS 21h.

Нижче наведені вхідні та вихідні дані функцій, що використовувались у програмі.

ПЕРЕРИВАННЯ DOS 21H

1. 3Ch - функція створення файлу

Вхідні дані:

AH=3Ch;

CL= {атрибути файлу};

· Байт 7 - файл можна відкривати різними процесами

· Байт 6 - не використовується

· Байт 5 - файл архівний

· Байт 4 - директорія

· Байт 3 - мітка тому

· Байт 2 - файл системний

· Байт 1 - файл схований

· Байт 0 - файл тільки для читання

DS: DX - адреса ASCII-рядка з іменем файлу, що закінчується нулем.

Вихідні дані:

CF=0 - помилки не було (в AX ідентифікатор файлу);

CF=1 - відбулась помилка (в AX код помилки).

2. 42h - функція переміщення покажчика зчитування запису

Вхідні дані:

AH=42h;

BX= {ідентифікатор файлу}

CX: DX - відстань, на яку потрібно перемістити покажчик (зі знаком).

Вихідні дані:

AL= {переміщення}.

3. 3Fh - функція читання із файлу чи пристрою

Вхідні дані:

AH=3Fh;

BX= {ідентифікатор файлу};

CX= {число байтів};

DS: DX - адреса буфера для прийому даних.

Вихідні дані:

AX= {число зчитаних байтів}.

4. 40h - функція запису у файл чи пристрій

Вхідні дані:

AH=40h;

BX= {ідентифікатор файлу};

CX= {число байтів};

DS: DX - адреса буфера для прийому даних.

5. 3Eh - функція закриття файлу

Вхідні дані:

AH=3Eh;

BX= {ідентифікатор файлу}.

6. 01h - функція зчитування символу із клавіатури

Вхідні дані:

AH=01h.

Вхідні дані:

AL - ASCII-код символу.

ПЕРЕРИВАННЯ BIOS 10H

1. 13h - функція виводу рядка символів із заданими атрибутами

AH=13h;

Al= {режим виводу};

CX= {довжина рядка символів};

BL= {атрибути};

DH= {рядок, з якого починається вивід};

DL= {стовпець, з якого починається вивід};

2. 02h - функція керування положенням курсору

AH=02h;

BH= {};

DH= {рядок, на який переміститься курсор};

DL= {стовпець, на який переміститься курсор}.

3. Блок-схема алгоритму

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

файл цифра асемблер алгоритм

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

4. Таблиця ідентифікаторів

Позначення

Назва, пояснення

kyrsor

Задання положення курсора

P

Змінна, у яку заноситься значення ASCII-коду символу, що вводиться

M, N, Z, T, Q

Буфери, які застосовані для прийняття даних із файлів

T

Кількість введених символів

L1 -- L4, q1 - q4

Коментарі

A, B, C, D

Адреси файлів, що створюються

ID1 -- ID4

Ідентифікатори файлів B1, B2, B3, B4

5. Програма та її опис

masm

.model small

.data

kyrsor db 0

p db 0

q1 db ' Введіть файл B1',0

q2 db ' Введіть файл B2',0

q3 db ' Файл B3 утворюється з парних чисел файлів B1 i B2',0

q4 db ' Файл B4 утворюється з не парних чисел файлів B1 i B2',0

l1 db 'ВВедіть два 6-тu двоцифрові числа i будуть стварені файли B1 і B2 ',0

l2 db 'Числа вводити з клавіатури',0

l3 db 'Виконав студент групи КС-32',0

l4 db ' Sayalyuk Ivan ',0

A db 'Fail1.txt',0

B db 'Fail2.txt',0

C db 'Fail3.txt',0

D db 'Fail4.txt',0

id1 dw 0

id2 dw 0

id3 dw 0

id4 dw 0

m db 20 dup (20h)

z db 3 dup (20h)

n db 3 dup (20h)

t db 40 dup (20h)

q db 40 dup (20h)

.stack 256

.code

start:

assume ds:@data,cs:@code,es:@data

mov ax,@data

mov ds,ax

mov es,ax

;==================================================================== ;ПОЯСНЕНЯ

;====================================================================

mov ah,13h ; Функція виводу рядка символів із заданими атрибутами

mov al,0 ; Режим виводу

mov cx,56 ; Довжина рядка для виводу

mov dh,1; Рядок, з якого починається вивід

mov dl,10;Стовпець, з якого починається вивід

mov bl,00100100b ; Задання атрибутів (колір символів й тла)

mov bp,offset l1; Адреса рядка символів, що необхідно вивести

int 10h ; Реалізація переривання BIOS 10h

mov ah,13h

mov al,0

mov cx,27

mov dh,2

mov dl,25

mov bl,00100100b

mov bp,offset l2

int 10h

;====================================================================

СТВОРЕННЯ ФАЙЛІВ

;====================================================================

;*****************************************************************************

ФАЙЛ 1 ;****************************************************************************

mov ah,13h

mov cx,15

mov al,0

mov dh,5

mov dl,30

mov bl,00100100b

mov bp,offset q1

int 10h

mov ah,02h; Функція керування положенням курсору

mov bh,0; Номер відеосторінки

mov dh,6 ;Рядок, в якому знаходитиметься курсор миші

mov dl,28; Стовпець, в якому знаходитиметься курсор миші

int 10h ; Реалізація переривання BIOS 10h

mov ah,3ch;Функції створення файлу

mov cx,00000000b; Атрибути файлу

mov dx,offset A; Адреса ASCII рядка

int 21h ;Переривання

mov id1,ax;Занесення в змінну ідентифікатора

mov ah,3fh; Функція зчитування із файлу

mov bx,0; Ідентифікатор файлу

mov cx,25 ; Число байтів для зчитування

mov dx,offset m; Адреса буфера для прийняття даних

int 21h; Реалізація переривання DOS 21h

mov ah,40h; Функція запису у файл

mov bx,id1; Ідентифікатор файлу

mov cx,17 ; Число байтів, яке необхідно записати у файл

mov dx,offset m; Адреса буфера із даними

int 21h;Переривання

;*****************************************************************************

; ФАЙЛ 2 ;*****************************************************************************

mov ah,13h

mov cx,15

mov al,0

mov dh,8

mov dl,30

mov bl,00100100b

mov bp,offset q2

int 10h

mov ah,02h

mov bh,0

mov dh,9

mov dl,28

int 10h

mov ah,3ch

mov cx,00000000b

mov dx,offset B

int 21h

mov id2,ax

mov ah,3fh

mov bx,0

mov cx,25

mov dx,offset m

int 21h

mov ah,40h

mov bx,id2

mov cx,17

mov dx,offset m

int 21h

;*****************************************************************************

; ФАЙЛ 3 ;*****************************************************************************

mov ah,13h

mov cx,50

mov al,0

mov dh,11

mov dl,10

mov bl,00100100b

mov bp,offset q3

int 10h

mov ah,02h

mov bh,0

mov dh,12

mov dl,28

int 10h

mov ah,3ch

mov cx,00000000b

mov dx,offset C

int 21h

mov id3,ax

;*****************************************************************************

; ФАЙЛ 4

;*****************************************************************************

mov ah,13h

mov cx,51

mov al,0

mov dh,14

mov dl,10

mov bl,00100100b

mov bp,offset q4

int 10h

mov ah,02h

mov bh,0

mov dh,16

mov dl,28

int 10h

mov ah,3ch

mov cx,00000000b

mov dx,offset D

int 21h

mov id4,ax

;*****************************************************************************

; ВИКОНАНЯ

;*****************************************************************************

;====================================================================

; ПЕПЕВІРЯЄТЬСЯ ФАЙЛ 1

;===============================================================

mov ah,42h; Функція переміщення покажчика зчитування запису із файлу

mov bx,id1; Ідентифікатор файлу

mov al,0; Режим виводу

mov cx,0; Обнулення регістра сx

mov dx,0; Обнулення регістра dx

int 21h; Реалізація переривання DOS 21h

mov cx,6;Початок циклу

v:push cx;Занесення встек кількості повторень

mov ah,3fh; Функція зчитування із файлу

mov bx,id1; Ідентифікатор файлу

mov cx,3; Число байтів для зчитування

mov dx,offset z; Адреса буфера для прийняття даних

int 21h; Реалізація переривання DOS 21h

mov al,z+1;Занесення в al другу цифру числа

cmp al,'1'; Команда порівняння

je x1; Команда переходу на мітку х1, якщо прм порівнянні al=0

cmp al,'3'

je x1

cmp al,'5'

je x1

cmp al,'7'

je x1

cmp al,'9'

je x1

jmp p ;Безумовний перехід на мітку p

x1: mov ah,40h

mov bx,id4

mov cx,3

mov dx,offset z

int 21h

p:pop cx;Кінець циклу

loop v;Команда переходу на початок циклу

mov ah,42h

mov bx,id1

mov al,0

mov cx,0

mov dx,0

int 21h

mov cx,6

r:push cx

mov ah,3fh

mov bx,id1

mov cx,3

mov dx,offset n

int 21h

mov al,n+1

cmp al,'0'

je x2

cmp al,'2'

je x2

cmp al,'4'

je x2

cmp al,'6'

je x2

cmp al,'8'

je x2

jmp g

x2: mov ah,40h

mov bx,id3

mov cx,3

mov dx,offset n

int 21h

g:pop cx

loop r

;====================================================================

; ПЕПЕВІРЯЄТЬСЯ ФАЙЛ 2

;====================================================================

mov ah,42h

mov bx,id2

mov al,0

mov cx,0

mov dx,0

int 21h

mov cx,6; Початок циклу

x:push cx;Занесення встек кількості повторень

mov ah,3fh

mov bx,id2

mov cx,3

mov dx,offset z

int 21h

mov al,z+1

cmp al,'1'

je x3

cmp al,'3'

je x3

cmp al,'5'

je x3

cmp al,'7'

je x3

cmp al,'9'

je x3

jmp i;Безумовний перехід на мітку і

x3: mov ah,40h

mov bx,id4

mov cx,3

mov dx,offset z

int 21h

i:pop cx

loop x

mov ah,42h

mov bx,id2

mov al,0

mov cx,0

mov dx,0

int 21h

mov cx,6

s:push cx

mov ah,3fh

mov bx,id2

mov cx,3

mov dx,offset n

int 21h

mov al,n+1

cmp al,'0'

je x4

cmp al,'2'

je x4

cmp al,'4'

je x4

cmp al,'6'

je x4

cmp al,'8'

je x4

jmp w

x4: mov ah,40h

mov bx,id3

mov cx,3

mov dx,offset n

int 21h

w:pop cx

loop s

;*****************************************************************************

; ЗАПИС РЕЗУЛЬТАТІВ ВИКОНАННЯ

;*****************************************************************************

mov ah,42h

mov bx,id3

mov al,0

mov cx,0

mov dx,0

int 21h

mov ah,3fh

mov bx,id3

mov cx,40

mov dx,offset t

int 21h

mov ah,13h

mov cx,40

mov al,0

mov dh,12

mov dl,15

mov bl,0000111b

mov bp,offset t

int 10h

mov ah,42h

mov bx,id4

mov al,0

mov cx,0

mov dx,0

int 21h

mov ah,3fh

mov bx,id4

mov cx,40

mov dx,offset q

int 21h

mov ah,13h

mov cx,40

mov al,0

mov dh,16

mov dl,15

mov bl,0000111b

mov bp,offset q

int 10h

;*****************************************************************************

; ЗАКРИТТЯ ФАЙЛІВ

;*****************************************************************************

mov ah,3eh ;Функція закриття файлу

mov bx,id1 ; Ідентифікатор файлу

int 21h ;Переривання

mov ah,3eh

mov bx,id2

int 21h

mov ah,3eh

mov bx,id3

int 21h

mov ah,3eh

mov bx,id4

int 21h

;====================================================================

; РОЗРОБНИК

;====================================================================

mov ah,13h

mov al,0

mov cx,27

mov dh,19

mov dl,25

mov bl,00100100b

mov bp,offset l3

int 10h

mov ah,13h

mov al,0

mov cx,22

mov dh,20

mov dl,28

mov bl,00100100b

mov bp,offset l4

int 10h

mov ah,02h

mov bh,0

mov dh,20

mov dl,0

int 10h

;*****************************************************************************

; КІНЕЦЬ

;*****************************************************************************

mov ah,01h

int 21h

mov ax,4c00h

int 21h

end start ; Завершення програми

Контрольний приклад

Виконання контрольного прикладу допомагає наочно зрозуміти принцип функціонування створеної програми і побачити, чи вибраний найоптимальніший метод розв'язання задачі.

Для даного курсового проекту я вибрав такий контрольний приклад: Створити два файли В1і В2 з шести двоцифрових цифер. Вводити з клавіатури в довільному порядку цифри. При чому парні цифри записувати в файл В3. Непарні цифри записувати у файл В4.

Протягом процесу введення на екрані будуть знаходитись коментарі, які пояснюють суть завдання і служать елементами оформлення екрану при введенні.

Коли введення закінчується, то по центру рядка з'являється коментар

“ ВИКОНАВ СТУДЕНТ ГРУПИ КС-32: Сагалюк Іван ”. Теж, окрім згаданого, на екрані з'являться значення, які записалися у файли В3 та В4. Вони знаходитимуться у рядках після назв файлів.

Вихід із exe-файлу відбудеться після того як буде введений будь-який символ.

Висновки

Виконуючи дану курсову роботу була розроблена програма на мові асемблера яка, використовуючи функції роботи з файлами, функції роботи з монітором та клавіатурою, Створює два файли B1і B2 з шести двоцифрових чисел. Вводити з клавіатури в довільному порядку цифри. При чому парні цифри записувати в файл В3, а непарні цифри записувати у файл В4.

Мною отримані навики роботи з мовою асемблера, з використання функцій роботи з файлами системи переривань операційної системи DOS і BIOS.

Дана курсова робота була розбита на розділи, в яких описано процес розробки програми. В розділах описано алгоритм розробленої програми, зроблено опис тексту програми та структури програми, розроблено блок - схему алгоритму задачі.

Список використаної літератури

1. Питер Абель «Ассемблер. Язык програмирования для IBM PC» - Киев, »Век», 2003г.

2. Кип Р. Ирвин «Язык ассемблера для процессоров INTEL» - М: Издательский дом «Вильямс»», 2002 г.

3. Зубков С.В. «Ассемблер для DOS, WINDOWS, UNIX” - М.: «ДМК», 2000г.

4. Юров В. «Ассемблер» - Санкт-Петербург: «Питер», 2001г.

5. Юров В. «Ассемблер. Практикум» - Санкт-Петербург: «Питер», 2002г.

6. Юров В. «Ассемблер. Специальный справочник» - Санкт-Петербург: «Питер», 2000г.

Размещено на Allbest.ru


Подобные документы

  • Мова Асемблера, її можливості та команди. Розробка алгоритму програми, його реалізація в програмі на мові Асемблера. Введення елементів матриці та обчислення cуми елементів, у яких молодший біт дорівнює нулю. Методи створення програми роботи з матрицями.

    контрольная работа [50,3 K], добавлен 12.08.2012

  • Розробка резидентної програми за допомогою мови асемблер, яка дозволить перехопити зміст текстового та графічного екрану у файл (відповідно TXT і BMP). Вибір та обґрунтування методу розв'язки даної задачі. Алгоритм і реалізація програми, системні вимоги.

    курсовая работа [14,9 K], добавлен 08.08.2009

  • Ведення протоколу роботи комп’ютера. Розробка програми для створення списку розширень файлів і занесення часу і дати доступу до них на мові програмування Асемблер. Виклик переривання 21h код-функції та занесення до регістрів. Алгоритм та лістинг програми.

    курсовая работа [14,1 K], добавлен 08.08.2009

  • Створення програми на мові Асемблера, яка призначена для перегляду в текстовому режимі файлів, розмір яких більший за 64 кілобайти. Основні процедури, з яких вона складеться. Особливості та етапи перегляду великих файлів при невеликому об’ємі пам’яті.

    курсовая работа [13,1 K], добавлен 08.08.2009

  • Основні розрахунки резисторів мікросхеми. Розробка алгоритму рішення задачі методом блок-схем. Характеристика та розробка програми на мові С++ з використанням принципів модульного і структурного програмування. План тестування і налагоджування програми.

    курсовая работа [2,9 M], добавлен 05.12.2012

  • Огляд переваг асемблера при роботі резидентної програми русифікатора клавіатури і дисплея. Вивчення різновидів дискет, нутрощів дисковода, функцій базової версії DOS. Аналіз можливостей створення і обробки дискових файлів послідовним і прямим доступом.

    курсовая работа [33,3 K], добавлен 20.04.2012

  • Актуальність розробки програми для відновлення помилково вилучених з диску комп'ютера файлів. Програма-аналог програми Dос Undelete на мові програмування ASM-86. Елементи каталогу, що стосуються відновлення стертих файлів. Алгоритм програми та її лістинг.

    курсовая работа [33,2 K], добавлен 08.08.2009

  • Розробка програми для вирішення графічної задачі. При вирішенні задачі необхідно cтворювати програму у середовищі програмування Turbo Pascal. Розробка алгоритму функціонування програми і надання блок-схеми алгоритму. Демонстрація роботи програми.

    курсовая работа [1,3 M], добавлен 23.06.2010

  • MS-DOS - перша операційна система. Створення в операційній системі MS-DOS резидентної програми захисту файлів від видалення, її використання в випадках захисту файлів від випадкового видалення. Структура вхідних та вихідних даних, алгоритм рішення задачі.

    курсовая работа [35,5 K], добавлен 16.11.2012

  • Призначення програми на мові Асемблера: захист файлів від несанкціонованого копіювання. Існуючі методи для захисту файлів від несанкціонованого доступу. Криптографія, прив'язка до місця розташування на диску, ключова дискета з нестандартним форматом.

    курсовая работа [24,9 K], добавлен 08.08.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.