Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_Sistemnyy_analiz.doc
Скачиваний:
7
Добавлен:
27.09.2019
Размер:
1.12 Mб
Скачать

12. Циклический вычислительный процесс

Цикл.программы строятся при реализации цикл.выч. процессов. Они заним-т меньший объем памяти. Затраченное машинное время будет большим, чем в аналогичной программе без цикла, так как возникает необх-ть в доп.группе команд. Писать цикл.программы наиболее удобно, начиная с рабочей части. Затем пишется проверка окончания цикла. Построение цикл.программы заканч-ся введением в программу команд, обеспечивающих передачу упр-я нач.команде и дальнейшим выч-ям. Достоинство: цикл. программы занимают меньше ячеек памяти. //Цикл — разновидность управляющей конструкции в высокоур-х языках программ-я, предназначенная для организации многократного испол-я набора инструкций.Виды циклов: Безусловные циклы - циклы, выход из которых не предусмотрен логикой программы. Специальных синтаксических средств для создания бесконечных циклов, ввиду их нетипичности, языки программирования не предусматривают, поэтому такие циклы создаются с помощью конструкций, предназначенных для создания обычных (или условных) циклов. Для обеспечения бесконечного повторения проверка условия в таком цикле либо отсутствует, либо заменяется константным значением.

Цикл с предусловием - цикл, который выполняется пока истинно некоторое условие, указанное перед его началом. Это условие проверяется до выполнения тела цикла, поэтому тело может быть не выполнено ни разу. В большинстве процедурных языков программирования реализуется оператором while.На языке Си:while(<условие>) // {<тело цикла>}Цикл с постусловием — цикл, в котором условие проверяется после выполнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один раз. На языке Си:

do // {<тело цикла>} // while(<условие>)

8.Адресация оперативной памяти. Сегментные регистры.

При использовании сегментированных моделей памяти для формир-я любого адреса нужны два числа – адрес начала сегмента и смещения искомого байта относительно этого числа. ОС могут размещать сегменты, с которыми работает программа пользователя, в разных местах памяти и даже временно записывать их на диск, если памяти не хватает. Сущ-т шесть 16-битных регистров: CS, DS, ES, FS, GS, SS, использ-х для хран-я селекторов.//DS, ES, FS, GS наз-ся регистрами сегментов данных. CS – отвечает за сегмент кода. SS – отв-т за сегмент стека. CS сод-т программу, исполняющуюся в данный момент, след-но, запись нового селектора в этот регистр приводит к тому, что далее будет исполнена не следующая по тексту программы команда, а команда из когда, находящегося в другом сегменте, с тем же смещением. Смещение очередной выполняемой команды всегда хранится в специальном регистре EIP.

9. Система команд процессора 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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]