Fwd: XC8 Optimalizace 2, proc nefunguje spravne v preruseni.

Libor Konečný support na mikrovlny.cz
Středa Listopad 3 13:35:47 CET 2021


Jeste opravuji,

Uvedeny ASM list ,ma popisky obracene  (porobmenna Bt_pos je v bank 2 
vzdy (map soubor).

Spravne tedy list s optimalizaci 2 (nefunkcni)

if (intrbyte==xBTCON1[bt1_pos]) {bt1_pos+ } else bt1_pos=0;
   95991  01AEE4 0E78                   movlw    low _xBTCON1
  95992  01AEE6  2528                   addwf    _bt1_pos& (0+255),w,b
  95993  01AEE8  6ED9                   movwf    fsr2l,c
  95994  01AEEA  6ADA                   clrf    fsr2h,c
  95995  01AEEC  0E06                   movlw    high _xBTCON1
  95996  01AEEE  22DA                   addwfc    fsr2h,f,c
  95997  01AEF0  5192                   movf    _intrbyte& (0+255),w,b
  95998  01AEF2  18DE                   xorwf    postinc2,w,c
  95999  01AEF4  A4D8                   btfss    status,2,c
  96000  01AEF6  D002                   goto    i2l41145
  96001
  96002                           ; BSR set to: 2
  96003  01AEF8  2B28                   incf    _bt1_pos& (0+255),f,b
  96004  01AEFA  D002                   goto    i2l41147
  96005  01AEFC                     i2l41145:
  96006
  96007                           ; BSR set to: 2
  96008  01AEFC  0E00                   movlw    0
  96009  01AEFE  6F28                   movwf    _bt1_pos& (0+255),b
  96010  01AF00                     i2l41147:
  96011
  96012                           ; BSR set to: 2
  96013                           ;main.c: 3051: if (bt1_pos==14) 
{bt1_pos=0;
  96014  01AF00  0E0E                   movlw    14
  96015  01AF02  1928                   xorwf    _bt1_pos& (0+255),w,b
  96016  01AF04  A4D8                   btfss    status,2,c
  96017  01AF06  D004                   goto    i2l41151


A s 'optimalizaci' 1 ktera je funkcni

if (intrbyte==xBTCON1[bt1_pos]) {bt1_pos++; } else bt1_pos=0;
  95092  01A8E2  0E8C                   movlw    low _xBTCON1
  95093  01A8E4  0102                   movlb    2    ; () banked
  95094  01A8E6  252A                   addwf    _bt1_pos& (0+255),w,b
  95095  01A8E8  6ED9                   movwf    fsr2l,c
  95096  01A8EA  6ADA                   clrf    fsr2h,c
  95097  01A8EC  0E06                   movlw    high _xBTCON1
  95098  01A8EE  22DA                   addwfc    fsr2h,f,c
  95099  01A8F0  0101                   movlb    1    ; () banked
  95100  01A8F2  51F4                   movf    _intrbyte& (0+255),w,b
  95101  01A8F4  18DE                   xorwf    postinc2,w,c
  95102  01A8F6  A4D8                   btfss    status,2,c
  95103  01A8F8  D003                   goto    i2l59157
  95104
  95105                           ; BSR set to: 1
  95106  01A8FA  0102                   movlb    2    ; () banked
  95107  01A8FC  2B2A                   incf    _bt1_pos& (0+255),f,b
  95108  01A8FE  D003                   goto    i2l59159
  95109  01A900                     i2l59157:
  95110
  95111                           ; BSR set to: 1
  95112  01A900  0E00                   movlw    0
  95113  01A902  0102                   movlb    2    ; () banked
  95114  01A904  6F2A                   movwf    _bt1_pos& (0+255),b
  95115  01A906                     i2l59159:
  95116
  95117                           ; BSR set to: 2
  95118                           ;main.c: 2992: if (bt1_pos==14) 
{bt1_pos=0;
  95119  01A906  0E0E                   movlw    14
  95120  01A908  192A                   xorwf    _bt1_pos& (0+255),w,b
  95121  01A90A  A4D8                   btfss    status,2,c
  95122  01A90C  D004                   goto    i2l59163
  95123




Diky moc

LK









_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list