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

 
 
 
Reply to this topicStart new topic
> Странный NOP, Не исполняемый в DASMе
IXFN50N80Q2
сообщение Nov 2 2010, 20:19
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 138
Регистрация: 12-05-09
Пользователь №: 48 987



Код
1:                 #pragma interrupt hi_isr
2:                 void hi_isr(void){
  05DC    CFDA     MOVFF 0xfda, 0xfe4
  05DE    FFE4     NOP
  05E0    CFE2     MOVFF 0xfe2, 0xfda
  05E2    FFDA     NOP
  05E4    52E6     MOVF 0xfe6, F, ACCESS
3:                
4:                 _asm
5:                 NOP
  05E6    0000     NOP
6:                 _endasm
7:


Тупое прерывание Hi-ISR с NOPиком в качестве основного кода.
Но имеются какие то NOPы после MOVFF, которые при пошаговой отладке
не выполняются, в DISASSEMBLY LISTING они пропускаются.
Как это можно объяснить ? Компилер MCC18

При расширении кода, вот что творит.

Код
1:                 #pragma interrupt hi_isr
2:                 void hi_isr(void){
  0606    CFDA     MOVFF 0xfda, 0xfe4
  0608    FFE4     NOP
  060A    CFE2     MOVFF 0xfe2, 0xfda
  060C    FFDA     NOP
  060E    CFE9     MOVFF 0xfe9, 0xfe4
  0610    FFE4     NOP
  0612    CFEA     MOVFF 0xfea, 0xfe4
  0614    FFE4     NOP
  0616    CFF6     MOVFF 0xff6, 0xfe4
  0618    FFE4     NOP
  061A    CFF7     MOVFF 0xff7, 0xfe4
  061C    FFE4     NOP
  061E    CFF5     MOVFF 0xff5, 0xfe4
  0620    FFE4     NOP
  0622    CFF3     MOVFF 0xff3, 0xfe4
  0624    FFE4     NOP
  0626    CFF4     MOVFF 0xff4, 0xfe4
  0628    FFE4     NOP
  062A    CFFA     MOVFF 0xffa, 0xfe4
  062C    FFE4     NOP
  062E    EE00     LFSR 0, 0
  0630    F000     NOP
  0632    0E14     MOVLW 0x14
  0634    04E8     DECF 0xfe8, W, ACCESS
  0636    E303     BNC 0x63e
  0638    CFEE     MOVFF 0xfee, 0xfe4
  063A    FFE4     NOP
  063C    D7FB     BRA 0x634
  063E    EE00     LFSR 0, 0x14
  0640    F014     NOP
  0642    0E0C     MOVLW 0xc
  0644    04E8     DECF 0xfe8, W, ACCESS
  0646    E303     BNC 0x64e
  0648    CFEE     MOVFF 0xfee, 0xfe4
  064A    FFE4     NOP
  064C    D7FB     BRA 0x644
  064E    52E6     MOVF 0xfe6, F, ACCESS


Особенно непонятно что творит с fe4h

Сообщение отредактировал IXFN50N80Q2 - Nov 2 2010, 20:24
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 2 2010, 22:00
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Читайте ДШ.
То, что отмечено как NOP, есть второе слово команды. Оно начинается с 0хF*** - и сразу же попадает в категорию нопов - для защиты от зависонов на случай неправильного перехода. Надежность, тсз, повышается. biggrin.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th June 2025 - 13:16
Рейтинг@Mail.ru


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