Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Система команд процессора i32. Способы адресации.Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Всего 8 адресаций оперативной памяти: 1. Регистровая. Операнды могут располагаться в любых регистрах общего назначения и сегментных регистрах. mov eax,ebx – содержимое регистра ebx пересылается в eax. 2. Непосредственная. Команды (все арифметические команды, кроме деления) позволяют указывать один из операндов в тексте программы, например mov eax,2 помещает в регистр EAX число 2. 3. Прямая. Если операнд - слово, то команда mov eax,es:0001 поместит это слово в регистр EAX. если в сегментном регистре ES, была описана переменная word_var размером в слово, можно записать ту же команду как mov eax,es:word_var. В таком случае ассемблер сам заменит слово «word_var» на соответствующий адрес. 4.Косвенная. Mov eax,[ebx] – содержимое регистра ebx берется как адрес источника. 5.По базе со сдвигом. mov eax,[ebx+2] - помещает в регистр EAX слово, находящееся в сегменте, указанном в DS, со смещением на 2 большим, чем число, находящееся в EBX. 6.Косвенная с масштабированием. C его помощью можно прочитать элемент массива слов, 2-ых слов или 4-ых слов, поместив номер элемента в регистр: mov ax,[esi*2]+2. Нельзя использовать SI, DI, BP или SP, которые можно было использовать в предыдущих вариантах. 7.По базе с индексированием. mov eax,[ebx+esi+2] - В регистр EAX помещается слово из ячейки памяти со смещением, равным сумме чисел, содержащихся в EBX и ESI, и числа 2. 8. По базе с индексированием и масштабированием Mov eax,[eax+4*eax+2] – Смещение может быть байтом или двойным словом. Если ESP или EBP используются в роли базового регистра, селектор сегмента операнда берется по умолчанию из регистра SS, во всех остальных случаях — из DS. Система команд процессора i32. Машинная обработка. Байт способа адресации. Каждая команда состоит из нескольких полей (до 6). 1.Префикс. – может содержать от 0 до 4 однобайтных префиксов. Это необязательная часть инструкции, позволяет изменить некоторые особенности ее выполнения. 2.Код операции. – действие команды, которое должен выполнить процессор (содержит или 1 или 2 байта). 3. Mod R/M. – байт способа адресации, показывает способы адресации.
mod – режим адресации R/O – указывает регистр или является продолжением кода команды. R/M – указывает регистр или режим адресации.
Mod 00 – используется адресация без смещения; 01 – с 8-ми битными смещениями; 10 – с 8-ми битными или с 16-, либо с 32-битными смещениями; 11. R/M имеет различия между 16- и 32-битной адресацией.
4. Поле SIB. – занимает 1 байт, используется для 32-битной адресации.
S – коэф. масштабирования; I – индексный регистр; B – регистр баз. 5.Смещение. – число, которое масштабируется и добавляется в регистр памяти. Может содержать 0,1,2,4 байта. 6.Непосредственный операнд. (0,1,2,4 байта). Разветвляющий вычислительный процесс. Разветвляющийся вычислительный процесс реализуется по одному из нескольких заранее предусмотренных направлений в зависимости от выполнения некоторого условия (логического выражения). Ветвящийся процесс, включающий в себя две ветви, называется простым, более двух ветвей — сложным. Сложный ветвящийся процесс можно представить с помощью простых ветвящихся процессов. Разветвляющийся вычислительный процесс, содержащий две ветви, схематично может быть изображен с помощью структуры выбора (структура разветвления), которая содержит три элемента: логическое условие, ветвь ДА и ветвь НЕТ. В любом конкретном случае процесс реализуется только по одной ветви, а выполнение остальных исключается.
Разветвляющийся вычислительный процесс реализуется благодаря наличию команд условного перехода. JCC – условный переход. Это набор команд, каждая из которых выполняет переход, если удовлетворяется соответствующее условие. Команды условного перехода: JA – если выше, JNBE – если не ниже или равно, JAE – если выше или равно, JB – если ниже, JC – если перенос, JBE – если ниже или равно, JE – если равно, JZ – если 0, JG – если больше JGE – если больше или равно, JL – если меньше, JNG – если не больше, JNE – если не равно, JNZ – если не 0, JNO – если нет переполнения, JO – если есть переполнение, JPO – если нечетное, JP – если есть четность, JS – если есть знак, JNS - если нет знака. Циклический вычислительный процесс Циклические программы строятся при реализации циклических вычислительных процессов. Они занимают меньший объем памяти. Затраченное машинное время будет большим, чем в аналогичной программе без цикла, так как возникает необходимость в дополнительной группе команд. Писать циклические программы наиболее удобно, начиная с рабочей части. Затем пишется проверка окончания цикла. Построение циклической программы заканчивается введением в программу команд, обеспечивающих передачу управления начальной команде и дальнейшим вычислениям. Достоинство: циклические программы занимают меньше ячеек памяти. Цикл — разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций. Виды циклов Безусловные циклы - циклы, выход из которых не предусмотрен логикой программы. Специальных синтаксических средств для создания бесконечных циклов, ввиду их нетипичности, языки программирования не предусматривают, поэтому такие циклы создаются с помощью конструкций, предназначенных для создания обычных (или условных) циклов. Для обеспечения бесконечного повторения проверка условия в таком цикле либо отсутствует, либо заменяется константным значением. Цикл с предусловием -цикл, который выполняется пока истинно некоторое условие, указанное перед его началом. Это условие проверяется до выполнения тела цикла, поэтому тело может быть не выполнено ни разу. В большинстве процедурных языков программирования реализуется оператором while. На языке Си: while(<условие>) { <тело цикла> } Цикл с постусловием — цикл, в котором условие проверяется после выполнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один раз. На языке Си: do { <тело цикла> } while(<условие>)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2016-04-26; просмотров: 755; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.39 (0.011 с.) |