Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Реверсиране на регистър в асемблер
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=4868
Страница 1 от 1

Автор:  dan [ Чет Сеп 27, 2007 11:19 am ]
Заглавие:  Реверсиране на регистър в асемблер

Здравейте!
Искам да реверсирам съдържанието на един регистър в асемблер; т.е. най_старшия да стане най_младши.
Знам как бих го направил на "С", но тук не мога да се оправя с променливите, който zадават номерата на битовете в регистрите.
Пробвах ги като регистри(NoBIT equ 21h......), като променливи ссщо(variable NoBIT....), но то не става. Някой може ли да ми даде идея как да стане?
Код:
REVERCE
   CLRF   RESULT
   MOVLW   D'7'
   MOVWF   NoBIT
   MOVLW   D'0'
   MOVWF   NoBIT1
   
LOOP
   BTFSC  AKK1,NoBIT
   BSF         RESULT,NoBIT1
   INCF    NoBIT1,F
   DECFSZ    NoBIT,F         
   GOTO   LOOP

Автор:  VSU [ Чет Сеп 27, 2007 11:28 am ]
Заглавие: 

да си чувал за ротация от където четеш в едната посока където пишеш в другата след 8 ротации си готов

movlw 0x23
movwf dat1
movlw 8
movwf cnt
et2
rlf dat1
rrf dat2
decfsz cnt
goto et2

Автор:  dan [ Чет Сеп 27, 2007 2:07 pm ]
Заглавие: 

Както казват немците"In der Kuerze liegt die Wuerze". Простичко, ама кой ще се сети :) Много ти благодаря, ВСУ :)
И все пак ми е интересно да знам, как посредством променлива мога да указвам номер на бит в даден регистър. Все някога ще ми потрябва...

Автор:  bobyk [ Чет Сеп 27, 2007 3:52 pm ]
Заглавие: 

Цитат:
как посредством променлива мога да указвам номер на бит в даден регистър

Просто неможеш, потърси имаше една тема по този въпрос, автора и беше много упорит човек.

Автор:  dan [ Чет Сеп 27, 2007 4:15 pm ]
Заглавие: 

Мисля, че я намерих. А как е най_удачно да изведа данните от един регистър последователно на някой пин.

Автор:  Gogo [ Чет Сеп 27, 2007 4:31 pm ]
Заглавие: 

Ротация на регистъра през "С" и ако С=1, пин=1, иначе пин=0...
...или пак с ротация, но си определяш пина по бит 0 или бит 8 (зависи на къде въртиш) на самия регистър.

Автор:  setoy [ Чет Сеп 27, 2007 4:32 pm ]
Заглавие: 

:idea: Добре е все пак да пишеш за КАКЪВ точно контролер става дума, не всеки може да се досети.

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 ти е отговорил малко преди мен :)

Автор:  dan [ Чет Сеп 27, 2007 4:51 pm ]
Заглавие: 

аз прочетох отговора. Просто исках да знам дали има по-лесен начин за сериализиране, от това постоянно да се обръщам към carry-то.
Аз иначе съм си съчинил една функцийка, дето отнема толкова ресурси.... Става въпрос за pic12f :)
Благодаря за отговорите.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/