Например TDA7294

Форум РадиоКот • Просмотр темы - Ассемблер - детский вопрос.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт фев 26, 2026 16:52:06

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Ассемблер - детский вопрос.
СообщениеДобавлено: Ср июн 08, 2016 01:28:15 
Это не хвост, это антенна
Аватар пользователя

Карма: 17
Рейтинг сообщений: 227
Зарегистрирован: Вс май 13, 2012 00:01:54
Сообщений: 1473
Рейтинг сообщения: 0
Вопрос к знатокам ассемблера. Вот программа скомпилированная в PIC Basic PRO. И её же дизассемблированный хекс.
В программе идет обмен с термодатчиком DS18S20 через PortA(0) и загрузка в ячейки памяти результатов - температуры 1 байт и знака 0/1 каждую секунду. Также PortС(7) выводит 1.
Асм. исправно компилится и работает.
Покажите мне, где в программе находятся обращения к порту А и, возможно, таймеру. И что это за диалект такой в языке ассемблера. Ткните носом где почитать. Заранее премного благодарен.

ПС. Вырос на Intel8086 ассемблере. Но давненько это было.


Вложения:
TermoDallas.rar [2.12 KiB]
Скачиваний: 202
Вернуться наверх
 
 Заголовок сообщения: Re: Ассемблер - детский вопрос.
СообщениеДобавлено: Ср июн 08, 2016 08:19:23 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7853
Рейтинг сообщения: 0
В листинге нет обращения к портам


Вернуться наверх
 
 Заголовок сообщения: Re: Ассемблер - детский вопрос.
СообщениеДобавлено: Ср июн 08, 2016 10:31:08 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 81
Рейтинг сообщений: 444
Зарегистрирован: Чт дек 27, 2012 20:46:09
Сообщений: 2029
Откуда: Болгария, г. Лом
Рейтинг сообщения: 0
Код:
    MOVLW 0x06
    MOVWF ADCON1         ; !!Bank!! ADCON0 - ADCON1 - Unimplemented - Unimplemented
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BSF PORTC,7]       ; !!Bank!! PORTC - TRISC - Unimplemented - Unimplemented
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF PORTC,7          ; !!Bank!! PORTC - TRISC - Unimplemented - Unimplemented
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select


К PORTC,7 кажется есть, но я не могу понять, если
Ariadna-on-Line писал(а):
что это за диалект такой в языке ассемблера
и пътатся вставлять в чужую программу код не понятно как работающии :shock: :o

Ariadna-on-Line, каждъй компилятор поддерживает въход типа .lst. Вам будет гораздо удобнее работать тем .lst, a не с файлом из дизасемблера. Но вам виднее.

_________________
Лом - ето город в Болгарии, а не инструмент юстировки електроники.


Вернуться наверх
 
 Заголовок сообщения: Re: Ассемблер - детский вопрос.
СообщениеДобавлено: Ср июн 08, 2016 12:27:33 
Это не хвост, это антенна
Аватар пользователя

Карма: 17
Рейтинг сообщений: 227
Зарегистрирован: Вс май 13, 2012 00:01:54
Сообщений: 1473
Рейтинг сообщения: 0
Пользуюсь компилятором MPASM v5.49, а дизассемблером PIC-Disasm v1.6
Чтоб не разводить антимонии - посмотрите архив.
Другие дизассемблеры и компиляторы тоже жуют и выдают успешно.
Порты Б С Д на листингах выходят нормально - по имени.
Именно порт А и таймер как-то необычно выходят на дизасмах. Вроде как по адресам.
Я что-то об этом слышал, но не знаю даже как сформулировать вопрос в Гугл.

MainLoop:
MOVLW 0x05
MOVWF LRAM_0x36
MOVLW 0x01
MOVWF LRAM_0x34
MOVLW 0x01
;CLRF PCLATH ; !!Bank Program-Page-Select
CALL LADR_0x0035
и т.д.

Мне кажется вот это и есть обращение к порту А (0х05) и таймеру (0х01)

...Пробовал, на .LST тоже нет Порт А.


Вложения:
Dallas.rar [19.19 KiB]
Скачиваний: 160
Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
 Заголовок сообщения: Re: Ассемблер - детский вопрос.
СообщениеДобавлено: Ср июн 08, 2016 14:08:00 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 81
Рейтинг сообщений: 444
Зарегистрирован: Чт дек 27, 2012 20:46:09
Сообщений: 2029
Откуда: Болгария, г. Лом
Рейтинг сообщения: 2
Етот фрагмент для меня отношение к PORTA не имеет. Мъ загружаем в две ячейки памяти консантъ 5 и 1.

Объчно movlw ADR_REG исползуется если потом будем работать с FSR. Но в отношение PORTA ето будет работать если PORTA обьявлен как въход.
Код:
.....   bsf STATUS,RP0
    movlw 0x00
    movwf TRISA;значение для инициализации защелок - въход
        ......
    bcf STATUS,RP0
    movlw PORTA      ;movlw 0х05
    movwf FSR
    incf      INDF,f ;увеличение регистра с 1 (в случае PORTA)
    clrf           INDF,f  ; обнуление PORTA


НО....
Код:
.....   bsf STATUS,RP0
    movlw 0xFF
    movwf TRISA;значение для инициализации защелок - вход
        ......
    bcf STATUS,RP0
    movlw PORTA      ;movlw 0х05
    movwf FSR
    incf      INDF,f ;увеличение регистра с 1 (в случае PORTA) не будет работает


Если въ захотите перебросить содержание PORTA в W то вам следует работать с инструкции movf PORTA,w - переслать содержимого регистра PORTA в акумуляторе, разумеется можно использовать и другие как decf PORTA,w и т.д.
Если будете работать асемблером то прочитайте какие инструкции есть в данний МК - у Microchip-a с етим все в порядке

PS: Ariadna-on-Line, пожалуйста дайте и .lst фaйла и не в личку, а здесь. О то как человеку, никогда в жизни не видевшии PIC Basic PRO, понять что сделал компилятор в ответ на ето OWOut DQ, 1, [$CC, $44]

PS:PS:
По дисасемблеру:
Код:

LADR_0x0022
    RRF LRAM_0x22,F
    MOVF LRAM_0x36,W
    MOVWF FSR
    MOVF LRAM_0x34,W
    CALL LADR_0x0046
;.......
LADR_0x0046
    XORLW 0xFF
    ANDWF INDF,F
    GOTO LADR_0x0049
LADR_0x0049
    BSF FSR,7
    ANDWF INDF,F

;.......
LADR_0x0089:             ; Main Loop
    MOVLW 0x05
    MOVWF LRAM_0x36

Видим в Main Loop в переменной LRAM_0x36 ставится 5. В LADR_0x0022 ета величина (5) перебрасъвается в FSR. И в LADR_0x0046 что-то с ним делается через INDF. Т.е. PIC Basic PRO решили, что работать с портом будут через индиректнъй регистр. ?????? Так решили или им так бъло удобно.

Есть одно преимущество. Посколько PORTA.0 должен работать как вход/въход то с етим BSF FSR,7 они перебрасъваются на установка TRISA, а потом через BCF FSR,7 возвращаются на PORTA.
Код:
LADR_0x0008
    MOVF LRAM_0x34,W
    CALL LADR_0x0046
    MOVF LRAM_0x34,W
    IORWF INDF,F
    MOVLW 0x0A
    CALL LADR_0x0059
    MOVF LRAM_0x34,W
    BCF FSR,7
    ANDWF INDF,W
    ADDLW 0xFF


Таким образом загружая константу 5 в FSR обеспечивается работа на TRISA и PORTA.

_________________
Лом - ето город в Болгарии, а не инструмент юстировки електроники.


Вернуться наверх
 
 Заголовок сообщения: Re: Ассемблер - детский вопрос.
СообщениеДобавлено: Чт июн 09, 2016 22:27:48 
Это не хвост, это антенна
Аватар пользователя

Карма: 17
Рейтинг сообщений: 227
Зарегистрирован: Вс май 13, 2012 00:01:54
Сообщений: 1473
Рейтинг сообщения: 0
botchin-у
Именно это я хотел узнать. А то уже просто удивление. То есть здесь используется КОСВЕННАЯ (indirect) адресация, - если я правильно называю.
Большое спасибо.

Всё. Наверно можно закрывать.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y