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

 
 
> Нелогичность вставки #asm после if в PICC-18 STD 9.51PL1?, Есть ли какой стандарт на данную тему?
PV`
сообщение May 5 2008, 14:37
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 6-06-07
Пользователь №: 28 245



Баг или фича с #asm после if в PICC-18 STD 9.51PL1?
Пользую: MPLAB IDE v8.10, HI-TECH PICC-18 STD Release Notes for Version 9.51PL1, chip=18F258
Пример1 (asm вставляется в if):
Код
main.c:
#include <pic18.h>
near unsigned char test;
void main(void)
{
if (test!=0) test=0x55;
#asm
  movlw 0AAh
  movwf _test,c
#endasm
  LATC=test;
}
Listing:
  _main:                                
; errata NOP at function entry point    
       dw      65535                    
;tst.c: 5: if (test!=0) test=0x55;      
       movf    _test,w,c                
       bz      l2                      
       movlw   85                      
       movwf   _test,c                  
       movlw   170    ;#              
       movwf   _test,c;#              
  l2:                                  
;tst.c: 10: LATC=test;                  
       movff   _test,3979     ;volatile
;tst.c: 11: }                          
       goto    start

Пример2 (добален только ";" и asm вставляется уже после if):
Код
#include <pic18.h>
near unsigned char test;
void main(void)
{
if (test!=0) test=0x55;;
#asm
  movlw 0AAh
  movwf _test,c
#endasm
  LATC=test;
}
Listing:
  _main:                                
; errata NOP at function entry point    
       dw      65535                    
;tst.c: 5: if (test!=0) test=0x55;;  
       movf    _test,w,c                
       bz      l2                      
       movlw   85                      
       movwf   _test,c                  
  l2:                                  
       movlw   170    ;#              
       movwf   _test,c;#              
;tst.c: 10: LATC=test;                  
       movff   _test,3979     ;volatile
;tst.c: 11: }                          
       goto    start

Есть ли какой стандарт на данную тему?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DL36
сообщение May 5 2008, 16:56
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 460
Регистрация: 5-10-06
Из: Херсон
Пользователь №: 21 006



Цитата(PV` @ May 5 2008, 17:37) *
Баг или фича с #asm после if в PICC-18 STD 9.51PL1?

Есть ли какой стандарт на данную тему?

Делайте лучше асмовские модули. От вставок у компилятора сносит крышу.
Go to the top of the page
 
+Quote Post
PV`
сообщение May 6 2008, 12:47
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 6-06-07
Пользователь №: 28 245



Цитата(DL36 @ May 5 2008, 20:56) *
Делайте лучше асмовские модули. От вставок у компилятора сносит крышу.

С общей рекомендацией “Делайте лучше асмовские модули” согласны многие, но в жизни всегда есть “другой случай” smile.gif
По моей последней практике, при большом количестве разовых проектов, бывают случаи, когда проще или быстрее впихнуть вставку на asm и глянуть листинг, чем описывать и отлаживать внешние ассемблерные модули, тем более вызываемые только через call с тусовкой параметров через память…
Снос крыши компилятора контролируем. И к описанному примеру есть безобидное решение – вставка дополнительного “;”. Для этого и тему создал.
PS: Никакой войны кто круче - СИ или АСМ и кто быстрее и оптимальнее созданет внешние ПП на asm smile3009.gif
Go to the top of the page
 
+Quote Post



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

 


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


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