Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОМПТ Шарапов. А.В.doc
Скачиваний:
221
Добавлен:
10.05.2015
Размер:
3.94 Mб
Скачать

Команды, влияющие на флаги результата

Мнемоника

Флаги

Команда ADD A, <байт источника>

AC

C

OV

Команда ADDC A, <байт источника>

AC

C

OV

Команда ANL C, <бит источникa>

C

Команда ANL C, </бит источникa>

C

Команда CJNE <байт назначения>, <байт источника>, <смещение>

C

Команда CLR C

C

Команда CLR <bit>

bit

Команда CPL C

C

Команда CPL <bit>

bit

Команда DA A

AC

C

Команда DIV AB

C=0

OV

Команда MOV <бит назначения>, <бит источника>

C

bit

Команда MUL AB

C=0

OV

Команда ORL C, <бит источникa>

C

Команда ORL C, </бит источникa>

C

Команда RLC A

С

Команда RRC A

C

Команда SETB C

C

Команда SETB <bit>

bit

Команда SUBB A, <байт источника>

AC

C

OV

Сигнал сброса обнуляет содержимое регистров PC, ACC, B, PSW, DPTR, TMOD, TCON, T/C0, T/C1, IE, IP и SCON, в регистре PCON сбрасывается только старший бит, в регистр SP загружается код 07Н, а в порты Р0-Р3 загружаются коды 0FFH (настраивая их на ввод). Сигнал сброса не воздействует на содержимое ячеек РПД.

Запись программы на языке ассемблера и ее трансляция

Язык ассемблера допускает представление всех элементов программы в символической (буквенно-цифровой) форме, отражающей их содержательный смысл. В качестве алфавита допустимых символов принят код ASCII (американский стандартный код для обмена информацией). Каждая строка ассемблера соответствует одной команде или псевдокоманде (директиве) и может содержать поля метки, мнемоники команды, операнда и комментария. При наличии в программе синтаксических ошибок ассемблер в процессе трансляции выдает сообщения об ошибках.

Метка ассоциируется с 16-битовым адресом той ячейки памяти, где будет размещен первый байт отмеченной команды. Использование меток освобождает программиста от необходимости оперировать абсолютными адресами памяти при записи команд передачи управления. Метка должна начинаться с буквы и заканчиваться двоеточием. Не допускается использовать в качестве меток мнемокоды команд, обозначения операндов и директив ассемблера. Символическое обозначение может появиться в поле метки только один раз.

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

Поле операнда содержит числовые и символьные непосредственные данные, обозначения регистров и регистровых пар МК, адреса памяти. Возможно использование выражений, содержащих простейшие арифметические и логические операции, обработку которых ассемблер при трансляции производит в формате 16-разрядных двоичных чисел. Операнд в виде строки символов, заключенной в апострофы, транслируется в последовательность кодов ASCII этих символов.

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

Кроме команд программа может содержать директивы ассемблера:

Запись исходного текста программы осуществляется с помощью любого текстового редактора (например, вход в редактор Shift+F4 из FAR). Рекомендуется поле метки располагать с нулевой позиции, остальные поля отделять друг от друга клавишей табуляции. Имя программы на языке ассемблера должно иметь расширение.asm. Программа должна заканчиваться директивой END.

Для трансляции исходной программы с языка мнемокодов в машинные коды команд в данной лабораторной работе использу-ются следующие кросс-средства:

  • Ассемблер а8051;

  • Редактор связей xlink.

Ассемблирование производится в диалоговом режиме. Для трансляции программы TABLO.ASM можно вызвать ассемблер командой а8051, следующим образом отвечая на его запросы:

sourse file [.msa/s03]=TABLO.ASM

list file [.lst]=TABLO

object file=<Enter>

options=<Enter>

После ассемблирования в текущей директории будут сформированы файлы TABLO.LST (файл листинга программы) и TABLO.R03 (файл программы в объектном коде).

Ниже приводится пример записи на языке ассемблера текста программы TABLO.ASM:

Метка

Мнемокод

Операнды

Комментарий

; Основная программа

MAIN: MOV R0,#20H ; начальный адрес массива в РПД

MOV DPTR,#20H ; адрес таблицы символов в ПП

MOV R7,#32 ; число элементов массива

LCALL TEXT ; вызов подпрограммы TEXT

MOV R0,#20H ; начальный адрес массива в РПД

MOV DPTR,#40H ; адрес таблицы символов в ПП

MOV R7,#32 ; число элементов массива

LCALL TEXT ; очистка экрана

SJMP MAIN; зацикливание программы

; Подпрограмма заполнения массива ОЗУ

TEXT: CLR A ; очистка аккумулятора

MOVC A,@A+DPTR ; пересылка символа в А

MOV @R0,А ; пересылка символа в РПД

DJNZ R6,$ ; временная задержка

INC R0 ; увеличение указателей памяти

INC DPTR ; на единицу

DJNZ R7,TEXT ; организация цикла обработки

RET ; массива

; Таблица кодов отображаемых символов

ORG20H

DB'▫▫DEAR▫▫FRIEND!▫WELCOME▫TO▫TOMSK'

ORG40H

DB'▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫' ; 32 пробела

END

При наличии синтаксических ошибок ассемблер выдаст строку с ошибкой и кратким комментарием к ней на экран дисплея, а также продублирует эту информацию в листинге программы.

Если ошибок нет, можно вызвать редактор связей:

xlink -c8051 TABLO -o TABLO.HEX

Редактор связей сформирует файл TABLO.HEX, который необходим для работы эмулятора.