Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Указания по организации самостоятельной работы. Изучение арифметических и логических команд МП і80х86




Изучение арифметических и логических команд МП і80х86.

Цель работы: Изучить арифметические и логические команды МП і80х86 для обработки целых беззнаковых чисел, основные приемы логического анализа данных.

Перед работой необходимо проработать теоретический материал по литературе [2, 4-6] и конспект лекций, ознакомиться с форматами арифметических и логических операторов, принципами записи операндов.

2.1.1. Основные арифметические команды МП і80х86. Для работы с целыми двоичными числами целочисленное АЛУ микропроцессора і80х86 поддерживает более десятка арифметических команд. Основными командами данной группы являются команды сложения, вычитания, умножения и деления.

Команды сложения и вычитания:

add op1,op2 команда сложения (addition), действие: op1:=op1+op2;

sub op2,op2 команда вычитания (subtraction), действие: op1:=op1+op2.

В качестве операндов допускается использовать регистры общего назначения или ячейки памяти размером в байт или слово. Операнды должны совпадать по разрядности и не могут одновременно быть ячейками памяти. Второй операнд может быть представлен непосредственным значением. Команды изменяют флаги переноса СF, переполнения OF, знака SF и нуля ZF.

add BH,15 BH:=BH+15;

sub SI, w SI:=SI+w.

Команды положительного и отрицательного приращения (инкремента и декремента):

inc op инкремент (increment), действие op:=op+1;

dec op декремент (decrement), действие op:=op-1;

В качестве операнда допускается использовать регистр или ячейку памяти размером в байт или слово. Команды inc ор и dec ор эквивалентны командам add op,1 и sub op,1 соответственно, за исключением того, что не изменяют флаг переноса CF, занимают меньший объем памяти и выполняются быстрее соответствующих универсальных команд сложения и вычитания.

Команда умножения целых чисел без знака:

mul op умножение (multiply): AX:=AL*op8, (DX,AX):=AX*op16.

Операнд, указываемый в команде, является одним из сомножителей. Он может быть регистром или ячейкой памяти размером в байт или слово, но не может быть непосредственным операндом. Местонахождение второго сомножителя фиксировано: при умножении байтов он берется из регистра AL, а при умножении слов из регистра AX. Местонахождение результата, имеющего разрядность 2n при умножении n -значных чисел, также фиксировано и не указывается в команде: при умножении байтов результат размером в слово заносится в AX, при умножении слов результат размером в двойное слово заносится в регистровую пару (DX, AX), в AX – младшее слово, в DX – старшее слово. При значениях флагов CF=OF=1 произведение занимает двойной формат, при CF=OF=0 для произведения достаточно формата сомножителей.

Примеры команды умножения:

mul BL AX=AL*BL;

mul CX (DX,AX):=AX*CX.

Команда деления целых чисел без знака:

div op деление (divide): DX:=(DX,AX) mod op16, AX:=(DX,AX) div op16;

AH:= AX mod op8; AL:=AX div op8.

Местонахождение первого операнда (делимого) фиксировано и явно в команде не указывается. Указывается только второй операнд, который может находится находиться в регистре или ячейке памяти, но не может быть непосредственным значением. При делении слова на байт делимое должно находиться в регистре AX, при делении двойного слова на слово делимое должно находиться в регистровой паре (DX, AX), в AX – младшее слово, в DX – старшее слово. В области целых чисел получение точного результата от деления невозможно. Поэтому под делением подразумевается получение сразу двух величин: неполного частного div и остатка от деления mod, которые заносятся в младшую и старшую части делимого соответственно.

Примеры команды деления:

div BL AH:= AX mod BL; AL:=AX div BL;

div CX DX:=(DX,AX) mod CX, AX:=(DX,AX) div CX

2.1.2. Основные логические команды МП і80х86. Основными логическими командами микропроцессора являются:

or op1, op2 логическое или; действие: op1:=ор1 or op2;

and op1, op2 логическое и; действие: op1:=ор1 and op2;

xor op1, op2 исключающее или; действие: op1:=ор1 xor op2.

Указанные команды используются для выполнения операций поразрядного маскирования: and – для установки нулей в заданных разрядах, or – для установки единиц, xor – для выяснения совпадений значений битов первого операнда с маской. В качестве первого операнда в командах and, or, xor можно использовать регистры общего назначения и ячейки памяти, в качестве второго – дополнительно можно использовать непосредственное значение. Оба операнда одновременно не могут быть ячейками памяти. Команды изменяют флаги SF, ZF, PF. Таблицы истинности, а так же примеры поразрядных логических операций приводятся в таблице 2.1.

Таблица 2.1

Таблицы истинности, а так же примеры поразрядных логических операций

and (и) or (или) xor (искл. или)
Вход Выход Вход Выход Вход Выход
А В Q A B Q А В Q
                 
                 
                 
                 
Пример поразрядного маскирования АND Пример поразрядного маскирования OR Пример поразрядного маскирования ХOR
op1 хххххххх op1 хххххххх op1  
op2   op2   op2  
Результат х0хх0х0х Результат ххх1хх1х Результат  
                     

Команда поразрядного инвертирования:

not op логическое not, действие: op:= not (op),

выполняет изменение значений двоичных разрядов операнда на противоположные.

Для проведения контрольного сравнения битов целесообразно применять команду test op1,op2, которая полностью эквивалентна and, за исключением того, что результат операции логического умножения не сохраняется, а устанавливаются только флаги (SF, ZF, PF). Примеры команд:

or AL, 00100000 данная команда устанавливает единицу в 5–м бите AL;
and AH, 11011111 данная команда устанавливает нуль в 5–м бите AН.

Дополняют совокупность логических операций команды логического сдвига. Команда shl op, n (CL) осуществляет сдвиг влево всех битов операнда, а в младшие разряды добавляются нули. Старший бит операнда поступает в флаг переноса СF. В качестве первого операнда могут выступать регистры общего назначения и ячейки памяти, в качестве второго – непосредственное значение числа сдвигаемых битов, или занесенное в регистр–счетчик CL. Команда shr op, n (CL) выполняет сдвиг всех битов операнда вправо; механизм работы и синтаксис аналогичен shl. Пример:

shr BX, 5 Выполнение сдвига вправо всех разрядов в BX на 5 битов.

 

2.2. Описание лабораторной установки.

Лабораторная работа выполняется в индивидуальном порядке. На рабочем месте каждого студента установлен ПК типа IBM PC/AT c инсталлированным на нем программным обеспечением: операционной системой MS–DOS v. 6.22 – 7, оболочкой для управления файлами типа NC, компилятором языка программирования высокого уровня Borland Turbo Pascal v. 7.0.

2.3. Порядок проведения работы и указания по ее выполнению.

Перед началом выполнения практической части лабораторной работы проводится экспресс–контроль знаний по форматам фрифметических и логических команд МП і80х86. При подготовке к лабораторной работе необходимо составить предварительные варианты листингов программ, указываемых в пунктах практического выполнения работы.

2.3.1. Изучение принципов логического анализа данных. Необходимо разработать программу, выводящую на экран значение каждой из 4-х тетрад машинного слова. Значения тестируемого машинного слова w выбираются в соответствие с номером варианта из таблицы 2.2.

Таблица 2.2.

Значения тестируемого машинного слова согласно вариантам

№ вар.                    
w 2582h 8243h 17F1h 6257h 8A54h C421h 4E91h 3729h A582h 2A8Bh
№ вар.                    
w 5791h 1A43h F2E1h 6F51h 5A94h C412h 4791h 6A29h 7582h 5D8Ch

 

Анализ тетрад слова основан на независимом выделении значений в младших и старших тетрадах байтов, входящих в слово, путем применения операций логического поразрядного “ и ”и логического сдвига. Пример программы анализа тетрад машинного слова 2832h приводится ниже:

Program lab21;

var раздел описаний идентификаторов;

w:word; ввод в раздел описаний идентификатора слова w; b1,b2,b3,b4:byte; и идентификаторов его тетрад - b1,b2,b3,b4;

begin начало записи операторов программы;

asm начало записи ассемблерных операторов;

mov w, 2832h; ввод значения 2832h в слово w;




Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 496; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.