русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

LEA r32,mem


Дата добавления: 2015-06-12; просмотров: 616; Нарушение авторских прав


Команда вычисляет исполнительный адрес второго операнда, находящегося в памяти, и помещает его в регистр первого операнда.

Примеры:

lea EBX,Exword;в регистр EBX загружается исполнительный адресExword

lea EBX,[EDI+10] ; в регистр EBX загружается адрес l0-го байта относительно точки, на которую указывает адрес в регистре EDI.

Пример.Написать процедуру, выполняющую суммирование массива из 10 чисел размером слово.

Вариант 1 (используется адрес): Вариант 2 (используется смещение):
mov AX,0 mov AX,0
lea EBX,MAS mov EBX,0
mov ECX,10 mov ECX,10
cycl: add AX,[EBX] cycl: add AX,MAS[EBX*2]
add EBX,2 add EBX,1
loop cycl loop cycl

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

В том случае, если элементы просматриваются не подряд, адрес элемента может рассчитываться по его номеру (числа нумерованы с единицы):

Aисп = Aначала+(<Номер>-1)*<длина элемента>.

Полученный по формуле адрес записывается в 32-х разрядный регистр и используется для доступа к элементу.

Пример.Написать фрагмент, который извлекает из массива, включающего 10 чисел размером слово, число с номером n (n£10).

mov EBX,N; номер числа

dec EBX; вычитаем 1

mov AX,MAS[EBX*2]; результат в AX

Моделирование матриц.Значения матрицы могут располагаться в памяти по строкам и по столбцам. Для определенности будем считать, что матрица расположена в памяти построчно, как в Паскале и С++.

При обработке элементов матрицы следует различать просмотр по строкам, просмотр по столбцам, просмотр по диагоналям и произвольный доступ.

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



Пример.Написать фрагмент определения максимального элемента матрицы A(3,5).

mov EBX,0; номер элемента 0

mov ECX,14; счетчик цикла

mov AX,A; заносим первое число

cycl: cmp AX,A[EBX*2+2]; сравниваем числа

jge next; если больше, то перейти к следующему

mov AX,A[EBX*2+2]; если меньше, то запомнить

next: add EBX,1; переходим к следующему числу



<== предыдущая лекция | следующая лекция ==>
Loop begin_loop | REPNE Команда


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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