Лабораторная работа №2. Построение системы кодирования информации с использованием языка Ассемблер

Содержание

Слайд 2

Постановка задачи

Постановка задачи

Слайд 3

Алгоритм решения

Алгоритм решения

Слайд 4

Операции кодирования

Операции кодирования

Слайд 5

Операции кодирования

Операции кодирования

Слайд 6

Операции кодирования

Операции кодирования

Слайд 7

Операции кодирования

Операции кодирования

Слайд 8

Операции кодирования

Операции кодирования

Слайд 9

Операция проверки условия D3>D2 XXXX 00XX→0000 0000b – – 0000 1000b≠0

Операция проверки условия D3>D2

XXXX 00XX→0000 0000b –
– 0000 1000b≠0
XXXX 01XX→0000 0100b


– 0000 1000b≠0
XXXX 10XX→0000 1000b –
– 0000 1000b=0
XXXX 11XX→0000 1100b –
– 0000 1000b≠0

Данные в аккумуляторе
ANI 0000 1100b;
CPI 0000 1000b;
JNZ L2;
{кодирование по первому алгоритму}
JMP L3;
L2: {кодирование по второму алгоритму}
L3:{продолжение прогрмаммы}

Слайд 10

Задание начальных адресов LXI H,am1 ; HL ← am1 = 0800h

Задание начальных адресов

LXI H,am1 ; HL ← am1 = 0800h –

начальный адрес исходных данных
LXI D,am2 ; DE ← am2 = 0808h – начальный адрес кодированных данных
MVI C,am2-am1 ; C ← 8 – число кодируемых байт данных
Слайд 11

Проверка условия L1: MOV A,M ; A ← M(rp H) ;извлечение

Проверка условия

L1: MOV A,M ; A ← M(rp H) ;извлечение данных

из памяти в аккумулятор
ANI 0Ch ; выделение битов D3 и D2
A ← A & 0000 1100b = 0 0 0 0 D3 D2 0 0
CPI 08h ; A – 0000 1000b(проверка условия)
Если после вычитания Z=1(получен ноль), то условие D3 > D2 выполнено и кодирование происходит по первому алгоритму, иначе (Z=0, не равно нулю), то кодирование происходит по второму алгоритму
Слайд 12

Кодирование по алгоритму 1 1) Инверсия бита D5 и D0 MOV

Кодирование по алгоритму 1

1) Инверсия бита D5 и D0
MOV A,M ;

A ← M(rp H) извлечение из памяти
XRI 21h ; A ← A xor 0010 0001b
STAX D ; M(rp D) ← A сохранение результата
Слайд 13

Кодирование по алгоритму 1 2) Перестановка бит D4 и D7 ANI

Кодирование по алгоритму 1

2) Перестановка бит D4 и D7
ANI 90h

; A ← A & 1001 0000b= D7 0 0 D4 0 0 0 0
JPE L3 ; проверка D7+D4 – четное число?
LDAX D ; A ← M(rp D)
XRI 90h ; A ← A xor 1001 0000b инверсия бит D7 и D4
STAX D ; сохранение результата
L3: ….
Слайд 14

Кодирование по алгоритму 1 3) Перестановка бит D6 и D1 L3:

Кодирование по алгоритму 1

3) Перестановка бит D6 и D1
L3: LDAX D
ANI

42h ; A ← A & 0100 0010b = 0 D6 0 0 0 0 D1 0
JPE L4 ; проверка D6+D1 – четное число?
LDAX D ; A ← M(rp D)
XRI 42h ; A ← A xor 0100 0010b инверсия бит D6 и D1
STAX D ; сохранение результата
JMP L4 ; Конец кодирования
L4: …
Слайд 15

Кодирование по алгоритму 2 L2: MOV A,M ; A ← M(rp

Кодирование по алгоритму 2

L2: MOV A,M ; A ← M(rp H)


XRI 50h ; A ← A xor 0101 0000b, инверсия бит D6 и D4
RLC ; сдвиг влево
RLC ; сдвиг влево
STAX D ; M(rp D) ← A
Слайд 16

Переход к следующей ячейке памяти L4: INX H ; HL ←HL

Переход к следующей ячейке памяти

L4: INX H ; HL ←HL + 1
INX D ;

DE←DE + 1
DCR C ; C ←C – 1
JNZ L1 ; проверка пройдены ли все ячейки
Слайд 17

Подбор чисел для проверки кодирования

Подбор чисел для проверки кодирования

Слайд 18

Подбор чисел для проверки кодирования

Подбор чисел для проверки кодирования

Слайд 19

Подбор чисел для проверки кодирования

Подбор чисел для проверки кодирования

Слайд 20

Подбор чисел для проверки кодирования

Подбор чисел для проверки кодирования

Слайд 21

Соответствие чисел до и после кодирования

Соответствие чисел до и после кодирования

Слайд 22

Подбор чисел для проверки кодирования

Подбор чисел для проверки кодирования

Слайд 23

Подбор чисел для проверки кодирования

Подбор чисел для проверки кодирования