реклама на сайте
подробности

 
 
> Вопрос к ассемблерщикам, Автоматическая растановка адресов
_Алексей_
сообщение Mar 2 2009, 09:17
Сообщение #1





Группа: Новичок
Сообщений: 11
Регистрация: 16-02-09
Пользователь №: 44 925



Пример: .equ Napruga = SRAM_START+123
Таких директив может быть сотня и более.
Иногда возникает необходимость вставить посередине новую директиву или расширить массив. Из-за этого возникают проблемы, что нужно менять адресацию. Приходиться много править.
Существуют ли какие-нибудь методы или вспомогательные программы позволяющие решить данную проблему?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
777777
сообщение Mar 2 2009, 10:00
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(_Алексей_ @ Mar 2 2009, 12:17) *
Пример: .equ Napruga = SRAM_START+123
Таких директив может быть сотня и более.

Почему-то все (без исключения!) программисты, которых я встречал, счтали, что они знают язык ассемблера на том основании, что они знают систему команд и их мнемоники. Некоторые знали директиву equ, а многие даже ее не знали, а распределяли память данных вручную, на листочке, а в программу вбивали готовые числа. О том, чтобы объявлять какие-то там сегменты, они слышали лишь краем уха, сами конечно же никогда этого не делали.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Mar 2 2009, 10:08
Сообщение #3


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(777777 @ Mar 2 2009, 14:00) *
 О том, чтобы объявлять какие-то там сегменты, они слышали лишь краем уха, сами конечно же никогда этого не делали.

smile.gif Но и AVRASM тоже хорош - тупой как пробка. Невозможно никаким  макаком описАть структуру, кроме .equ, макросредства - ваще молчу.

Корочче - лучче всего задняя часть антилопы (в смысле  GNU AS)
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Mar 2 2009, 13:22
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(_Pasha @ Mar 2 2009, 14:08) *
smile.gif Но и AVRASM тоже хорош - тупой как пробка. Невозможно никаким  макаком описАть структуру, кроме .equ, макросредства - ваще молчу.

Тоже поддерживаю. По сравнению с тем ассемблером, которым я пользовался для 8051 - это большой скачёк назад. smile.gif
Некоторые моменты отображу.
Код
;-----------------------------------------------------------------------------
.equ    inline    = portd2;(INT0) вход с цифровой линии(_/~~\______/~~~~\______)
;-----------------------------------------------------------------------------
.equ    DTR        = portd4; Готовность компьютера
.equ    portDTR    = portd
.equ    pinDTR    = pind
.equ    ddrDTR    = ddrd
.equ    RTS        = portd3; Запрос передачи компьютера
.equ    portRTS    = portd
.equ    pinRTS    = pind
.equ    ddrRTS    = ddrd

Код
.def    flg2    = r17;регистр битовых признаков No 2
.equ    bline    = 0    ; новая команда от MODEMLN
.equ    ctrll    = 1    ; команда (не данные) от MODEMLN
.equ    ctrlh    = 2    ; команда (не данные) от MODEMH
.equ    bnocar    = 3    ; Пропала несущая
.equ    blast    = 4    ; Выполняется комманда ComL (offline)
.equ    bonline    = 5    ; Бит признака режима (1-online)
.equ    blnint    = 6    ; наличие импульса в телефонной линии (1)
.equ    bautob    = 7    ; запретить AUTOBOD (0-запретить)

.def    outdata    = r18;текущий байт данных в телефонную линию

Код
..equ    lBuf    = $1cf; Длина буферов 463 байта


.dseg
.if chip == 88
    .org    $0100; для ATMEGA88
.else
    .org    $060; для ATMEGA8
.endif

digit:    .byte    1;регистр данных текущей набираемой цифры номера

s0:    .byte    1; число звонков необходимых для автоответа
s1:    .byte    1; счётчик звонков
s2:    .byte    1; +
s3:    .byte    1; cr
s4:    .byte    1; lf
s5:    .byte    1; забой
s6:    .byte    1; число сек. ожидания при "слепом наборе" без dial tone
s7:    .byte    1; ожидание несущей
s8:    .byte    1; время в 0.1 сек на ","
s9:    .byte    1; время в десят. долях сек. установки соед.
s10:    .byte    1; ячейка пользователя


Кстати ассемблер IAR для AVR когда-то был свободно распространяемый. Правда не знаю как с интеграцией его в AVR Studio дела абстоят.

В общем и целом - перешёл на Си и жутко жалею, что не сделал этого лет эдак на 5 раньше.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- _Алексей_   Вопрос к ассемблерщикам   Mar 2 2009, 09:17
- - bbill   Самый удобный способ, резервирование памяти, расст...   Mar 2 2009, 09:37
|- - Сергей Борщ   Цитата(_Pasha @ Mar 2 2009, 12:08) Невозм...   Mar 3 2009, 08:38
- - prottoss   Цитата(_Алексей_ @ Mar 2 2009, 16:17) Ино...   Mar 2 2009, 17:27
- - _Алексей_   >Почитайте описание на ассемблер, там это есть....   Mar 3 2009, 07:32
- - CDT   Цитата(_Алексей_ @ Mar 2 2009, 13:17) ......   Mar 8 2009, 06:50
- - _Pasha   Цитата(CDT @ Mar 8 2009, 09:50) ;Можно ма...   Mar 8 2009, 07:10
- - galjoen   Цитата(_Pasha @ Mar 8 2009, 10:10) Для то...   Mar 8 2009, 07:45
|- - Сергей Борщ   Цитата(galjoen @ Mar 8 2009, 09:45) Такие...   Mar 8 2009, 09:52
|- - _Pasha   Цитата(galjoen @ Mar 8 2009, 10:45) Но ес...   Mar 8 2009, 10:04
||- - Maik-vs   Какое странное и невнятное обсуждение. То есть нек...   Mar 8 2009, 15:17
||- - SasaVitebsk   Цитата(Maik-vs @ Mar 8 2009, 19:17) ...   Mar 9 2009, 21:07
||- - adc   Цитата(SasaVitebsk @ Mar 10 2009, 00:07) ...   Mar 10 2009, 07:58
||- - Maik-vs   Цитата(SasaVitebsk @ Mar 10 2009, 00:07) ...   Mar 10 2009, 08:27
||- - SasaVitebsk   Цитата(Maik-vs @ Mar 10 2009, 12:27)...   Mar 10 2009, 17:34
|- - yod   Цитата(galjoen @ Mar 8 2009, 13:45) ... К...   Mar 11 2009, 08:46
|- - galjoen   Цитата(yod @ Mar 11 2009, 11:46) ... Подс...   Mar 11 2009, 14:53
||- - yod   гхм, спасибо, попробовал, не вышло. теперь пишет и...   Mar 11 2009, 18:52
||- - galjoen   Цитата(yod @ Mar 11 2009, 21:52) гхм, спа...   Mar 11 2009, 19:12
||- - yod   при асемблерной вставке сам код предается как стро...   Mar 12 2009, 02:02
|- - _Pasha   Цитата(yod @ Mar 11 2009, 11:46) Подскажи...   Mar 12 2009, 02:34
|- - ReAl   Цитата(galjoen @ Mar 8 2009, 09:45) А мас...   Mar 14 2009, 10:02
|- - SasaVitebsk   Цитата(ReAl @ Mar 14 2009, 14:02) как бы ...   Mar 14 2009, 11:12
|- - galjoen   Цитата(ReAl @ Mar 14 2009, 13:02) Никаких...   Mar 14 2009, 16:27
||- - ReAl   Цитата(galjoen @ Mar 14 2009, 18:27) Для ...   Mar 15 2009, 09:00
|- - ReAl   Опа, тут мне на описку указали, а я уже не могу по...   Mar 15 2009, 19:58
- - CDT   Цитата(_Pasha @ Mar 8 2009, 11:10) Что ж...   Mar 9 2009, 06:15
- - _Pasha   Цитата(CDT @ Mar 9 2009, 09:15) Что ж так...   Mar 10 2009, 08:26


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 03:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01417 секунд с 7
ELECTRONIX ©2004-2016