Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольная по ЭВМ / 4-МУ_Асс-логич+сдвиг.doc
Скачиваний:
20
Добавлен:
20.02.2016
Размер:
140.29 Кб
Скачать
    1. Пример программы 1

3.5.1 Формулировка задачи

Если биты номер 2 и 3 ASCII-кода введенного с клавиатуры символа равны 1, инвертировать биты номер 0, 3 и 6 и вывести на дисплей символ, соответствующий измененному коду; иначе протестировать бит номер 5 кода введенного символа.

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

В начале работы предлагается ввести символ, имеющий ASCII-код.

После анализа бит номер 2 и 3 кода выполняется либо инвертирование бит номер 0, 3 и 6 и вывод символа, соответствующего измененному коду, либо тестирование бита номер 5 исходного кода и вывод соответствующего результата.

Предусмотреть в конце программы задержку для обозрения сообщения.

      1. Тестирование программы

Для проверки правильности работы необходимо ввести следующие символы (таблица 3.3).

Таблица 3.3Символы для тестирования программы

Номер бита кода символа

Символ

Примечание

7

6

5

4

3

2

1

0

0

1

1

0

1

1

0

1

m (англ)

Подлежит инвертированию

0

0

1

0

0

1

0

0

$

Результат инвертирования

0

1

1

0

0

1

0

0

4

Подлежит тестированию

0

1

1

1

1

0

0

0

х (англ)

Подлежит тестированию

0

1

0

1

0

0

0

0

Р (англ)

Подлежит тестированию

3.5.4 Листинг программы

model small

.stack 100h

.data

priglash db 'Введите символ->','$'

vivs db 10, 13, 'Символ после изменения кода ->','$'

rez0 db 10, 13, 'Бит = 0','$'

rez1 db 10, 13, 'Бит = 1','$'

.code

start: ; точка входа в программу

mov ax, @data ; загрузка адреса сегмента данных

mov ds, ax

mov dx, offset priglash ; загрузка начального адреса строки в dx

mov ah, 9h ; вывод строки 'Введите символ'

int 21h

mov ah, 1h ; ввод символа

int 21h ; код символа - в al

mov bl, al ; копия кода символа - в bl

; если хотя бы одно условие не выполняется, переход на тестирование

; (см. подробно в п. 3.3)

test bl, 100b ; проверка бита номер 2

jz tst ; если =0, (случай «иначе»), переход на tst

test bl, 1000b ; проверка бита номер 3

jz tst ; если =0, (случай «иначе»), переход на tst

; инвертирование бит номер 0, 3 и 6

xor bl, 01001001b

mov dx, offset vivs ; вывод строки 'Символ после изменения кода' mov ah, 9h

int 21h

mov dl, bl ; вывод символа, код символа в dl

mov ah, 2h

int 21h

jmp fin

tst: test bl, 00100000b ; тестирование бита номер 5

jz r0 ; если бит =0, переход на метку r0

; бит ≠0, вывод сообщения rez1

mov dx, offset rez1 ; вывод строки 'Бит = 1'

mov ah, 9h

int 21h

jmp fin

r0: ; вывод сообщения rez0

mov dx, offset rez0 ; вывод строки 'Бит = 0'

mov ah, 9h

int 21h

fin: mov ah, 1 ; задержка для обозрения

int 21h

mov ax, 4C00h ; завершение работы

int 21h

end start

Соседние файлы в папке Контрольная по ЭВМ