| Автор |
Съобщение |
|
dan
Ранг: Форумен бог
Регистриран на: Вто Май 29, 2007 2:23 pm Мнения: 3714 Местоположение: Високо в планината
|
 Реверсиране на регистър в асемблер
Здравейте!
Искам да реверсирам съдържанието на един регистър в асемблер; т.е. най_старшия да стане най_младши.
Знам как бих го направил на "С", но тук не мога да се оправя с променливите, който zадават номерата на битовете в регистрите.
Пробвах ги като регистри(NoBIT equ 21h......), като променливи ссщо(variable NoBIT....), но то не става. Някой може ли да ми даде идея как да стане?
|
| Чет Сеп 27, 2007 11:19 am |
|
 |
|
VSU
Ранг: Напреднал
Регистриран на: Нед Авг 14, 2005 1:08 pm Мнения: 433 Местоположение: Казанлък
|
да си чувал за ротация от където четеш в едната посока където пишеш в другата след 8 ротации си готов
movlw 0x23
movwf dat1
movlw 8
movwf cnt
et2
rlf dat1
rrf dat2
decfsz cnt
goto et2
|
| Чет Сеп 27, 2007 11:28 am |
|
 |
|
dan
Ранг: Форумен бог
Регистриран на: Вто Май 29, 2007 2:23 pm Мнения: 3714 Местоположение: Високо в планината
|
Както казват немците"In der Kuerze liegt die Wuerze". Простичко, ама кой ще се сети  Много ти благодаря, ВСУ
И все пак ми е интересно да знам, как посредством променлива мога да указвам номер на бит в даден регистър. Все някога ще ми потрябва...
|
| Чет Сеп 27, 2007 2:07 pm |
|
 |
|
bobyk
Ранг: Ориентиран
Регистриран на: Пон Яну 09, 2006 11:32 am Мнения: 276 Местоположение: Kozloduy
|
Просто неможеш, потърси имаше една тема по този въпрос, автора и беше много упорит човек.
|
| Чет Сеп 27, 2007 3:52 pm |
|
 |
|
dan
Ранг: Форумен бог
Регистриран на: Вто Май 29, 2007 2:23 pm Мнения: 3714 Местоположение: Високо в планината
|
Мисля, че я намерих. А как е най_удачно да изведа данните от един регистър последователно на някой пин.
|
| Чет Сеп 27, 2007 4:15 pm |
|
 |
|
Gogo
Ранг: Форумен бог
Регистриран на: Чет Фев 24, 2005 11:41 pm Мнения: 1049 Местоположение: Pz
|
Ротация на регистъра през "С" и ако С=1, пин=1, иначе пин=0...
...или пак с ротация, но си определяш пина по бит 0 или бит 8 (зависи на къде въртиш) на самия регистър.
|
| Чет Сеп 27, 2007 4:31 pm |
|
 |
|
setoy
Ранг: Почетен член
Регистриран на: Пет Фев 17, 2006 9:17 am Мнения: 765 Местоположение: Стара Загора
|
 Добре е все пак да пишеш за КАКЪВ точно контролер става дума, не всеки може да се досети.
movlw 8
movwf cnt
et2
rlf dat1,f
btfsc status,c
bsf port,pin
btfss status,c
bcf port,pin
decfsz cnt
goto et2
edit: Gogo ти е отговорил малко преди мен 
|
| Чет Сеп 27, 2007 4:32 pm |
|
 |
|
dan
Ранг: Форумен бог
Регистриран на: Вто Май 29, 2007 2:23 pm Мнения: 3714 Местоположение: Високо в планината
|
аз прочетох отговора. Просто исках да знам дали има по-лесен начин за сериализиране, от това постоянно да се обръщам към carry-то.
Аз иначе съм си съчинил една функцийка, дето отнема толкова ресурси.... Става въпрос за pic12f
Благодаря за отговорите.
|
| Чет Сеп 27, 2007 4:51 pm |
|
|