[an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено -=ВН=- 01 июня 2005 г. 16:23
В ответ на: Подскажите пожалуйста, по асму для 62-х отправлено asd555 01 июня 2005 г. 15:42

А с регистром - в регистр, до команды перехода, пишется адрес, куда этот самый переход должен произойти.
Регистр B3 используется как адрес возврата из функции. Такое соглашение для него придумал Техас, точнее для своего Це компилера.
6000 серия имеет такую занятную особенность.
Автоматически прятать адрес возврата из ФУНКЦИИ в стек Техас посчитал не царским делом. Равно как и вводить какие-то дурацкие команды вызова подпрограмм. Ни к чему и аппаратный указатель.
С прерываниями немного другая песня, хоть и без стека, но со спец. выделенными регистрами, а куда деваться?
Да. Отвлекся я на прерывания.
В общем адрес возврата из функции должны прятать либо Вы собственноручно, если пишете прогр. на ассемблере, либо C компилер (он это умеет), в один из регистров. Ну а вызываемая ф-ия должна возвращать управление основной как раз переходом по содержимому выбранного регистра.
Так вот Техас в своем C компилере и использует B3 для сохранения адреса возврата.
Подчеркну - это чисто программистское соглашение. На месте B3 мог оказаться любой другой регистр, но Техас выбрал его. И Вы, когда пишете смешаную сишно-ассемлерную программу, должны этого соглашения, равно как и других, связанных с сишно-ассемблерным интерфейсом, придерживаться.
Вы можете спокойно совершенно использовать вместо B3 любой другой регистр, для этих же целей, либо в чисто ассемблернной программе, либо во внутренних ассеблерных функциях, к которым C не имеет доступа.
Но не рекомендую. Забудете, запутаетесь.

Вот Вам пример
B _function
MVKL retadr, B3; 4 строчки - вызов ф-ии function
MVKH retadr, B3; функции должна вернуть управления на метку retadr.
NOP 3
retadr:
.....
_function:
....
B B3
NOP 5

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru