REFERATUA.ORG.UA — База українських рефератів



Головна Інформатика, комп'ютери, програмування → СТРУКТУРНЕ ПРОГРАМУВАННЯ НА МОВІ АСЕМБЕЛЕРА

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

ЧЕРНІВЕЦЬКИЙ ДЕРЖАВНИЙ УНІВЕРСИТЕТ

ім. Ю. ФЕДЬКОВИЧА

ФІЗИЧНИЙ ФАКУЛЬТЕТ

КАФЕДРА ЕОМ

СТРУКТУРНЕ ПРОГРАМУВАННЯ

НА МОВІ АСЕМБЕЛЕРА

Курсова робота з курсу "Системне програмування"

Студент 3-го курсу

Беднарський І.Я.

Керівник

Федорук В.І.

1999

ЗМІСТ

ЧАСТИНА і

Вступ 4

Глава 1. Структурні оператори і структури логіки керування 5

умови у структурах логіки керування 6

Глава 2. Структура if 5

структура if з чаСткою else 9

функціонування структури if 9

команди, що генеруються операторами $if-$endif 10

команди, що генеруються операторами $if-$else-$endif 10

варіанти операнду 11

операції and i or 11

дальні передачі управління 13

глава 3. структура do 13

структура do until 14

структура do while 15

структура do complex 16

додаткові операнди 16

параметр loop 17

операції and и or 18

глава 4. структура search 18

структура search until 19

структура search while 20

структура search complex 21

додаткові операнди 21

глава 5. обмеження на використання умов ncxz і cxz 23

глава 6. упорядкування структурованих програм 23

процедура 23

розробка структурованих програм по методу "зверху вниз" 24

використання програми salut 25

пакет команд для програми salut 25

переформатування вихідних текстів програмою salut 26

переформатування неструктурованих програм 26

ЧАСТИНА іі

ЛІСТИНГ ПРОГРАМИ ДРУКУ ДИСКОВОГО asCII ФАЙЛУ 28

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

СТРУКТУРНЕ ПРОГРАМУВАННЯ

Одним із найцінніших якостей Макроасемблера версії 2 є те, що він дозволяє вам писати структуровані програми на мові асемблера. Під "структурованими" ми розуміємо програми, що містять оператори високого рівня і виконуючі цикли, умовні передачі керування та інші задачі керування, що при відсутності оператора зажадали б декількох команд на мові асемблера. У дійсноcті структурні оператори забезпечують ті ж види складаних операцій, що і мова Бейсік. Наприклад, одне із сімейств структурних операторів (або логічних структур) виконує ті ж дії, що й оператор IF-THEN-NEXT.

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

  • розробка за методу "зверху вниз". (нагадаємо, що при цьому методі розробка програм починається з коментарів, до яких послідовними кроками додаються все нові і нові деталі).

  • Програмування без міток.

  • Програмування без оператора GOTO (тобто без команд умовної або безумовної передачі керування).

  • Запис тексту програми з відступами, що показують рівень вкладеності логічних структур.

  • У достатній мірі лістинги, що самодокументуються.

Все це призначено для підвищення якості програм на мові асемблера. Якісні поліпшення повинні бути явними в наступних аспектах:

  • розробник повинен краще розуміти логіку програми;

  • лістинг повинен бути зрозумілий тим, хто намагається внести власні зміни в чужі програми;

  • оскільки програма більш зрозуміла, у ній повинно бути менше помилок;

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

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

Можливість користуватися структурними операторами забезпечується програмою SALUT (Structured Language Utility - сервісна програма структурного програмування на мові асемблера). Ви повинні набрати текст своєї програми, а потім викликати програму SALUT для перетворення структурних операторів у стандартні команди на мові асемблера. Після цього треба як завжди відтранслювати програму і завантажити її.

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

СТРУКТУРНІ ОПЕРАТОРИ І СТРУКТУРИ ЛОГІКИ КЕРУВАННЯ

Існує більше десяти різних структурних операторів, але ними треба користуватися в строго визначених сполученнях, що у посібнику з Макроасемблеру називаються структурами логіки керування. Нижче визначені вісім різних структур логіки управління, але ми можемо розбити їх на три групи: структура IF (якщо) -- реалізує прийняття рішень Вона змушує мікропроцесор виконувати або пропускати групу команд у залежності від того, задовольняється задана умова чи ні. Структура IF аналогічна оператору IF-THEN на мові Бейсік.

  • Структура DO (виконати), що забезпечує повторення групи команд. Вона змушує мікропроцесор циклічно виконувати одну або декілька груп команд, поки не задовольниться задана умова. Структура DO аналогічна операторам FOR-NEXT у мові Бейсік.

  • Структура SEARCH (шукати) також пов'язана з повторенням команд, але використовується в тому випадку, коли вам необхідно знати, яка саме з декількох умов привела до завершення виконання циклу. Структура SEARCH виконує свій блок команд для кожної умови виходу з циклу.

УМОВИ У СТРУКТУРАХ ЛОГІКИ КЕРУВАННЯ

У табл. 1 показані умови, якими можна скористатися для керування структурами IF, DO і SEARCH.

СТРУКТУРА IF

Структура IF змушує мікропроцесор виконувати або пропускати групу команд в залежності від того, істинна чи хибна задана умова. Її основна форма:

$IF умова

А

$ENDIF

де умова -- умова що перевіряється (одна з тих, що перераховані в табл. 1), а А -- блок команд. Якщо умова істинна, то мікропроцесор виконує ці команди, у протилежному випадку він переходить до оператора, що слідує безпосередньо за оператором $ENDIF. (звернемо увагу, що цей порядок дій протилежний до того, по якому слідують команди умовної передачі керування: останні пропускають команди, якщо умова істинна). На мал. 1, а показана блок-схема структури IF.

Наприклад, для перетворення числа, що знаходиться в регістрі BX на його абсолютне значення ми повинні скористатися операторами

CMP BX, 0 ;Від'ємне значення?

$IF L

NEG BX ;Якщо так, змінити знак

$ENDIF

Таблиця 1. Умови в структурах логіки управління

Умова

Опис

Істинно, якщо ...

А

Above – вище

CF=0 і


 
Загрузка...