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



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

NUL

Ні

Так

$EXITIF умова, NUL

Ні

Так

$ENDLOOP умова

Так

Ні

$ENDLOOP умова, AND

Так

Ні

$ENDLOOP умова, OR

Ні

Так

$ENDDO умова

Так

Ні

$ENDDO умова, AND

Так

Ні

$ENDDO умова, OR

Ні

Так

ОБМЕЖЕННЯ НА ВИКОРИСТАННЯ УМОВ NCXZ І CXZ

Як згадувалося вище, програма SALUT транслює структурні оператори в їхні еквіваленти на мові асемблера. Зокрема, вона перетворить умовні оператори в команди Jx або JMP, а оператори $ENDIF, $DO, $SEARCH і $ENDSRCH -- у мітки. При цьому програма SALUT у багатьох випадках повинна перетворювати умовний оператор у протилежну команду умовної передачі керування. Наприклад, вона перетворить оператор $IF А в команду JNA L1 (де L1 -- мітка, що стоїть на місці оператора $ENDIF). Але через це при застосуванні умови CXZ можуть виникнути проблеми, оскільки команди JNCXZ немає. У табл. 2 перераховані ті оператори, в яких можуть використовуватися умови CXZ і NCXZ, і вказано, в яких випадках ці умови допустимі.

УПОРЯДКУВАННЯ СТРУКТУРОВАНИХ ПРОГРАМ

ПРОЦЕДУРА

При впорядкуванні структурованих програм можна користуватися тими ж прийомами, що і при впорядкуванні звичайних програм, із тією лише різницею, що текст програми треба опрацювати програмою SALUT для перетворення структурних операторів у стандартні команди на асемблері. Крім того, програма SALUT буде формувати вашу вихідну програму, розташовуючи елементи операторів по визначених стовпчиках. Таким чином, треба виконати такі кроки:

  • Набрати текст програми за допомогою редактора. Дати йому ім'я виду ім'я_файла. SAL, де SAL -- абревіатура від Structured Assembly Language (структурована мова асемблера).

  • Опрацювати файл типу SAL програмою SALUT. В результаті отримається файл з форматованою вихідною програмою ім'я_файла. SAL і проміжний робочий файл ім'я_файла. ASM. програма SALUT перейменує створений вами файл з неформатованою програмою в ім'я_файла. BAK.

  • Відтранслюйте проміжний робочий файл за допомогою Асемблера.

  • Знищити проміжний робочий файл типу ASM. При бажанні можна видалити і файл типу BAK.

  • Скористайтеся завантажувачем для створення виконуваного модуля.

    РОЗРОБКА СТРУКТУРОВАНИХ ПРОГРАМ МЕТОДОМ "ЗВЕРХУ ВНИЗ"

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

    $IF ;Якщо вказане правильне значення

    $ELSE ;Тому що вказане неправильне значення

    $ENDIF ;Кінець перевірки значення на правильність

    Ця конструкція поки ще не може бути відтрансльована належною чином, оскільки в операторі $IF треба вказувати умову. Додаючи умову, отримуємо

    $IF E ;Якщо вказане правильне значення

    $ELSE ;Тому що вказане неправильне значення

    $ENDIF ;Кінець перевірки значення на правильність

    тепер ми маємо умову "дорівнює", котрій повинне передувати порівняння значень. Вставляючи це порівняння, отримуємо

    CMP AX,100 ;Перевірити на рівність із необхідним

    Значенням

    $IF E ;Якщо вказане правильне значення

    $ELSE ;Тому що вказане неправильне значення

    $ENDIF ;Кінець перевірки на правильність

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

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

    ВИКОРИСТАННЯ ПРОГРАМИ SALUT

    Для виклику програми SALUT одержите на екрані запрошення до вводу С>, а потім введіть команду типу

    С>с:salut ім'я_файлу

    Коли програма SALUT завершить свою роботу, у робочій директорії з'являться три файли: початкова вихідна програма ім'я_файлу.ВАК, переформатована версія вихідної програми ім'я_файлу.SAL і проміжний робочий файл ім'я_файлу.ASM. Тепер можна звичайним чином відтранслювати файл ім'я_файлу.АSМ, а потім завантажити об'єктний модуль ім'я_файлу.ОВJ і одержати виконуваний модуль ім'я_файлу.ЕХЕ.

    ПАКЕТ КОМАНД ДЛЯ ПРОГРАМИ SALUT

    Взагалі говорячи, після завершення роботи програми SALUT уже не потрібний файл із початковою вихідною програмою (з розширенням ВАК). А після завершення трансляції не потрібний і файл із розширенням ASM (якщо в програмі були помилки, то Вам треба виправляти не файл із розширенням ASM, а файл із розширенням SAL.) Тому потрібно видалити ці два файли. Щоб не робити це щоразу вручну, створіть пакет команд, що викликає програму SALUT і Макроасемблер, а потім видаляє файли з розширенням ВАК і ASM. Для цього (припускаючи, що ви хочете дати пакету команд ім'я ASMSAL.BAT) наберіть зазначені нижче рядки:

    C>copy con: asmsal.bat

    c:salut %1

    erase %1.bak

    c:masm %1,,;

    erase %1. asm (натисніть клавішу F6)

    Для виконання цього пакета введіть команду виду

    C> c:asmsal ім'я_файлу

    Врахуйте, що третя команда пакета, на жаль, автоматично створює файл із лістингом вихідної програми (із розширенням LST). Якщо він не потрібний, створіть інший пакет команд, указавши команду с:masm % 1; замість цього рядка.

    ПЕРЕФОРМАТУВАННЯ ВИХІДНИХ ТЕКСТІВ ПРОГРАМОЮ SALUT

    Якщо задаються інші параметри, то програма SALUT буде переформатовувати вихідну програму в такий спосіб:

  • Початковою позицією міток і самостійних коментарів буде стовпчик 1.

  • Початковою позицією структурних операторів і мнемокодів команд буде стовпчик 9.

  • Початковою позицією операндів буде стовпчик 17.

  • Початковою позицією коментарів буде стовпчик 41.

  • Всередині структур оператори зміщуються на чотири позиції вправо. При бажанні можна задати інші початкові позиції.

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

    Потрібно врахувати що в програми SALUT функція переформатування відділена від функції


  •  
    Загрузка...