
- •Лабораторна робота №5
- •4. Методичні вказівки для виконання роботи
- •4.1 Проста програма на Асемблері
- •4.4 Теоретичні відомості про команди мови Assembler
- •4.4.1. Команди арифметичниз операцій
- •4.4.2. Команди передачі значень:
- •4.4.3.Команди додавання і віднімання.
- •4.4.4 Команди множення й ділення.
- •4.4.5Команди умовного Перехіду
- •Контрольний приклад
- •4.5 Введення і виведення
- •4.5.1Введення/виведення з використанням модуля io.Asm
- •Ввод числа: inint ор
- •4.5.2 Приклад програми з використанням io.Asm
4.5.1Введення/виведення з використанням модуля io.Asm
ЯК ПІДКЛЮЧАТИ МОДУЛЬ
Нехай основна програма має ім'я prog.asm
1) В програму prog.asm необхідно додати директиву include io.asm
Наприклад: model small
Include io.asm
.data .. 2) Помістити файли io.asm і ioproc.obj в каталог з програмою prog.asm
3) Процес трансляції :
- tasm.exe /zi prog.asm,,,
- tlink.exe /v prog.obj + ioproc.obj
Не вдаваючись в деталі роботи модуля ІО.ASM просто використаємо його можливості . У нас з’явиться декілька корисних команд. Єдине треба пам’ятати, що це не є символічне ім’я команди процесора, а ім’я командного файла, що складається з рядків-виразів на мові Асемблера.
Ввод числа: inint ор
Введення з клавіатури
Введення даних з клавіатури реалізоване з використанням проміжного буфера введення. Допускається редагування тексту, що вводиться, : при натисненні клавіші Backspace знищується останній набраний символ, а при натисненні клавіші Esc знищується увесь набраний текст. Команди введення не видають на екран ніякого запрошення до введення, тому сама програма повинна видавати символи запрошення (наприклад, символ >).
Введення числа : ININT ор
Допустимий тип операнда op : слово з регістра або з пам'яті. По команді можна ввести число як зі знаком, так і без знаку. Число, що вводиться, має бути записане в десятковій системі. Якщо перед числом є пропуски, то вони "проковтнулися" командою ININT. Якщо число набране без знаку або зі знаком "плюс", то воно вводиться як число без знаку і може мати величину від 0 до 216-1. Якщо перед числом вказаний знак "мінус", то воно вводиться як негативне число і повинно мати величину - 215 до - 1. Кінцем числа вважається будь-який символ, відмінний від цифри.
Якщо величина числа знаходиться поза вказаними межами або воно задане неправильно, то фіксується помилка, і програма припиняє свою роботу.
Позаяк введене число завжди записується в регістр або осередок розміром в слово, то, наприклад, команда ININT АХ допустима, а команда ININT АН - ні.
************************************************************************
Очищення буфера введення : FLUSH Висновок на екран Висновок на екран здійснюється негайно, без яких-небудь проміжних буферів. Черговий символ, що виводиться, розміщується в тій позиції екрану, де зараз знаходиться курсор, який у міру виводу зміщується. ************************************************************************** Перехід на новий рядок: NEWLINE Виведення числа зі знаком: OUTINT opl [, ор2] Виведення числа без знаку: OUTWORD opl [, op2]
Допустимі типи операндів op1 : слово з регістра або з пам'яті, op2: байт з регістра, пам'яті або безпосередній операнд Обоє ці команди виводять в десятковому виді число, задане першим операндом і що має розмір слова, тільки команда OUTINT трактує його як знакове число, а команда OUTWORD - як беззнакове. OUTINT 0FFFFh ; вивід - 1 OUTWORD 0FFFFh ; вивід 65535 Другий операнд, якщо є, завжди трактується як число без знаку і задає ширину поля виводу - число позицій на екрані, які відводяться для виведення числа. Якщо ширина поля виводу більша, ніж потрібно, то число притискається до правого краю цього поля, а перед числом ставляться пропуски. Якщо ж ширина поля менше або взагалі не вказана (немає ор2), тоді ніякі пропуски не виводяться, а виводиться тільки число, причому цілком.
Разработать программу ви числення Z в зависимости от значення символа ch по формуле: