|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 1:19 am
Разделяне на подпрограмите в .с фаилове.
| Автор |
Съобщение |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
|
| Сря Фев 24, 2010 8:13 pm |
|
 |
|
edi
Ранг: Минаващ
Регистриран на: Чет Окт 12, 2006 3:52 pm Мнения: 21 Местоположение: Varna
|
Мерси, но не проработи както трябва, т.к. varh e 8bit.Ето така стана  , temp e 16bit и ротация на ляво е преместване от младшиа в старшиа байт.
|
| Сря Фев 24, 2010 8:32 pm |
|
 |
|
Cino
Ранг: Новодошъл
Регистриран на: Чет Окт 02, 2008 10:24 pm Мнения: 105
|
това като е unsigned char varh,
ще стане 0 след ( varh<<8 ),
трябва си кастване до unsigned int
примерно :
( (unsigned int)varh<<8 )+varl
|
| Сря Фев 24, 2010 8:32 pm |
|
 |
|
edi
Ранг: Минаващ
Регистриран на: Чет Окт 12, 2006 3:52 pm Мнения: 21 Местоположение: Varna
|
По този начин вече стана  .
|
| Сря Фев 24, 2010 8:59 pm |
|
 |
|
smtp
Ранг: Новодошъл
Регистриран на: Нед Яну 18, 2009 1:28 pm Мнения: 110
|
по бързо от union няма 
|
| Сря Фев 24, 2010 10:09 pm |
|
 |
|
darkshy
Ранг: Популярен
Регистриран на: Съб Ное 28, 2009 5:50 am Мнения: 391 Местоположение: Варна
|
Ааа много ви благодаря. Чак сега разбрах тази ротация 
_________________ Ангел Димитров 95
|
| Сря Фев 24, 2010 10:55 pm |
|
 |
|
edi
Ранг: Минаващ
Регистриран на: Чет Окт 12, 2006 3:52 pm Мнения: 21 Местоположение: Varna
|
Още нещо и без това темата се разводни...
 |  |  |  | Код: unsigned char ARGA_08,RES_0,REM_0,MTEMP; ARGA_08=25; MTEMP=8; RES_0=0x00;REM_0=0x00; _asm movlb 0x05 div_loop: bcf STATUS,0,ACCESS RLCF ARGA_08,1,BANKED rlcf REM_0,1,BANKED movlw 10 subwf REM_0,0,ACCESS bnc no_set movlw 10 subwf REM_0,1,BANKED bsf STATUS,0,ACCESS no_set: rlcf RES_0,1,BANKED decfsz MTEMP,1,BANKED bra div_loop _endasm |  |  |  |  |
В горния пример след изпълнението на инструкцията "rlcf" нищо не се променя, все едно е изпълнен Nop.Ако вместо "RLCF ARGA_08,1,BANKED" напиша "RLCF 1,1,BANKED" (ARGA_08 е в банка 5, 01 регистър) се ротира както трябва.Не искам да указвам адреса на регистъра директно, т.к. това са локални променливи и подлежат на оптимизаций, т.е. няма гаранция, че следващия път ARGA_08 ще има същия адрес.
И има ли начин да задам BSRа без да го пиша константен?
EDIT: който чете през редовете ще пита глупости  .
|
| Чет Фев 25, 2010 7:51 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 3 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|