Amiga. Вычислительная техника
Меню сайта
Главная
Amiga
Amiga Corporation
Модельный ряд
История развития
Аппаратная платформа
Операционные системы
Эмуляция
AMIGA # 1
Программирование на Ассемблере
Организация процессоров
Методы защиты информации
Компьютерные новеллы
Боятся ли компьютеры адского пламени?
Виртуальная реальность
Корпоративные сети
Телекоммуникационные сети
Архитектура ЭВМ
ЕС ЭВМ
Рождение ЭВМ
Компьютер
Гарвардская архитектура
Современные высокопроизводительные компьютеры
Дорога в будущее
Vista
Инфоpматика
ЭВМ
Операционные системы
Linux
Windows
Освой компьютер
Макинтош
Набор текста
Поколения
Компьютерная грамотность
Устройство компьютера
Железо
Графика
Звук
Ремонт
Сети
Программирование
Информационные технологии
Криптография
Микроэлектроника
Истории
 
 

Программирование на Ассемблере


Более
того, если код первой программы разместить с адреса $2000, то операнд
команды MOVE все равно будет браться из ячейки $1100, в то время как во
втором варианте MOVE будет корректно обращатся к переменной MARKER, адрес
которой будет теперь уже не $1100, а $2100. Таким образом, второй вариант
программы будет корректно работать в любом месте памяти.
Существует также вариант косвенного регистрового метода адресации с
8-битным смещением и индексным регистром, в котором все смещения указаны
относительно программного счетчика (PC) (например, MOVE M(PC,D0),D1).
Нам осталось рассмотреть еще два метода адресации процессора MC68000:
косвенный регистровый с постинкрементом и косвенный регистровый с
предекрементом. В первом методе после обращения к памяти адресный регистр
увеличивается на 1, 2 или 4 (это зависит от размера команды), например:
MOVE.L #$1000,A0

MOVE.B #1,(A0)+
Здесь по адресу $1000 запишется 1, а содержимое регистра A0 увеличится на 1
(так как указан суффикс .B). Постинкрементный метод очень полезен при
работе с таблицами, когда требуется последовательный доступ к элементам
(обычно используется в циклах, но об этом позднее).
Аналогично работает предекрементный метод, в котором перед обращением к
памяти адресный регистр уменьшается на 1, 2 или 4, например программа
MOVE.L #$1000,A0

MOVE.B #1,-(A0)
запишет 1 по адресу $FFF, так как содержимое регистра A0 СНАЧАЛА
декрементируется, а затем используется.
Эти методы адресации широко используются для работы со стеком. Например,
чтобы \"затолкнуть\" содержимое D0 в стек, можно написать
MOVE D0,-(A7) ;используем предекремент, так как стек

;\"растет\" в сторону уменьшения адресов
а чтобы \"вытолкнуть\" слово из стека в D0, можно написать
MOVE (SP)+,D0 ;SP всегда указывает на последнее занесенное

;в стек значение
Заметим, что указатель стека должен быть четным (так как стек используется
некоторыми командами процессора для размещения слов и длинных слов).

 

 

© 2010 Amigo. All Rights Reserved
Создание сайтов ЕкатеринбургШаблоны сайтовПоиск товаров - справочник цен, каталог магазинов, прайс-листыБесплатные шаблоны дизайна компьютерных сайтов
Hosted by uCoz