ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
ВВЕДЕННЯ І ВИВЕДЕННЯБудь яка програма потребує засобів вводу і виводу. Команди Асемблера можуть це зробити єдиним способом – реалізувати переривання операційної системи або BIOS. В прикладі Розділу 4.1 було показано як виводити, наприклад, рядок. Проте ввведення і виведення чисел для програми Асемблера являє собою певну проблему. Причина в тому, що процесор не працює з числом чи символом –він працює з кодом числа або символа. Команди Асемблера можуть використовувати як символьні константи так числові константи. Найлегше користуватися десятковими значеннями (тобто з основою 10), оскільки ми звикли до них в повсякденному житті. Ясно, найпростіше ввести: mov cx, 100; встановити лічильник в значення 100 Насправді, Турбо Асемблер рахує значення десятковими, якщо ви не вказали зворотне. Проте, десяткові значення у багатьох випадках не зовсім підходять для програмування на мові Асемблера, оскільки комп'ютери є двійковими пристроями. Тоді логічно використовувати в програмах на Асемблері двійкове представлення. Ви можете вказати Турбо Асемблеру, що число виражене в двійковому виді, якщо просто помістите у кінці числа букву b (звичайно, при цьому число повинне складатися тільки з 0 і 1, оскільки це єдині дві цифри, допустимі в двійковому представленні). Наприклад, десяткове значення 5 двійковому виді, буде 101b.
mov cx, 1100100b; встановити лічильник
Щоб показати, що число є десятковим, в ролі суфікса можна використовувати букву d. Навіщо ж потрібний цей суфікс, якщо за умовчанням Турбо Асемблер і так припускає, що усі числа є десятковими? Як ви можете здогадатися, відповідь полягає в тому, що числа окрім десяткового можуть мати і інші представлення. Двійкові значення розміром в слово і подвійне слово ще важче читати і використовувати. Тепер ми готові до того, щоб розглянути способи, за допомогою яких в Турбо Асемблері можна визначати змінні. Давайте спочатку розглянемо визначення даних, що ініціалізували. Директиви визначення даних DS, DW, DD, DF, DP, DQ і DT
DВ 1 байт DW 2 байта = 1 слово DD 4 байта = 1 подвійне слово DF, DP 6 байт = 1 вказівник дальнього типу (386) DQ 8 байт = одно четвірне слово DT 10 байт
Наприклад:
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, .DATA ByteVar DB 'Z'; 1 байт WordVar DW 101b; 2 байта (1 слово) DwordVar DD 2BFh; 4 байта (1 подвійне слово) QWordVar DQ 307o; 8 байт (1 четвірне слово) TWordVar DT 100; 10 байт ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Далі глянемо ще фрагмети коду ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, mov ah,2; функція DOS виводу на дисплей mov dl,[ByteVar]; символ, який потрібно вивести на экран int 21h .,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
add ax,[WordVar] . . . add WORD PTR [DwordVar],ax adc WORD PTR [DwordVar+2],dx . . .
Тут визначено, надано значення і використано п’ять змінних в пам’яті і далі у фрагментах коду показано, як деякі з них можна використати. Зокрема показано як на дисплей виводиться символ. Це досить просто. Набагато складніше ввести і вивести число. Власне вивести і вивести число від 0 до 9 можна, а всі інші так просто ні. Відтак доведеться використовувати допоміжні засоби. Таким засобом є модуль ІО.ASM. Цей модуль приведено в книзі В.Н.ПИЛЬЩИКОВА «Ассемблер». Не нашли, что искали? Воспользуйтесь поиском:
|