рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

ФОРМАТ КОМАНД И ИХ КЛАССИФИКАЦИЯ

Работа сделанна в 2001 году

ФОРМАТ КОМАНД И ИХ КЛАССИФИКАЦИЯ - Курсовой Проект, раздел Программирование, - 2001 год - Разработка программы на Ассемблере Формат Команд И Их Классификация. Инструкция Записывается На Отдельной Строке...

ФОРМАТ КОМАНД И ИХ КЛАССИФИКАЦИЯ. Инструкция записывается на отдельной строке и включает до четырех полей, необязательные из которых выделены метка мнемоника команды операнд ы комментарий Метка или символический адрес содержит до 31 символа из букв цифр и знаков Причем цифра не должна стоять первой, а точка, если есть должна быть первой.

Мнемоника - сокращенное обозначение кода операции КОП команды, например мнемоника ADD обозначает сложение addition. Операндами могут быть явно или неявно задаваемые двоичные наборы, над которыми производятся операции. Операнды приводятся в одной из четырех систем счисления и должны оканчиваться символом b B , o O , d D , h H для 2, 8, 10 или 16-ной СС. К шестнадцатиричному числу добавляется слева ноль, если оно начинается с буквы.

Система команд может быть классифицирована по трем основным признакам - длина команды или число занимаемых ею байтов, функциональное назначение и способ адресации. Для МП 1810ВМ86 8086 команда занимает от одного до шести байтов. Первым байтом команды всегда является код операции, например код команды INT XXh равен CD HEX . По функциональному признаку инструкции можно разбить на пять больших групп 1 команды пересылки данных, 2 арифметические команды, 3 логические команды, 4 команды переходов и 5 команды управления.

Существует пять основных способов адресации регистровая, непосредственная, прямая, косвенная и стековая. Большинство остальных способов адресации являются комбинациями или видоизменениями перечисленнных. В первом случае операнд ы располагаются в регистрах микропроцессора МП , например по команде MOV AX,CX пересылается содержимое CX в AX. При непосредственной адресации операнд располагается в памяти непосредственно за КОП, инструкция MOV AL,0f5h записывает число 245 f5 в регистр AL. В случае прямой адресации за КОП следует не сам операнд, а адрес ячейки памяти или внешнего устройства, например команда IN AL,40h вводит байт данных из внешнего устройства с адресом 40h. Косвенная адресация отличается от регистровой тем, что в регистре хранится адрес операнда, т.е. по команде MOV AL, BX в аккумулятор al будет записано число из ячейки памяти с адресом, хранящимся в регистре BX. Стековая адресация производится к операндам расположенным в области памяти, называемой стек. НЕКОТОРЫЕ ОПЕРАТОРЫ, ПРЕДОПРЕДЕЛЁННЫЕ ИМЕНА, ДИРЕКТИВЫ И КОМАНДЫ АССЕМБЛЕРА 80X86 8088 ПРЕДОПРЕДЕЛЕННЫЕ ИМЕНА 1 программный счетчик.

Этот символ отмечает текущий адрес в текущем сегменте.

Полезен при определении длины цепочек байтов или строк. text DB This string has NN letters NN - text NN длине строки text количеству байтов в этой строке. Не путать часть строки NN и константу NN! 2. data - адрес начала сегмента данных. mov ax, data mov ds, ax в сегментном регистре DS теперь адрес сегмента данных. 3. date, time, filename - эти имена во время трансляции заменяются, соответственно на текущие дату, время и имя файла в формате ASCII. ОПЕРАТОРЫ 1 скобки, определяют порядок вычислений 2 например BX означает содержимое ячейки памяти с адресом в регистре bx. Признак косвенной адресации. 3 операторы сложения, вычитания, умножения и деления. mov ax, 2 3 8 2 - 2 в регистр ax будет помещено число 8. 4. MOD - деление по модулю.

Даёт остаток. 5. SHL,SHR - сдвиг операнда влево, вправо. mov si, 01010101b SHR 3 в регистр SI будет загружено число 0Ah 00001010 . 6. NOT - побитовая инверсия. 7. AND,OR,XOR - операции И , ИЛИ , ИСКЛ.ИЛИ . mov dl, 10d OR 5d XOR 7d dl будет равно 8. 8 переназначение сегмента. mov dl, es bx поместить в dl байт данных из сегмента es и отстоящий от его начала на bx байтов смещение . 9. OFFSET - оператор получения смещения адреса относительно начала сегмента то есть количества байтов от начала сегмента до идентификатора адреса . mov bx, OFFSET table ДИРЕКТИВЫ ПСЕВДООПЕРАТОРЫ 1 определяет близкую метку в пределах сегмента . jmp lbl lbl 2 присваивает символическому имени значение выражения. videoram 0B800h присвоение videoram 0B000h 3. . CODE - определяет начало кодового сегмента, то есть сегмента, где располагаются коды программы. 4. .DATA - определяет начало сегмента данных. 5. DB,DW - директивы резервирующие один или несколько байтов DB, или одно или несколько слов DW. .DATA fibs DB 1,1,2,3,5,8,13 rus DB Турбо Ассемблер buf DB 80 DUP 0 резервируется 80 байтов, каждый обнуляется int DW 65535 в двух байтах располагается число FFFFh. Array DW 100 DUP 0 резервируется 100 слов 6. END - обозначает конец программы. .CODE MyPROG точка входа начало программы . команды программы END MyPROG 7. ENDM - окончание блока или макроопределения 8. ENDP - обозначает конец подпрограммы. 9. EQU - присваивает символическому имени или строке значение выражения.

BlkSize EQU 512 BufBlks EQU 4 BufSize EQU BlkSize BufBlks 10. LABEL - определяет метку соответствующего типа. .DATA m byte LABEL BYTE метка m byte типа BYTE позволяет теперь m word DW 0 иметь доступ отдельно к каждому байту данных. CODE m word типа WORD mov m word ,0204h add m byte , 0 теперь в m word хранится код add m byte 1 , 0 3234h,ASCII код 0 равен 30h 11. LOCAL - определяет метки внутри макроопределений как локальные и в каждом макрорасширении вместо них ассемблер вставляет уникальные метки XXXX, где XXXX 0000 FFFF h. Почему XXXX ? Да потому что никому не должно прийти в голову начинать символическое имя с, и транслятор смело может генерировать метки не боясь совпадений. 12. MACRO - задает макроопределение.

Swap MACRO a, b a, b - параметры макро ячейки памяти mov ax, b данное макрооопределение позволяет делать mov bx, a обмен данными между ячейками памяти, в mov a, ax отличие от команды xchg mov b, bx нельзя mov a, b ENDM Вызов этого макроса производится командой Swap m, n 13. .MODEL - определяет размер памяти под данные и код программы. .MODEL tiny под программу, данные и стек отводится один общий сегмент 64 Kb . 14. PROC - определяет начало подрограммы.

Print PROC NEAR здесь команды подпрограммы Print ENDP call Print вызов подпрграммы. 15. .STACK - определяет размер стека. .STACK 200h выделяет 512 байтов для стека. 16. .RADIX base - определяет систему счисления по умолчанию, где base - основание системы счисления 2, 8, 10, 16. . RADIX 8 oct 77 oct равно 63d. 17 начало комментария.

КОМАНДЫ ПЕРЕСЫЛКИ 1. MOV DST,SRC переслать SRC в DST . Здесь и далее содержимое регистра, например регистра AL будет обозначаться - AL или al, а пересылка в комментарии будет обозначаться знаком . mov al, ch al ch . mov cx, dx mov bh, mems содержимое ячейки памяти с символическим адресом mems переслать в регистр BH. Можно mov bh, mems. mov al, bx переслать в аккумулятор содержимое ячейки памяти с адресом находящимся в регистре BX . mov bx,OFFSET src поместить в BX смещение адреса ячейки памяти SRC, в текущем сегменте. mov al, table bx загрузить в аккумулятор элемент таблицы байтов с символическим адресом первого элемента table и отстоящий от этого элемента на bx байтов.

Другие варианты mov al, table bx или mov al, table bx. До выполнения команды mov al, table bx Регистр BX Регистр AL Адрес Код 0010 XX 0800 table 8с 08xx xx 0810 58 После выполнения команды mov al, table bx Регистр BX Регистр AL Адрес Код 0010 58 0800 table 8с 08xx xx 0810 58 2. PUSH RP поместить на вершину стека содержимое пары регистров RP например push bx . 3. POP RP снять с вершины стека два байта и поместить в пару RP например pop ax . 4. XCHG DST, SRC поменять местами содержимое DST и SRC . Оба операнда не могут быть одновременно содержимым ячеек памяти. 5. XLAT SRC извлечь из таблицы с начальным адресом SRC байт данных имеющий номер от начала таблицы AL , и поместить его в AL. Адрес SRC должен находиться в регистре BX. Другой вариант XLATB. .DATA src DB 15d,10h,00110101b, A , B ,166d. CODE mov al,2 в результате выполнения этих трех команд mov bx,OFFSET src в регистр AL будет загружен код xlatb 00110101b 35h 53d ASCII 5 6. IN ACCUM, PORT поместить в аккумулятор AL или AX байт или слово из порта с адресом PORT. Если адрес порта FF то адрес порта может указываться непосредственно, если адрес порта FF, то адрес порта указывается косвенно, через содержимое регистра DX специальная функция регистра общего назначения . in al,0a5h ввести в AL байт данных из ВУ с адресом порта A5h mov dx,379h ввести в аккумулятор AL байт данных из in al, dx внешнего устройства с адресом порта 379h 7. OUT PORT, ACCUM переслать из аккумулятора AL или AX байт или слово в ВУ с символическим адресом PORT. out 0ffh, al mov dx,37Ah переслать слово данных из AX в ВУ с адре- out dx, ax сом порта 37Ah 8. LEA RP,M загрузить в регистр RP эффективный адрес смещение ячейки памяти с символическим адресом M. lea di, rus аналог этой команды - mov di, OFFSET rus. АРИФМЕТИЧЕСКИЕ КОМАНДЫ 1. ADD DST, SRC сложить содержимое SRC и DST и результат переслать в DST. add al, mem byte mem byte однобайтовая ячейка памяти add mem word, dx mem word двухбайтовая ячейка памяти add ch,10001010b 2. INC DST увеличить DST на 1 инкремент DST . inc si SI SI 1. inc count count count 1. 3. SUB DST, SRC вычесть SRC из DST и результат поместить в DST. 4. DEC DST декремент DST . 5. CMP DST, SRC сравнить содержимое DST и SRC. Эта команда выполняет вычитание SRC из DST но разность не помещает в DST и по результату операции воздействует на флаги. условие флаги OF SF ZF CF DST SRC 0 1 0 0 0 DST SRC 0 0 1 0 DST SRC 0 1 1 0 1 0 1 - означает, что флаг может быть равен 0 или 1 в зависимости от значений операндов.

Флаги OF и SF имеют смысл при операциях со знаковыми числами, CF для беззнаковых чисел.

Флаг переполнения OF устанавливается в 1, если в результате операции сложения или вычитания значения переноса в старшиий двоичный разряд и из старшего двоичного разряда не совпадают. По другому определению OF принимает значение 1, если результат превышает диапазон представления соответствующих чисел.

Пусть DST SRC и оба являются однобайтовыми числами, тогда DST 1. 127 2. 127 SRC - 2 - -2 125 OF 0 129 ? OF 1 Во втором примере результат превышает диапазон -128 x 127. Флаг знака SF устанавливается в 1 , если старший бит результата операции равен 1, т.е. при отрицательном результате.

В противном случае сбрасывается.

Флаг нуля ZF устанавливается в 1 при нулевом результате иначе сбрасывается.

Флаг переноса CF 1, если есть перенос из старшего разряда при сложении или есть заем в младший разряд при вычитании.

Иначе флаг сбрасывается.

Для первого примера SF ZF CF 0, для второго SF 1, ZF CF 0.

– Конец работы –

Эта тема принадлежит разделу:

Разработка программы на Ассемблере

При этом, покупая то или иное аппаратное средство, производитель не может а иногда и не хочет дать 100 гарантию, что оно исправно. В связи с этим также стремительно развивался и рынок программных тестирующих… На рынке существует огромное количество отличных диагностических программ, написанных большими корпорациями такими как…

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: ФОРМАТ КОМАНД И ИХ КЛАССИФИКАЦИЯ

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

АССЕМБЛЕР. ЭТАПЫ РАЗРАБОТКИ ПРОГРАММЫ
АССЕМБЛЕР. ЭТАПЫ РАЗРАБОТКИ ПРОГРАММЫ. Язык программирования наиболее полно учитывающий особенности родного микропроцессора и содержащий мнемонические обозначения машинных команд называется Ассембл

ЛОГИЧЕСКИЕ КОМАНДЫ И КОМАНДЫ СДВИГА
ЛОГИЧЕСКИЕ КОМАНДЫ И КОМАНДЫ СДВИГА. AND DST, SRC поразрядное логическое И . mov dh, 10101100b and dh, 0f0h в результате выполнения этих двух команд содержимое DH станет равно 1010b. 2. OR DST, SRC

КОМАНДЫ УПРАВЛЕНИЯ МИКРОПРОЦЕССОРОМ
КОМАНДЫ УПРАВЛЕНИЯ МИКРОПРОЦЕССОРОМ. CLC сбросить флаг переноса CF 0. 2. STC установить флаг переноса CF 1. 3. CMC инвертировать флаг пнреноса. 4. CLD очистить флаг направления DF 0, в этом случае

Технико-математическое описание задачи
Технико-математическое описание задачи. Программа делится на две части Первая часть программы - Сбор сведений - это часть программы, собирающая справки об оборудовании, установленном на ПК, на кото

Требования к функциональным характеристикам
Требования к функциональным характеристикам. При запуске программы на экран должна выводиться аннотация, затем, после нажатия на любую клавишу, должен очищаться экран и появляться меню из трех пунк

Обоснования выбора языка программирования
Обоснования выбора языка программирования. Для написания данной программы был выбран язык ассемблера. В связи с тем, что он наиболее подходит для реализации такого рода задач, т.е. где требу

Постановка задачи
Постановка задачи. Разработать программу тестирования оперативной памяти и сбора сведений о ПК. Реализовать меню, в котором пользователю предлагается выбор из трёх пунктов 1 - сбор сведений о систе

Описание структуры программы
Описание структуры программы. Программа была реализована с помощью нескольких пользовательских процедур и макросов см. таблицу 2 . Довольно часто в программах, особенно больших, приходится нескольк

Описание алгоритма решения задачи
Описание алгоритма решения задачи. Если в оперативной памяти ПК имеется 2 в 20 степени ячеек, то для ссылок на эти ячейки нужны 20-разрядные адреса их принято называть физическими адресами.

Отладка и тестирование
Отладка и тестирование. Тестирование производилось с помощью отладчика Turbo Debugger корпорации Borland. Была выполнена трассировка всей программы. Трассировка - это процесс пошагового выпо

Инструкция к пользователю
Инструкция к пользователю. Для запуска программы выполните файл с именем kurs.com. Вашему вниманию представиться аннотация - внимательно прочитайте её, а затем нажмите любую клавишу на клавиатуре н

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

Структурная схема микропроцессора
Структурная схема микропроцессора. Огромное количество микропроцессоров МП не позволяет рассмотреть их особенности, поэтому выбор пал на родоначальника семейства 80x86 МП К1810ВМ86 88 8086 8088 . Т

Основные положения алгебры логики
Основные положения алгебры логики. В отличие от аналоговых электронных устройств, в цифровых устройствах ЦУ входные и выходные сигналы могут принимать ограниченное количество состояний. В со

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги