Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
25
Добавлен:
02.05.2014
Размер:
57.34 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

МЕЖДУНАРОДНЫЙ ИНСТИТУТ ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ

Лабораторная работа № 5

По дисциплине «Организация и функционирование ЭВМ»

Выполнил :

студент группы 417217 Гмыза А. А.

Проверил:

Преподаватель Новиков С. О.

Минск 2008

Лабораторная работа №5

«Изучение команд манипулирования битами»

Цель работы: изучить форматы и правила работы с командами манипулирования битами микропроцессора i8086.

Оборудование: IBM - совместимый персональный компьютер, работающий под управлением операционной системы, совместимой с MS-DOS®.

Программное обеспечение: Программа DEBUG

Краткие теоретические сведения.

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

AND -- команда выполняет побитовое «логическое И» над приемником (регистр или переменная) и источником (число, регистр или переменная; источник и приемник не могут быть переменными одновременно) и помещает результат в приемник. Любой бит результата равен 1, только если соответствующие биты обоих операндов были равны 1, и равен 0 в остальных случаях.

OR -- выполняет побитовое «логическое ИЛИ» над приемником (регистр или переменная) и источником (число, регистр или переменная; источник и приемник не могут быть переменными одновременно) и помещает результат в приемник. Любой бит результата равен 0, только если соответствующие биты обоих операндов были равны 0, и равен 1 в остальных случаях.

XOR -- выполняет побитовое «логическое исключаю.щее ИЛИ» над приемником (регистр или переменная) и источником (число, регистр или переменная; источник и приемник не могут быть переменными одновременно) и помещает результат в приемник. Любой бит результата равен 1, если соответствующие биты операндов различны, и нулю, если одинаковы

NOT -- Каждый бит приемника (регистр или переменная), равный нулю, устанавливается в 1, и каждый бит, равный 1, сбрасывается в 0.

  1. Команды сдвига и циклического сдвиг:

SAR, SAL, SHR, SHL -- эти четыре команды выполняют двоичный сдвиг приемника (регистр или переменная) вправо (в сторону старшего бита) или влево (в сторону младшего бита) на значение счетчика (число или регистр CL, из которого учитываются только младшие пять бит, которые могут принимать значения от 0 до 31), Операция сдвига на 1 эквивалентна умножению (сдвиг влево) или делению (сдвиг вправо) на 2. Команды SAL и SHL выполняют одну и ту же операцию (на самом деле это одна и та же команда) — на каждый шаг сдвига старший бит заносится в CF, все биты сдвигаются влево на одну позицию, и младший бит обнуляется. Команда SHR выполняет прямо противоположную операцию: младший бит заносится в CF, все биты сдвигаются на 1 вправо, старший бит обнуляется. Эта команда эквивалентна беззнаковому целочисленному делению на 2. Команда SAR действует по аналогии с SHR, только старший бит не обнуляется, а сохраняет предыдущее значение.

SHRD, SHLD -- приемник (регистр или переменная) сдвигается влево (в случае SHLD) или вправо (в случае SHRD) на число бит, указанное в счетчике (число или регистр CL, откуда используются только младшие 5 бит, которые могут принимать значения от 0 до 31). Старший (для SHLD) или младший (в случае SHRD) бит не обнуляется, а считывается из источника (регистр), значение которого не изменяется.

ROR, ROL, RCR, RCL -- эти команды осуществляют циклический сдвиг приемника (регистр или переменная) на число бит, указанное в счетчике (число или регистр CL, из которого учитываются только младшие пять бит, принимающие значения от 0 до 31). При выполнении циклического сдвига на 1 команды ROR (ROL) сдвигают каждый бит приемника вправо (влево) на одну позицию, за исключением самого младшего (старшего), который записывается в позицию самого старшего (младшего) бита. Команды RCR и RCL выполняют аналогичное действие, но включают флаг CF в цикл, как если бы он был дополнительным битом в приемнике.

Индивидуальное задание.

Согласно своего варианта вычислить следующее выражение и определить, четное полученное число или нечетное и отрицательное оно или положительное:

F = Y оп1 КОН1 оп2 Х оп3 КОН2

КОН1, КОН2 – числовые константы, согласно табл. 1

оп1, оп2, оп3 – операции сложения, вычитания, умножения и деления согласно табл. 2

X, Y – переменные, тип которых определяется согласно табл. 3

Операции умножения и деления выполнять с помощью операций сдвига. Проверка на четность либо нечетность и знак (если числа со знаком) числа осуществлять с помощью логических побитовых команд.

.

КОН1

10

КОН2

32

Таблица 1.

оп1

+

оп2

*

оп3

/

Таблица 2.

Таблица 3.

X

char

Y

int

dw 16

db 8

mov ax,[100]

mov bx,ax

mov cl,3

shl ax,cl

mov cl,1

shl bx,cl

add bx,ax

mov cl,5

shr bx,cl

xor ax,ax

mov al,[102]

cbw

add bx,ax

mov ax,bx

and ax,0001

mov [300],ax

and ax,8000

mov [400],ax

Вывод: Используя команды программы DEBUG и команды языка Ассемблера, мы изучили форматы и правила работы с командами манипулирования битами микропроцессора i8086.

Соседние файлы в папке Лабораторные работы