Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПС(2)16.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
116.74 Кб
Скачать

Лабораторная работа 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

Результат: таких чисел нет

Контрольные вопросы:

  1. Перечислите виды логических операций, выполняемые МП.

Ответ: Практически все МП производят логические операции: «лог. И», «лог. ИЛИ», исключающее ИЛИ, которые выполняются над одноименными разрядами операндов с помощью команд and, or, xor. Команда not инвертирует значение каждого разряда операнда.

  1. Для каких целей используется логическая операция «XOR»?

Ответ: Хor – инвертирует содержимое разряда числа, если в соответствующем разряде маски записана единица, иначе не изменяет его.

  1. Какие разряды регистра состояния задействованы при выполнении логических команд?

Ответ: При выполнение логических команд задействованы разряды регистра состояния: C, O, P, S, Z.

  1. Куда помещается результат после выполнения команд AND, OR, XOR?

Ответ: Результат после выполнения команд AND, OR, XOR помещается по адресу первого операнда.

  1. Напишите таблицы истинности для команд «лог. И», «лог. ИЛИ», «лог. исключающее ИЛИ».

Ответ:

Аргументы

Логические операции

X1

X2

И

ИЛИ

Исключающее ИЛИ

0

0

0

0

0

0

1

0

1

1

1

0

0

1

1

1

1

1

1

0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]