🗊Презентация Способы адресации памяти

Нажмите для полного просмотра!
Способы адресации памяти, слайд №1Способы адресации памяти, слайд №2Способы адресации памяти, слайд №3Способы адресации памяти, слайд №4Способы адресации памяти, слайд №5Способы адресации памяти, слайд №6Способы адресации памяти, слайд №7Способы адресации памяти, слайд №8Способы адресации памяти, слайд №9Способы адресации памяти, слайд №10Способы адресации памяти, слайд №11Способы адресации памяти, слайд №12Способы адресации памяти, слайд №13Способы адресации памяти, слайд №14Способы адресации памяти, слайд №15

Вы можете ознакомиться и скачать презентацию на тему Способы адресации памяти. Доклад-сообщение содержит 15 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Способы адресации памяти, слайд №1
Описание слайда:

Слайд 2





Способы адресации
Способом, или режимом адресации называют процедуру нахождения операнда для выполняемой команды. Если команда использует два операнда, то для каждого из них должен быть задан способ адресации, причем режим адресации первого и второго операнда могут как совпадать, так и различаться. Операнды команды могут находиться в разных местах: непосредственно в составе кода команды, в каком-либо регистре, в ячейке памяти; в последнем случае существует несколько возможностей указания его адреса. Способы адресации являются элементом архитектуры процессора, отражая заложенные в нем возможности поискa операндов.
Описание слайда:
Способы адресации Способом, или режимом адресации называют процедуру нахождения операнда для выполняемой команды. Если команда использует два операнда, то для каждого из них должен быть задан способ адресации, причем режим адресации первого и второго операнда могут как совпадать, так и различаться. Операнды команды могут находиться в разных местах: непосредственно в составе кода команды, в каком-либо регистре, в ячейке памяти; в последнем случае существует несколько возможностей указания его адреса. Способы адресации являются элементом архитектуры процессора, отражая заложенные в нем возможности поискa операндов.

Слайд 3





Регистровая адресация
Операнд (байт или слово) находится в регистре. Этот способ адресации применим ко всем программно-адресуемым регистрам процессора (кроме IP).
inc	CH			;Плюс 1 к содержимому СН
push	DS			;DS сохраняется в стеке
xchg	ВХ,ВР		;ВХ и ВР обмениваются содержимым
mov	ES,AX		;Содержимое AX пересылается в ES
mov 	AL,BH		;8-разрядный режим
mov 	AХ,BХ		;16-разрядный режим
mov 	ЕAХ,ЕBХ	;32-разрядный режим
Описание слайда:
Регистровая адресация Операнд (байт или слово) находится в регистре. Этот способ адресации применим ко всем программно-адресуемым регистрам процессора (кроме IP). inc CH ;Плюс 1 к содержимому СН push DS ;DS сохраняется в стеке xchg ВХ,ВР ;ВХ и ВР обмениваются содержимым mov ES,AX ;Содержимое AX пересылается в ES mov AL,BH ;8-разрядный режим mov AХ,BХ ;16-разрядный режим mov ЕAХ,ЕBХ ;32-разрядный режим

Слайд 4





Непосредственная адресация
Операнд (байт или слово) указывается в команде и после трансляции поступает в код команды; он может иметь любой смысл (число, адрес, код ASCII), а также быть представлен в виде символического обозначения.
mov	АН,40h		;Число 40h загружается в АН
mov	АL,’*’			;Код ASCII символа ‘*’ загружается в AL
int	21h				;Команда прерывания с аргументом 21h
limit = 528			;Число 528 получает обозначение limit
mov	СХ,limit		;Число, обозначенное limit, загружается
 							;в CX
Пересылка относительных адресов (смещений):
; Сегмент данных
mes	db	"Урок 1”	;Строка символов
;Сегмент команд 
mov	DX,offset mes		;Адрес строки засылается в DX
Описание слайда:
Непосредственная адресация Операнд (байт или слово) указывается в команде и после трансляции поступает в код команды; он может иметь любой смысл (число, адрес, код ASCII), а также быть представлен в виде символического обозначения. mov АН,40h ;Число 40h загружается в АН mov АL,’*’ ;Код ASCII символа ‘*’ загружается в AL int 21h ;Команда прерывания с аргументом 21h limit = 528 ;Число 528 получает обозначение limit mov СХ,limit ;Число, обозначенное limit, загружается ;в CX Пересылка относительных адресов (смещений): ; Сегмент данных mes db "Урок 1” ;Строка символов ;Сегмент команд mov DX,offset mes ;Адрес строки засылается в DX

Слайд 5





Прямая адресация памяти
Адресуется память; адрес ячейки памяти (слова или байта) указывается в команде (обычно в символической форме) и поступает в код команды:
;Сегмент данных
mem1		dw	0	;Слово памяти содержит 0
mem2		db	230	;Байт памяти содержит 230
; Сегмент команд
inc	 mem1	 ;Содержимое слова mem1 увеличивается на 1
mov	DX,mem1		;Содержимое слова mem1 загружается в DX
mov	AL,mem2		;Содержимое байта mem2 загружается в AL
Команды процессора, обращающиеся к памяти, могут в качестве первого байта своего кода содержать префикс замены сегмента, с помощью которого процессор определяет, из какого сегментного регистра взять сегментный адрес. Если префикс отсутствует, сегментный адрес берется из регистра DS (хотя для него тоже предусмотрен свой префикс). В ряде случаев префикс замены сегмента должен указываться в программе в явной форме. Такая ситуация возникает, например, если данные расположены в сегменте команд, что типично для резидентных обработчиков прерываний:
mov	АХ, СS : mem
Описание слайда:
Прямая адресация памяти Адресуется память; адрес ячейки памяти (слова или байта) указывается в команде (обычно в символической форме) и поступает в код команды: ;Сегмент данных mem1 dw 0 ;Слово памяти содержит 0 mem2 db 230 ;Байт памяти содержит 230 ; Сегмент команд inc mem1 ;Содержимое слова mem1 увеличивается на 1 mov DX,mem1 ;Содержимое слова mem1 загружается в DX mov AL,mem2 ;Содержимое байта mem2 загружается в AL Команды процессора, обращающиеся к памяти, могут в качестве первого байта своего кода содержать префикс замены сегмента, с помощью которого процессор определяет, из какого сегментного регистра взять сегментный адрес. Если префикс отсутствует, сегментный адрес берется из регистра DS (хотя для него тоже предусмотрен свой префикс). В ряде случаев префикс замены сегмента должен указываться в программе в явной форме. Такая ситуация возникает, например, если данные расположены в сегменте команд, что типично для резидентных обработчиков прерываний: mov АХ, СS : mem

Слайд 6





Вывод символов в левый верхний угол экрана 
mov	АХ,0В800h			;Сегментный адрес видеобуфера
mov	ЕS,АХ					;Отправим его в ЕS
mov	byte	ptr	ES:0,’!’		;Символ на 1-е знакоместо экрана
mov	byte	ptr	ES:2,’!’		;Символ на 2-е знакоместо экрана
Настроив регистр Е5 на сегментный адрес видеобуфера В800h, мы пересылаем код знака «!» сначала по относительному адресу 0 (в самое начало видеобуфера, в байт со смещением 0), а затем на следующее знакоместо, имеющее смещение 2 (в нечетных байтах видеобуфера хранятся атрибуты символов, т.е. цвет символов и фона под ними). В обеих командах необходимо с помощью обозначения ЕS: указать сегментный регистр, который используется для адресации памяти. Встретившись с этим обозначением, транслятор включит в код команды префикс замены сегмента, в данном случае код 26h.
Что будет, если использовать word ptr?
mov 	AL,’!’
mov 	ES:0,AL
Описание слайда:
Вывод символов в левый верхний угол экрана mov АХ,0В800h ;Сегментный адрес видеобуфера mov ЕS,АХ ;Отправим его в ЕS mov byte ptr ES:0,’!’ ;Символ на 1-е знакоместо экрана mov byte ptr ES:2,’!’ ;Символ на 2-е знакоместо экрана Настроив регистр Е5 на сегментный адрес видеобуфера В800h, мы пересылаем код знака «!» сначала по относительному адресу 0 (в самое начало видеобуфера, в байт со смещением 0), а затем на следующее знакоместо, имеющее смещение 2 (в нечетных байтах видеобуфера хранятся атрибуты символов, т.е. цвет символов и фона под ними). В обеих командах необходимо с помощью обозначения ЕS: указать сегментный регистр, который используется для адресации памяти. Встретившись с этим обозначением, транслятор включит в код команды префикс замены сегмента, в данном случае код 26h. Что будет, если использовать word ptr? mov AL,’!’ mov ES:0,AL

Слайд 7





Регистровая косвенная адресация памяти
Адресуется память (байт или слово). Относительный адрес ячейки памяти находится в регистре, обозначение которого заключается в прямые скобки. В МП 86 косвенная адресация допустима только через регистры ВХ, ВР, SI и DI. При использовании регистров ВХ или ВР адресацию называют базовой, при использовании регистров DI или SI — индексной.
mov	AX,0B800h				;Сегментный адрес
mov	ЕS,АХ						;видеобуфера в ЕS
mov	ВХ,2000					;Смещение к середине экрана
mov	byte	ptr	ЕS:[ВХ],'!'	;Символ на экран
Если косвенная адресация осуществляется через один из регистров ВХ, SI или DI, то подразумевается сегмент, адресуемый через DS, поэтому при адресации через этот регистр обозначение DS: можно опустить:
mov	AX,0B800h			;Сегментный адрес
mov	DS,АХ				;видеобуфера в DS
mov	ВХ,2000				;Смещение к середине экрана
mov	byte	ptr	[ВХ],'!'		;Символ на экран
Описание слайда:
Регистровая косвенная адресация памяти Адресуется память (байт или слово). Относительный адрес ячейки памяти находится в регистре, обозначение которого заключается в прямые скобки. В МП 86 косвенная адресация допустима только через регистры ВХ, ВР, SI и DI. При использовании регистров ВХ или ВР адресацию называют базовой, при использовании регистров DI или SI — индексной. mov AX,0B800h ;Сегментный адрес mov ЕS,АХ ;видеобуфера в ЕS mov ВХ,2000 ;Смещение к середине экрана mov byte ptr ЕS:[ВХ],'!' ;Символ на экран Если косвенная адресация осуществляется через один из регистров ВХ, SI или DI, то подразумевается сегмент, адресуемый через DS, поэтому при адресации через этот регистр обозначение DS: можно опустить: mov AX,0B800h ;Сегментный адрес mov DS,АХ ;видеобуфера в DS mov ВХ,2000 ;Смещение к середине экрана mov byte ptr [ВХ],'!' ;Символ на экран

Слайд 8





Регистровая косвенная адресация памяти
Регистры ВХ, SI и DI в данном применении совершенно равнозначны, и с одинаковым успехом можно воспользоваться любим из них:
mov	DI,2000			;Смещение к середине экрана
mov	byte	ptr	[DI],'!'	;Символ на экран
Регистр же ВР специально предназначен для работы со стеком, и при адресации через этот регистр в режимах косвенной адресации подразумевается сегмент стека; другими словами, в качестве сегментного регистра по умолчанию используется регистр SS.
Обычно косвенная адресация к стеку используется в тех случаях, когда необходимо обратиться к данным, содержащимся в стеке, без изъятия их оттуда (например, если эти данные приходится считывать неоднократно).
Описание слайда:
Регистровая косвенная адресация памяти Регистры ВХ, SI и DI в данном применении совершенно равнозначны, и с одинаковым успехом можно воспользоваться любим из них: mov DI,2000 ;Смещение к середине экрана mov byte ptr [DI],'!' ;Символ на экран Регистр же ВР специально предназначен для работы со стеком, и при адресации через этот регистр в режимах косвенной адресации подразумевается сегмент стека; другими словами, в качестве сегментного регистра по умолчанию используется регистр SS. Обычно косвенная адресация к стеку используется в тех случаях, когда необходимо обратиться к данным, содержащимся в стеке, без изъятия их оттуда (например, если эти данные приходится считывать неоднократно).

Слайд 9





Регистровая косвенная адресация со смещением
Адресуется память (байт или слово); относительный адрес операнда определяется, как сумма содержимого регистра ВХ, ВР, SI или DI и указанной в команде константы, иногда называемой смещением. Смещение может быть числом или адресом.
mov	AX,0B800h				;Сегментный адрес
mov	ЕS, АХ					;видеобуфера в ЕS
mov	DI,80*2*24				;Смещение к нижней строке экрана
mov	byte	ptr	ES:[DI], ‘O’		;Символ на экран
mov	byte	ptr	ES:2[DI], ‘K’		;Символ в следующую позицию
mov	byte	ptr	ES:4[DI], ‘!’		;Символ в следующую позицию 
Иногда можно встретиться с альтернативными обозначениями того же способа адресации, которые допускает ассемблер. Вместо, например, 4[ВХ] можно с таким же успехом написать [ВХ+4], 4+[ВХ] или [ВХ]+4.
Описание слайда:
Регистровая косвенная адресация со смещением Адресуется память (байт или слово); относительный адрес операнда определяется, как сумма содержимого регистра ВХ, ВР, SI или DI и указанной в команде константы, иногда называемой смещением. Смещение может быть числом или адресом. mov AX,0B800h ;Сегментный адрес mov ЕS, АХ ;видеобуфера в ЕS mov DI,80*2*24 ;Смещение к нижней строке экрана mov byte ptr ES:[DI], ‘O’ ;Символ на экран mov byte ptr ES:2[DI], ‘K’ ;Символ в следующую позицию mov byte ptr ES:4[DI], ‘!’ ;Символ в следующую позицию Иногда можно встретиться с альтернативными обозначениями того же способа адресации, которые допускает ассемблер. Вместо, например, 4[ВХ] можно с таким же успехом написать [ВХ+4], 4+[ВХ] или [ВХ]+4.

Слайд 10





Пример использования базовой адресации со смещением при обращении к стеку
;Основная программа
push	DS			;В стек загружаются значения
push	ES			;трех регистров,
push	SI			;передаваемых подпрограмме
call mysub		;Вызов подпрограммы mysub
						;использующей эти параметры
;Подпрограмма mysub
mov	BP,SP			;Поместим в ВР текущий адрес вершины стека
mov	AX,2[ВР]		;Читаем в АХ последний параметр (SІ)
mov	ВХ,4[ВР]		;Читаем в ВХ предыдущий параметр (ЕS)
mov	CX,6[ВР]		;Читаем в СХ первый параметр (DS)
Если бы подпрограмма просто сняла со стека находящиеся там параметры, она первым делом изъяла бы из стека адрес возврата, и лишила бы себя возможности вернуться в основную программу
Описание слайда:
Пример использования базовой адресации со смещением при обращении к стеку ;Основная программа push DS ;В стек загружаются значения push ES ;трех регистров, push SI ;передаваемых подпрограмме call mysub ;Вызов подпрограммы mysub ;использующей эти параметры ;Подпрограмма mysub mov BP,SP ;Поместим в ВР текущий адрес вершины стека mov AX,2[ВР] ;Читаем в АХ последний параметр (SІ) mov ВХ,4[ВР] ;Читаем в ВХ предыдущий параметр (ЕS) mov CX,6[ВР] ;Читаем в СХ первый параметр (DS) Если бы подпрограмма просто сняла со стека находящиеся там параметры, она первым делом изъяла бы из стека адрес возврата, и лишила бы себя возможности вернуться в основную программу

Слайд 11





Пример заполнения массива из 10000 слов натуральным рядом чисел
;Сегмент данных
аггау		dw	10000 dup (?)
;Сегмент команд
				mov	SI,0	 ;Начальное значение индекса элемента в массиве
				mov	AX,0			;Первое число-заполнитель
				mov	CX,10000	;Число шагов в цикле (всегда в СХ)
fill:			mov	array[SI],АХ		;3анесение числа в элемент массива
				inc	АХ			;Инкремент числа-заполнителя
				add	SI,2	;Смещение в массиве к следующему слову
				loop	fill		;Возврат на метку fill (СХ раз)
Описание слайда:
Пример заполнения массива из 10000 слов натуральным рядом чисел ;Сегмент данных аггау dw 10000 dup (?) ;Сегмент команд mov SI,0 ;Начальное значение индекса элемента в массиве mov AX,0 ;Первое число-заполнитель mov CX,10000 ;Число шагов в цикле (всегда в СХ) fill: mov array[SI],АХ ;3анесение числа в элемент массива inc АХ ;Инкремент числа-заполнителя add SI,2 ;Смещение в массиве к следующему слову loop fill ;Возврат на метку fill (СХ раз)

Слайд 12





Базово-индексная адресация
Адресуется память (байт или слово). Относительный адрес операнда определяется, как сумма содержимого следующих пар регистров:
[ВХ] [SІ]		(подразумевается DS:[ВХ][SI])
[ВХ] [DІ]		(подразумевается DS:[ВХ][DІ])
[ВР][SI]		(подразумевается SS:[ВР][SI])
[ВР][DІ]		(подразумевается SS:[ВР][DІ])
Это чрезвычайно распространенный способ адресации, особенно, при работе с массивами. В нем используются два регистра, при этом одним из них должен быть базовый (ВХ или ВР), а другим — индексный (SI или DI). Как правило, в одном из регистров находится адрес массива, а в другом — индекс в нем, при этом совершенно безразлично, в каком что.
Описание слайда:
Базово-индексная адресация Адресуется память (байт или слово). Относительный адрес операнда определяется, как сумма содержимого следующих пар регистров: [ВХ] [SІ] (подразумевается DS:[ВХ][SI]) [ВХ] [DІ] (подразумевается DS:[ВХ][DІ]) [ВР][SI] (подразумевается SS:[ВР][SI]) [ВР][DІ] (подразумевается SS:[ВР][DІ]) Это чрезвычайно распространенный способ адресации, особенно, при работе с массивами. В нем используются два регистра, при этом одним из них должен быть базовый (ВХ или ВР), а другим — индексный (SI или DI). Как правило, в одном из регистров находится адрес массива, а в другом — индекс в нем, при этом совершенно безразлично, в каком что.

Слайд 13





Базово-индексная адресация
;Сегмент данных
аггау		dw	10000 dup (?)
;Сегмент команд
mov	ВХ,offset аггау	;Базовый адрес массива в базовом регистре
mov	SI,0			;Начальное значение индекса элемента в массиве
mov	АХ, 0			;Первое число-заполнитель
mov	СХ,10000		;Число шагов в цикле
fill:	mov	[ВХ] [SI] ,АХ		;Отправим число в массив
inc	АХ					;Инкремент числа-заполнителя
add	SI,2			;Смещение в массиве к следующему слову
lоор	fill				;На метку fill (СХ раз) 
Повышение эффективности достигается за счет того, что команда занесения числа в элемент массива оказывается короче (так как в нее не входит адрес массива) и выполняется быстрее, так как этот адрес не надо каждый раз считывать из памяти.
Описание слайда:
Базово-индексная адресация ;Сегмент данных аггау dw 10000 dup (?) ;Сегмент команд mov ВХ,offset аггау ;Базовый адрес массива в базовом регистре mov SI,0 ;Начальное значение индекса элемента в массиве mov АХ, 0 ;Первое число-заполнитель mov СХ,10000 ;Число шагов в цикле fill: mov [ВХ] [SI] ,АХ ;Отправим число в массив inc АХ ;Инкремент числа-заполнителя add SI,2 ;Смещение в массиве к следующему слову lоор fill ;На метку fill (СХ раз) Повышение эффективности достигается за счет того, что команда занесения числа в элемент массива оказывается короче (так как в нее не входит адрес массива) и выполняется быстрее, так как этот адрес не надо каждый раз считывать из памяти.

Слайд 14





Базово-индексная адресация со смещением
Адресуется память (байт или слово). Относительный адрес операнда определяется как сумма содержимого двух регистров и смещения.
Sims	db	‘QWERTUIOP{}’
			db	‘ЙЦУКЕНГШЩЗХЪ’
Последовательность команд
mov	ВХ,12		;Число байтов в строке
mov	SI,6
mov	DL,Sims[ВХ] [SI]
загрузит в регистр DL элемент с индексом 6 из второго ряда, т.е. код АSСІІ буквы Г. Тог же результат можно получить, загрузив в один из регистров не индекс, а адрес массива:
mov	ВХ,offset	Sims
mov	SI,6
mov	DL,12[ВХ][SI]
Описание слайда:
Базово-индексная адресация со смещением Адресуется память (байт или слово). Относительный адрес операнда определяется как сумма содержимого двух регистров и смещения. Sims db ‘QWERTUIOP{}’ db ‘ЙЦУКЕНГШЩЗХЪ’ Последовательность команд mov ВХ,12 ;Число байтов в строке mov SI,6 mov DL,Sims[ВХ] [SI] загрузит в регистр DL элемент с индексом 6 из второго ряда, т.е. код АSСІІ буквы Г. Тог же результат можно получить, загрузив в один из регистров не индекс, а адрес массива: mov ВХ,offset Sims mov SI,6 mov DL,12[ВХ][SI]

Слайд 15





Адресация по базе с индексированием и масштабированием
Это самая полная возможная схема адресации, в которую входят все случаи, рассмотренные ранее, как частные. Полный адрес операнда можно записать как выражение, представленное на рисунке.
Описание слайда:
Адресация по базе с индексированием и масштабированием Это самая полная возможная схема адресации, в которую входят все случаи, рассмотренные ранее, как частные. Полный адрес операнда можно записать как выражение, представленное на рисунке.



Похожие презентации
Mypresentation.ru
Загрузить презентацию