Аппаратные и программные



Download 3,23 Mb.
Pdf ko'rish
bet146/179
Sana24.02.2022
Hajmi3,23 Mb.
#234030
TuriУчебное пособие
1   ...   142   143   144   145   146   147   148   149   ...   179
5.2.10 Использование меток 
Внутри функции можно определять метки вида nnnn$, где n – число от 0 до 
100. Метки, используемые в языке Си, не видны внутри ассемблерных вставок 
и наоборот. Метки в ассемблерных вставках внутри разных функций также не 
видны друг для друга. 
foo() { 
/* Некоторый код на Си */ 
_asm 
; Некоторый ассемблерный код 
ljmp 0003$ 
_endasm; 
/* Еще код на Си */ 
clabel: /* Встроенный ассемблер не видит эту метку */ 
_asm 
0003$: ; Эта метка доступна только из встроенного ассемблера 
_endasm ; 
/* Еще код на Си */ 

5.2.11 Директива __naked 
Директива __naked позволяет исключить генерацию вводной части 
функции. Предполагается, что за сохранение контекста отвечает программист. 
volatile data unsigned char counter; 
void simpleInterrupt(void) __interrupt (1) 

counter++; 

void nakedInterrupt(void) __interrupt (2) __naked 

_asm 
inc _counter ;Инкремент не меняет флагов, нет необходимости сохранять 
;psw 
reti; Неоходимо явно указывать reti 
_endasm; 

Без __naked получается такой код: 
_simpleInterrupt: 
push acc 
push b 
push dpl 
push dph 
push psw 
mov psw,#0x00 
inc _counter 
pop psw 
pop dph 


230 
pop dpl 
pop b 
pop acc 
reti 
С __naked код выглядит так: 
_nakedInterrupt: 
inc _counter
reti
5.2.12 Формат Intel HEX 
Intel HEX – формат файла. Основным отличием этого формата от таких 
монстров, как ELF и COFF является крайняя простота. Формат позволяет 
хранить только образ памяти. Ни о каком перемещаемом коде и возможности 
хранения объектных файлов в этом формате речи не идет. 
В настоящий момент этот формат в основном используется при 
программировании встроенных систем. Большинство компиляторов и линкеров 
умеют выдавать загрузочный модуль в этом формате. Строки файла 
представляют собой текстовые записи, в которых закодированы адреса 
расположения, команды и данные в шестнадцатеричной системе счисления. 
Изначально, HEX формат использовался для работы с перфоленточными 
загрузчиками. В настоящее время HEX формат используют для 
программирования различных контроллеров и связи с программаторами ППЗУ.
Каждую строку в HEX файле называют записью. Она состоит из 
следующих элементов:
• Двоеточие (:).
Число байтов данных, содержащихся в этой записи. Занимает один байт 
(две шестнадцатеричных цифры), что соответствует 0…255 в 
десятичной системе.
• Начальный адрес блока записываемых данных – 2 байта. Этот адрес 
определяет абсолютное местоположение блока в EPROM.
Один байт, обозначающий тип записи.
o 0x00 – блок данных; 
o 0x01 – конец файла;
o 0x02 – адрес сегмента (см. архитектуру процессора Intel x86); 
o 0x03 – стартовый адрес сегмента (см. архитектуру процессора Intel 
x86); 
o 0x04 – старшая часть линейного (32-разрядного) адреса; 
o 0x05 – стартовый адрес, старшая часть линейного (32-разрядного) 
адреса. 
• Байты данных (их число указывается в поле 2).


231 
• Последний байт в записи является контрольной суммой. Если сумма 
всех байтов в строке (без учёта переноса) равняется 00, строка считана 
правильно.
• Строка заканчивается стандартной парой CR/LF (0Dh 0Ah).
• Файл всегда завершается командой 01, (получается запись вида 
«:00000001FF»).
Пример HEX-файла: 
:10010000214601360121470136007EFE09D2190140 
:100110002146017EB7C20001FF5F16002148011988 
:10012000194E79234623965778239EDA3F01B2CAA7 
:100130003F0156702B5E712B722B732146013421C7 
:00000001FF 
Недостатки формата: 
• Ненадежный контрольный код (вероятность ошибки 1/256).
• Нет суммарного контрольного кода для всего файла.
• Получается большой файл при HEX кодировании, что отрицательно 
сказывается на скорости передачи файлов в контроллер.

Download 3,23 Mb.

Do'stlaringiz bilan baham:
1   ...   142   143   144   145   146   147   148   149   ...   179




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish