- •Практична робота №1 Перевід чисел із однієї системи числення в іншу
- •1.1 Мета роботи
- •1.2 Короткі теоретичні відомості
- •Представлення цілих чисел
- •Перевід правильних дробів
- •Представлення неправильних дробів
- •1.3 Порядок виконання роботи
- •1.4 Таблиця індивідуальних завдань
- •1.5 Контрольні запитання
- •Практична робота №2 Оболонка Turbo Debugger
- •1.1 Основні теоретичні відомості
- •2 Варіанти завдань
- •Практична робота №3 Арифметичні операції в позиційних системах числення
- •3.1 Основні теоретичні відомості
- •Методичні вказівки
- •3.2 Порядок виконання роботи
- •1.3 Контрольні запитання
- •Практична робота №4-5
- •Основні теоретичні відомості
- •1 Фоpмати чисел з плаваючою комою
- •2 Аpифметичнi опеpацiї додавання та вiднiмання чпк
- •3 Множення чпк
- •4 Дiлення чпк
- •5 Арифметичні операції між чпк та числами із фіксованою комою
- •6 Пеpетвоpення чпк до двiйково-десяткової фоpми
- •Контрольна робота №2
- •1.1 Порядок виконання роботи
- •1.2 Контрольні запитання Програмна модель мікропроцесора
- •16 Користувальницькі регістри
- •Користувальницькі регістри
- •Регістри загального призначення
- •Сегментні регістри
- •Приклад оформлення звіту
- •Опис команд пересилки даних між регістрами та комірками пам’яті
- •3.2 Завдання на роботу
- •3.3 Варіанти завдань
- •3.4 Приклад оформлення звіту
- •Практична робота №7
- •Основні теоретичні відомості
- •Директиви асемблера
- •Команди пересилки. Способи адресації
- •Моделі пам’яті
- •Структура коду команди
- •2.2 Порядок виконання роботи
- •Програма на мові Assembler:
- •Стани регістрів в процесі виконання програми:
- •2.3 Контрольні запитання
- •Практична робота №7
- •7.1 Основні теоретичні відомості Логічні команди
- •Команди передачі управління по значеннях флагів zf, sf, pf
- •7.2 Порядок виконання роботи
- •Стани регістрів в процесі виконання програми:
- •7.3 Завдання
- •7.4 Контрольні запитання
Команди передачі управління по значеннях флагів zf, sf, pf
Команда |
Умова переходу |
Зміст |
JZ мітка |
ZF = 1 |
результат операції нульовий |
JNZ мітка |
ZF = 0 |
результат операції ненульовий |
JS мітка |
SF = 1 |
результат операції від’ємний (найстарший біт = 1) |
JNS мітка |
SF = 0 |
результат операції додатній (найстарший біт = 0) |
JP мітка |
PF = 1 |
результат операції парний, тобто містить парну кількість одиниць |
JNP мітка |
PF = 0 |
результат операції непарний, тобто містить непарну кількість одиниць |
Приклад використання команд умовного переходу:
test al,al
jnz m1
inc al
m1 :
В даному випадку по команді jnz відбудеться перехід на мітку m1, якщо в регістрі al було ненульове значення, і інкремент регістру al, якщо у ньому було нульове значення.
Для вводу та виводу символа використати переривання DOS 10h i 16h.
Для вводу символа:
mov ah,0
int 16h
В результаті виконання в регістр AL буде зчитаний з клавіатури код символу ASCII
Для виводу символа:
mov ah,0eh
int 10h
Символ, що знаходиться в AL, буде виведений в поточну позицію курсора.
7.2 Порядок виконання роботи
1. Скласти асемблер-програму згідно з завданням.
2. Використовуючи програми tasm.exe та tlink.exe, отримати виконуваний модуль (.com або.exe).
3. Виконати програму у відладчику в покроковому режимі. Після виконання кожної команди фіксувати стан регістрів і флагів мікропроцесора (флаги - тільки для логічних команд).
4. Виконати програму з командного рядка DOS.
Стани регістрів в процесі виконання програми:
Команда |
Стани регістрів, що використовуються |
Стани флагів |
|||||||||
ax |
dx |
ip |
c |
z |
s |
o |
p |
a |
i |
d |
|
|
|
|
|
|
|
|
|
|
|
|
|
Примітка. Стан регістрів і комірок пам’яті зафіксувати до виконання коду завершення програми (int 21h).
5. Зробити висновки за результатами роботи.
7.3 Завдання
Варіант № |
Завдання |
1 |
1) Ввести символ з клавіатури. 2) Якщо біт 4 коду символу дорівнює 1, інвертувати код символу. 3) Якщо код нульовий, встановити в "1" біти 6 і 7. 4) Якщо код від’ємний, встановити в "0" біти 3 і 5. 5) Якщо код парний, інвертувати біти 0 і 2. 6) Вивести отриманий символ на дисплей. |
2 |
1) Ввести символ з клавіатури. 2) Якщо біт 3 коду символу дорівнює 1, інвертувати код символу. 3) Якщо код нульовий, встановити в "1" біти 5 і 7. 4) Якщо код від’ємний, встановити в "0" біти 0 і 6. 5) Якщо код парний, інвертувати біти 1 і 2. 6) Вивести отриманий символ на дисплей. |
3 |
1) Ввести символ з клавіатури. 2) Якщо біт 6 коду символу дорівнює 1, інвертувати код символу. 3) Якщо код нульовий, встановити в "0" біти 6 і 7. 4) Якщо код від’ємний, встановити в "1" біти 3 і 5. 5) Якщо код парний, інвертувати біти 1 і 4. 6) Вивести отриманий символ на дисплей. |
4 |
1) Ввести символ з клавіатури. 2) Якщо біт 5 коду символу дорівнює 0, інвертувати код символу. 3) Якщо код нульовий, встановити в "1" біти 4 і 7. 4) Якщо код від’ємний, встановити в "0" біти 3 і 6. 5) Якщо код парний, інвертувати біти 0 і 5. 6) Вивести отриманий символ на дисплей. |
5 |
1) Ввести символ з клавіатури. 2) Якщо біт 4 коду символу дорівнює 0, інвертувати код символу. 3) Якщо код нульовий, встановити в "0" біти 2 і 7. 4) Якщо код від’ємний, встановити в "1" біти 3 і 4. 5) Якщо код парний, інвертувати біти 1 і 5. 6) Вивести отриманий символ на дисплей. |
6 |
1) Ввести символ з клавіатури. 2) Якщо біт 7 коду символу дорівнює 0, інвертувати код символу. 3) Якщо код нульовий, встановити в "1" біти 0 і 1. 4) Якщо код від’ємний, встановити в "0" біти 2 і 5. 5) Якщо код парний, інвертувати біти 3 і 4. 6) Вивести отриманий символ на дисплей. |
7 |
1) Ввести символ з клавіатури. 2) Якщо біт 0 коду символу дорівнює 1, інвертувати код символу. 3) Якщо код нульовий, встановити в "1" біти 2 і 6. 4) Якщо код від’ємний, встановити в "0" біти 3 і 4. 5) Якщо код парний, інвертувати біти 1 і 7. 6) Вивести отриманий символ на дисплей. |
8 |
1) Ввести символ з клавіатури. 2) Якщо біт 1 коду символу дорівнює 0, інвертувати код символу. 3) Якщо код нульовий, встановити в "1" біти 1 і 7. 4) Якщо код від’ємний, встановити в "0" біти 4 і 6. 5) Якщо код парний, інвертувати біти 3 і 5. 6) Вивести отриманий символ на дисплей. |
9 |
1) Ввести символ з клавіатури. 2) Якщо біт 2 коду символу дорівнює 1, інвертувати код символу. 3) Якщо код нульовий, встановити в "0" біти 3 і 6. 4) Якщо код від’ємний, встановити в "1" біти 2 і 5. 5) Якщо код парний, інвертувати біти 0 і 4. 6) Вивести отриманий символ на дисплей. |
10 |
1) Ввести символ з клавіатури. 2) Якщо біт 3 коду символу дорівнює 0, інвертувати код символу. 3) Якщо код нульовий, встановити в "1" біти 2 і 3. 4) Якщо код від’ємний, встановити в "0" біти 3 і 6. 5) Якщо код парний, інвертувати біти 0 і 1. 6) Вивести отриманий символ на дисплей. |
11 |
1) Ввести символ з клавіатури. 2) Якщо біт 4 коду символу дорівнює 1, інвертувати код символу. 3) Якщо код нульовий, встановити в "0" біти 2 і 5. 4) Якщо код від’ємний, встановити в "1" біти 3 і 7. 5) Якщо код парний, інвертувати біти 1 і 4. 6) Вивести отриманий символ на дисплей. |
12 |
1) Ввести символ з клавіатури. 2) Якщо біт 5 коду символу дорівнює 0, інвертувати код символу. 3) Якщо код нульовий, встановити в "1" біти 0 і 7. 4) Якщо код від’ємний, встановити в "0" біти 1 і 5. 5) Якщо код парний, інвертувати біти 3 і 4. 6) Вивести отриманий символ на дисплей. |
13 |
1) Ввести символ з клавіатури. 2) Якщо біт 6 коду символу дорівнює 1, інвертувати код символу. 3) Якщо код нульовий, встановити в "0" біти 5 і 7. 4) Якщо код від’ємний, встановити в "1" біти 3 і 4. 5) Якщо код парний, інвертувати біти 0 і 6. 6) Вивести отриманий символ на дисплей. |
14 |
1) Ввести символ з клавіатури. 2) Якщо біт 4 коду символу дорівнює 0, інвертувати код символу. 3) Якщо код нульовий, встановити в "1" біти 0 і 2. 4) Якщо код від’ємний, встановити в "0" біти 1 і 3. 5) Якщо код парний, інвертувати біти 5 і 7. 6) Вивести отриманий символ на дисплей. |
15 |
1) Ввести символ з клавіатури. 2) Якщо біт 4 коду символу дорівнює 1, інвертувати код символу. 3) Якщо код нульовий, встановити в "0" біти 2 і 7. 4) Якщо код від’ємний, встановити в "1" біти 4 і 6. 5) Якщо код парний, інвертувати біти 1 і 5. 6) Вивести отриманий символ на дисплей. |
