- •Вариант №16 Лабораторная работа 1
- •Контрольные вопросы:
- •1. Какие бывают команды перехода?
- •3. С помощью каких регистров признаков осуществляется каждая из них?
- •4. Каков формат команд перехода, и к какому способу адресации они относятся?
- •5. По каким условиям записывается 1 в каждый из разрядов регистра состояния мп?
- •Лабораторная работа 2
- •Контрольные вопросы:
- •Лабораторная работа 3
- •2. Программа исследования процесса выполнения команд вызова и возврата из подпрограмм, а также команд работы со стеком.
- •Контрольные вопросы:
- •Укажите порядок выполнения команды ret.
- •Сравните процесс выполнения команд call и ret.
- •В какой последовательности сохраняется и извлекается содержимое регистров мп в подпрограмме?
- •Как будет выполняться программа, если вместо команды popf в ней будет записана команда nop?
- •Лабораторная работа 4
- •Контрольные вопросы:
- •На чем основан алгоритм программы деления чисел?
- •Чем отличается программы 1 и 2?
- •Каким образом организуется образование цифры частного в программах 1 и 2?
- •Объясните организацию неявного счетчика в программе 2?
- •Лабораторная работа 5
- •Приведите примеры существующих алгоритмов умножения.
- •На чем основан алгоритм работы программы умножения?
- •Что такое «сдвиг влево», «сдвиг вправо»?
Лабораторная работа 2
Маскирование данных
ЦЕЛЬ РАБОТЫ: изучение программных способов маскирования данных.
Задание 1: Загрузить программным путем в память число 26 и число 9. Найти слово маски такое, чтобы сумма чисел была равна 35, поместить его в память, произвести операцию маскирования командой «лог. исключающее ИЛИ».
№ вар. |
Первое число |
Второе число |
Сумма |
16 |
26 |
9 |
35 |
Программа:
cdseg segment 'code'
assume cs:cdseg
org 100h
start:
mov si,offset first ; загрузим в si смещение на первый операнд
mov [si],26 ;загрузим в память по смещению [si] первый операнд
mov ax,[si] ; загрузим в ax из памяти первый операнд
mov si,offset second ; загрузим в si смещение на второй операнд
mov [si],9 ;загрузим в память по смещению [si] второй операнд
add ax,[si] ; добавим к ax второй операнд
mov si,offset mask ; загрузим в si смещение на слово маски
mov [si],0 ;загрузим в память по смещению [si] слово маски
xor ax,[si] ; произведём над суммой (в регистре ax) и маской операцию <<ИСКЛЮЧАЮЩЕЕ ИЛИ>>
int 20h
;data
first db ?
second db ?
mask db ?
cdseg ends
end start
Результат: маска: 0.
Задание 2: Из имеющегося массива чисел осуществить выборку тех, которые имеют единицы в 5 и 1 разрядах.
№ вар. |
Массив чисел |
||||||
16 |
48 |
28 |
58 |
44 |
6 |
26 |
32 |
Программа:
cdseg segment 'code'
assume cs:cdseg
org 100h
start:
mov cx,(offset dest)-(offset source)
mov si,offset source
mov di,offset dest
mov bl,10001b ; маска
m1: lodsb ; загрузим байт в al
and al,bl ; используем маску
cmp al,bl ; сравним результат с маской
jnz m3 ; если не равен, то прыгаем на m3
dec si ; иначе снова загружаем его
lodsb ; в al и сохраняем в
stosb ; массив dest
m3:
loop m1
int 20h
;data
source db 48,28,58,44,6,26,32
dest db (offset dest)-(offset source) dup (0)
cdseg ends
end start
Результат: таких чисел нет
Контрольные вопросы:
Перечислите виды логических операций, выполняемые МП.
Ответ: Практически все МП производят логические операции: «лог. И», «лог. ИЛИ», исключающее ИЛИ, которые выполняются над одноименными разрядами операндов с помощью команд and, or, xor. Команда not инвертирует значение каждого разряда операнда.
Для каких целей используется логическая операция «XOR»?
Ответ: Хor – инвертирует содержимое разряда числа, если в соответствующем разряде маски записана единица, иначе не изменяет его.
Какие разряды регистра состояния задействованы при выполнении логических команд?
Ответ: При выполнение логических команд задействованы разряды регистра состояния: C, O, P, S, Z.
Куда помещается результат после выполнения команд AND, OR, XOR?
Ответ: Результат после выполнения команд AND, OR, XOR помещается по адресу первого операнда.
Напишите таблицы истинности для команд «лог. И», «лог. ИЛИ», «лог. исключающее ИЛИ».
Ответ:
-
Аргументы
Логические операции
X1
X2
И
ИЛИ
Исключающее ИЛИ
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
