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

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


Операнд
источника всегда указывается раньше операнда приемника. Это означает, что
нельзя писать так: MOVE D0,#1.
Команда MOVE #1,$1000 записывает число 1 в ячейку памяти с адресом $1000.
Адрес в данном примере выбран произвольно, и обычно в такой форме в
реальных программах не записывается. Вместо этого используют метки:

...

MOVE #1,MARKER

...
MARKER: DC.W 1
Программа состоит, в данном случае, из двух частей: первая часть - это
обычная команда MOVE, которая копирует число 1 в ячейку, помеченную как
MARKER. Вторая часть содержит псевдооперацию (pseudo-op) DC.W, которая не
является командой процессора. Псевдооперации - это директивы ассемблера
(напомним, что ассемблер - это специальная программа-компилятор для
перевода машинных команд из символьного представления в двоичное). В нашем
случае DC означает DеClare (определить переменную), а суффикс .W задает
размер переменной - одно слово (word). Возможны другие варианты суффиксов:
.B (байт) и .L (длинное слово).
Такие же суффиксы (.B .W или .L) используются и при записи большинства
машинных команд для задания размера операции, например MOVE.L #$12345678,D0
пересылает длинное слово, а MOVE.B #$12,D0 - байт. Если суффикс опущен,
ассемблер использует размер по умолчанию - .W.
Предостережение.
Если при работе с памятью используется размер .W (или .L), адрес должен
быть четным (оканчиваться на 0,2,4,6,8,A,C,E)!
Ассемблеры обычно имеют директиву \'EVEN\' (или \'ALIGN\'), которая служит для
выравнивания адресов по четности. Такая директива необходима, например, в
следующей ситуации:

...
VALUE1: DC.B 1
VALUE2: DC.W 1
Если переменная VALUE1 размещена по четному адресу, то VALUE2 автоматически
попадает на нечетный адрес. Если же использовать ALIGN (EVEN), то между
VALUE1 и VALUE2 (в случае необходимости) будет \"вставлен\" нулевой байт, и
адрес VALUE2 станет четным:

...
VALUE1: DC.B 1
ALIGN
VALUE2: DC.W 1
При выборке отдельных байтов (слов) из памяти необходимо иметь в виду
порядок их расположения.

 

 

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