Робота з записами мови ассемблера (48841)

Посмотреть архив целиком

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ


НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ

ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ”


Кафедра "Обчислювальної техніки та програмування"





АЛЬБОМ ДОКУМЕНТІВ

до курсового проекту з курсу

Системне програмування

Тема: Робота з записами мови ассемблера ”














Харків

2005


МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ

ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ”

Кафедра"Обчислювальної техніки та програмування"


Затверджую

__________________________

_________________/ /

___” ________________2005 р.



Робота з записами мови ассемблера

Специфікація

Лист затвердження

xxxxxxxxxxxxxx

Виконав

ст. гр xxxx

xxxxxxxxxxxxxxx

___” ________________2005 р.

Перевірив


xxxxxx.

___” ________________2005 р.





Харків

2005


ЗАТВЕРДЖЕНО

xxxxxxxxxxxx




Робота з записами мови ассемблера


Специфікація


xxxxxxxxxxxxxxxx


Код

Найменування

Примітки

xxxxxx – 00 00-01

Специфікація


xxxxxx. 03011 – 13 00-01

Опис пргограми


xxxxxxx. 03011 – 12 00-01

Текст програми
















Харків

2005


МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ

ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ”

Кафедра"Обчислювальної техніки та програмування"


Затверджую

__________________________

_________________/ /

___” ________________2005 р.



Робота з записами мови ассемблера

Опис програми

Лист затвердження

xxxxxxxxxxxxx

Виконав

ст. гр xxxxxx

xxxxxxxx.

___” ________________2005 р.



Перевірив


xxxxxxxxx.

___” ________________2005 р.




Харків

2005


ЗАТВЕРДЖЕНО


xxxxxxxxxxx






Робота з записами мови ассемблера


Опис програми


xxxxxxxxxxx















Харків

2005


Зміст


Вступ

Загальні відомості

Функціональне призначення

Опис логічної структури

Використовувані технічні засоби

Виклик і завантаження

Вхідні дані

Вихідні дані

Висновки

Література


Вступ


Запис — структурний тип даних, що складається з фіксованого числа елементів завдовжки від одного до декількох біт.

При описі запису для кожного елементу вказується його довжина в бітах і, що необов'язкове, деяке значення. 8, 16 або 32 біт.

Якщо сумарний розмір запису менше вказаних значень, то всі поля запису “притискаються” до молодших розрядів.

Використовування записів в програмі, так само, як і структур, організовується в три етапи:

Задання шаблона запису, тобто визначення набору бітових полів, їх довжин і, при необхідності, ініціалізація полів.

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

Організація звертання до элементів запису.

Компілятор TASM, крім стандартних засобів обробки записів, підтримує також і деякі додаткові можливості їх обробки.

Опис запису

Опис шаблона запису має наступний синтаксис (мал. 6):

Имя_записи RECORD <описание элементов>

Тут: <описание элементов> є послідовністю описів окремих елементів запису згідно синтаксичній діаграмі (див. мал. 6):




Мал.1. Синтаксис опису шаблона запису


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

Визначення екземпляру запису

Для використовування шаблона запису в програмі необхідно визначити змінну з типом даного запису, для чого застосовується наступна синтаксична конструкція (мал. 7):




Мал.2. Синтаксис опису екземпляру запису


Аналізуючи цю синтаксичну діаграму, можна зробити висновок, що ініціалізація елементів запису здійснюється достатньо гнучко. Розглянемо декілька варіантів ініціалізації.

Якщо ініціалізувати поля не потрібен, то достатньо вказати ? при визначенні екземпляру запису:

...

iotest record

i1:1,i2:2=11,i3:1,i4:2=11,i5:2=00

...

flag iotest ?

Якщо ви складете і дослідите у відладчику тестовий приклад з даним визначенням запису, то побачите, що всі поля змінної типу запис flag обнуляються. Це відбувається не дивлячись на те, що у визначенні запису задані початкові значення полів.

Якщо потрібна часткова ініціалізація елементів, то вони полягають в кутові (< і >) або фігурні ({ і }) дужки.
Відмінність тут в тому, що в кутових дужках елементи повинні бути задані в тому ж порядку, що і у визначенні запису. Якщо значення деякого елементу спывпадає з початковим, то його можна не вказувати, але обов'язково позначити його комі. Для останніх елементів коми, що йдуть підряд, можна опустити.

Наприклад, згодитися із значеннями за умовчанням можна так:

iotest record

i1:1,i2:2=11,i3:1,i4:2=11,i5:2=00

...

flag iotest <> ;согласились со значением по умолчанию

Змінити значення поля i2 можна так:

iotest record

i1:1,i2:2=11,i3:1,i4:2=11,i5:2=00

...

flag iotest <,10,> ; перевизначили i2

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

iotest record

i1:1,i2:2=11,i3:1,i4:2=11,i5:2=00

...

flag iotest {i2=10} ; переопределили i2, не обращая внимания на порядок;следования других компонентов записи


1.Загальні відомості


Проект написан на мові TASM, реалізовано у трьох файлах:

main.asm, defs.inc, funcs.inc, record.inc. Під час компіляції усі файли обєднуються в один.

Для своєї роботи проект може використовувати операційні системи MS Dos версії 1.0, або вище, а також операційні системи

MS WINDOWS 95/98/Me/2000/XP. Не виключається робота проекту під усіма іншими операційними системами, що якимсь чином можуть емулювати сеанси роботи під операційною системою MS DOS.


2. Функціональне призначення


Проект може слугувати в якості навчального посібника для розуміння роботи записів та в якості прикладу одного з варіантів, такого як створення масиву, добавлення елемента, видалення елемента, змінення поля, очищення поля. Також у проекті можна наглядно побачити ввод з клавіатури і вивід результатів на екран.

Програма написана на мові ассемблера з використовуванням процедур.

Функціональне обмеження програми є те, що вона може бути реалізована тільки у файлі з розширенням COM, якщо розширення буде EXE програма працювати не буде. Більше функціональних обмежень немає.

3. Опис логічної структури









Mov ah,8

Int 16h


















Dec cx

Inc si



Mov al,byet ptr[si]

Cmp al,9h




ні

add al,30h


так

Add al,37h




Mov byte ptr [di],al

Inc si




Inc di

Loop






Mov bp,sp



Push bp



Mov ax,0Ah



Mov dx,[bp+10]


Приведення шляху в asсii



Çì³íà äèñêó çã³äíî øëÿõó



Зміна директорії






Pop bp



Ret 14










Вівод на екран MESX, MES0, MES1,

MES2, MES3, MESX


















Mov AH,08h

Int 21h
































4.Використовувані технічні записи


Проект має нормально працювати на компютерах IBM PC із процесорами і8086, або більш старших моделях. Програма потребує оперативної пам’яті не більше 6 Кб, до цього треба додати пам’ять, яку займає операційна система MS DOS чи WINDOWS. Потрібен також відеоадаптер VGA, для організації діалогу з користувачем. При написанні проекту використовувався комп’ютер з процесором AMD Athlon XP 1700+, оперативною пам’ятю 256 Мб та операційною системою Windows XP у середовищі TASM.


Случайные файлы

Файл
80580.rtf
96657.rtf
27794-1.rtf
10461.rtf
ref stanok.doc




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