scanner.asm
来自「dsp tmslf2407a 汇编,c的原代码,包括i2c,scitimer,f」· 汇编 代码 · 共 3,856 行 · 第 1/5 页
ASM
3,856 行
.line 24
;>>>> case 0x61:{snrTimeComPrefix();break;}
CALL _snrTimeComPrefix,AR1
B L43
L47:
.line 26
;>>>> case 0x02:{db();break;}
CALL _db,AR1
B L43
L48:
.line 27
;>>>> case 0x22:{dbTime();break;}
CALL _dbTime,AR1
B L43
L49:
.line 28
;>>>> case 0x42:{dbComPrefix();break;}
CALL _dbComPrefix,AR1
B L43
L50:
.line 29
;>>>> case 0x62:{dbTimeComPrefix();break;}
CALL _dbTimeComPrefix,AR1
B L43
L51:
.line 31
;>>>> case 0x03:{snrDb(); break;}
CALL _snrDb,AR1
B L43
L52:
.line 32
;>>>> case 0x23:{snrDbTime(); break;}
CALL _snrDbTime,AR1
B L43
L53:
.line 33
;>>>> case 0x43:{snrDbComPrefix();break;}
CALL _snrDbComPrefix,AR1
B L43
L54:
.line 34
;>>>> case 0x63:{snrDbTimeComPrefix();break;}
CALL _snrDbTimeComPrefix,AR1
B L43
L55:
.line 35
;>>>> default: {snr();break;}
CALL _snr,AR1
B L43
L41:
.line 19
ZALS _scan_data
SUBK 1
BZ L42
SUBK 1
BZ L47
SUBK 1
BZ L51
SUBK 30
BZ L44
SUBK 1
BZ L48
SUBK 1
BZ L52
SUBK 30
BZ L45
SUBK 1
BZ L49
SUBK 1
BZ L53
SUBK 30
BZ L46
SUBK 1
BZ L50
SUBK 1
BZ L54
B L55
L43:
.line 37
;>>>> scanReadCounter = 0;
LACK 0
LDPK _scanReadCounter
SACL _scanReadCounter
L40:
EPI0_3:
.line 39
MAR * ,AR1
SBRK 5
LAR AR0,*-
PSHD *
RET
.endfunc 177,000000000H,4
.sym _snr,_snr,32,3,0
.func 178
;>>>> static void snr(void)
;>>>> uchar i,j;
;>>>> uchar num_card;
******************************************************
* FUNCTION DEF : _snr
******************************************************
_snr:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,4
LAR AR0,*0+
.sym _i,1,12,1,16
.sym _j,2,12,1,16
.sym _num_card,3,12,1,16
.line 6
;>>>> myInvOut();
CALL _myInvOut
.line 7
;>>>> num_card = labeldata[0];
MAR * ,AR2
LARK AR2,3
MAR *0+
BLKD #_labeldata,*
.line 8
;>>>> if(num_card != 0)bReadTag = 1;
LAC *
BZ L56
LACK 1
LDPK _bReadTag
SACL _bReadTag
L56:
.line 9
;>>>> if( num_card == 1)
LAC *
SUBK 1
BNZ L57
.line 11
;>>>> for(i=0;i<8;i++)currUid[i] = labeldata[3+i];//copy uid to current UID
LACK 0
SBRK 2
SACL *
ZALS *
SUBK 8
BGEZ L59
L58:
LAC * ,AR0
ADLK _labeldata+3,0
SACL *
LAR AR3,* ,AR2
LAC * ,AR0
ADLK _currUid+0,0
SACL *
LAR AR4,* ,AR3
LAC * ,AR4
SACL * ,AR2
LAC *
ADDK 1
SACL *
ZALS *
SUBK 8
BLZ L58
L59:
.line 12
;>>>> if( compareUid()==0 ) //same uid
CALL _compareUid,AR1
BNZ L60
.line 14
;>>>> if(trigger == 0)// single read
LDPK _trigger
LAC _trigger
BNZ L66
.line 16
;>>>> for(j=0;j<8;j++)serialPortOutput1byte(labeldata[3+j]);
LACK 0
MAR * ,AR2
LARK AR2,2
MAR *0+
SACL *
ZALS *
SUBK 8
BGEZ L63
L62:
LAC * ,AR0
ADLK _labeldata+3,0
SACL *
LAR AR3,* ,AR3
LAC * ,AR1
SACL *+
CALL _serialPortOutput1byte
MAR *-,AR2
LARK AR2,2
MAR *0+
LAC *
ADDK 1
SACL *
ZALS *
SUBK 8
BLZ L62
L63:
.line 17
;>>>> if(ec == 0x0d0a)
LDPK _ec
LAC _ec
SUBK 3338
BNZ L64
.line 19
;>>>> serialPortOutput1byte(ec>>8);
RSXM
LAC _ec,7
MAR * ,AR1
SACH *+,1
CALL _serialPortOutput1byte
MAR *-
.line 20
;>>>> serialPortOutput1byte(ec&0xff);
LACK 255
LDPK _ec
AND _ec
SACL *+
CALL _serialPortOutput1byte
MAR *-
B L66
L64:
.line 22
;>>>> else serialPortOutput1byte(ec&0xff); //send ec
;>>>> else // different uid
ADDK 3338
ANDK 255
MAR * ,AR1
SACL *+
CALL _serialPortOutput1byte
MAR *-
B L66
L60:
.line 27
;>>>> for(j=0;j<8;j++)serialPortOutput1byte(labeldata[3+j]);
LACK 0
MAR * ,AR2
LARK AR2,2
MAR *0+
SACL *
ZALS *
SUBK 8
BGEZ L68
L67:
LAC * ,AR0
ADLK _labeldata+3,0
SACL *
LAR AR3,* ,AR3
LAC * ,AR1
SACL *+
CALL _serialPortOutput1byte
MAR *-,AR2
LARK AR2,2
MAR *0+
LAC *
ADDK 1
SACL *
ZALS *
SUBK 8
BLZ L67
L68:
.line 28
;>>>> if(ec == 0x0d0a)
LDPK _ec
LAC _ec
SUBK 3338
BNZ L69
.line 30
;>>>> serialPortOutput1byte(ec>>8);
RSXM
LAC _ec,7
MAR * ,AR1
SACH *+,1
CALL _serialPortOutput1byte
MAR *-
.line 31
;>>>> serialPortOutput1byte(ec&0xff);
LACK 255
LDPK _ec
AND _ec
SACL *+
CALL _serialPortOutput1byte
MAR *-
B L66
L69:
.line 33
;>>>> else serialPortOutput1byte(ec&0xff); //send ec
ADDK 3338
ANDK 255
MAR * ,AR1
SACL *+
CALL _serialPortOutput1byte
MAR *-
L66:
.line 35
;>>>> for(i=0;i<8;i++)lastUid[i] = currUid[i];//copy current uid as last uid
LACK 0
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
ZALS *
SUBK 8
BGEZ L73
L71:
LAC * ,AR0
ADLK _currUid+0,0
SACL *
LAR AR3,* ,AR2
LAC * ,AR0
ADLK _lastUid+0,0
SACL *
LAR AR4,* ,AR3
LAC * ,AR4
SACL * ,AR2
LAC *
ADDK 1
SACL *
ZALS *
SUBK 8
BLZ L71
B L73
L57:
.line 37
;>>>> else if( num_card >= 2 )//exist card
ZALS *
SUBK 2
BLZ L73
.line 39
;>>>> for(i=0;i<num_card;i++)
LACK 0
SBRK 2
SACL *
ZALS *
ADRK 2
SUBS *
BGEZ L73
MAR *-
L75:
.line 41
;>>>> for(j=0;j<8;j++)
LACK 0
SACL *
ZALS *
SUBK 8
BGEZ L78
MAR *-
L77:
.line 43
;>>>> serialPortOutput1byte(labeldata[i*10+3+j]);
LT *+
MPYK 10
PAC
ADDK 3
RSXM
ADLK _labeldata+0,0
ADD * ,AR0
SACL *
LAR AR3,* ,AR3
LAC * ,AR1
SACL *+
CALL _serialPortOutput1byte
MAR *-,AR2
.line 41
LARK AR2,2
MAR *0+
LAC *
ADDK 1
SACL *
ZALS *-
SUBK 8
BLZ L77
L78:
.line 45
;>>>> if(ec == 0x0d0a)
LDPK _ec
LAC _ec
SUBK 3338
BNZ L79
.line 47
;>>>> serialPortOutput1byte(ec>>8);
RSXM
LAC _ec,7
MAR * ,AR1
SACH *+,1
CALL _serialPortOutput1byte
MAR *-
.line 48
;>>>> serialPortOutput1byte(ec&0xff);
LACK 255
LDPK _ec
AND _ec
SACL *+
CALL _serialPortOutput1byte
MAR *-
B L80
L79:
.line 50
;>>>> else serialPortOutput1byte(ec&0xff); //send ec
;>>>> else{; } //error
ADDK 3338
ANDK 255
MAR * ,AR1
SACL *+
CALL _serialPortOutput1byte
MAR *-
L80:
.line 39
MAR * ,AR2
LARK AR2,1
MAR *0+
LAC *
ADDK 1
SACL *
ZALS *
ADRK 2
SUBS *-
BLZ L75
L73:
EPI0_4:
.line 54
MAR * ,AR1
SBRK 5
LAR AR0,*-
PSHD *
RET
.endfunc 231,000000000H,4
.sym _snrTime,_snrTime,32,3,0
.func 232
;>>>> static void snrTime(void)
;>>>> uchar i,j;
;>>>> uchar num_card;
******************************************************
* FUNCTION DEF : _snrTime
******************************************************
_snrTime:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,4
LAR AR0,*0+
.sym _i,1,12,1,16
.sym _j,2,12,1,16
.sym _num_card,3,12,1,16
.line 6
;>>>> myInvOut();
CALL _myInvOut
.line 7
;>>>> num_card = labeldata[0];
MAR * ,AR2
LARK AR2,3
MAR *0+
BLKD #_labeldata,*
.line 8
;>>>> if(num_card != 0)bReadTag = 1;
LAC *
BZ L81
LACK 1
LDPK _bReadTag
SACL _bReadTag
L81:
.line 9
;>>>> if( num_card == 1)
LAC *
SUBK 1
BNZ L82
.line 11
;>>>> for(i=0;i<8;i++)currUid[i] = labeldata[3+i];//copy uid to current UID
LACK 0
SBRK 2
SACL *
ZALS *
SUBK 8
BGEZ L84
L83:
LAC * ,AR0
ADLK _labeldata+3,0
SACL *
LAR AR3,* ,AR2
LAC * ,AR0
ADLK _currUid+0,0
SACL *
LAR AR4,* ,AR3
LAC * ,AR4
SACL * ,AR2
LAC *
ADDK 1
SACL *
ZALS *
SUBK 8
BLZ L83
L84:
.line 12
;>>>> getBufferTime();
CALL _getBufferTime,AR1
.line 13
;>>>> if(compareUid()==0 ) // same uid
CALL _compareUid
BNZ L85
.line 15
;>>>> if(trigger == 0)// single read
LDPK _trigger
LAC _trigger
BNZ L93
.line 17
;>>>> for(j=0;j<8;j++)serialPortOutput1byte(labeldata[3+j]);
LACK 0
MAR * ,AR2
LARK AR2,2
MAR *0+
SACL *
ZALS *
SUBK 8
BGEZ L88
L87:
LAC * ,AR0
ADLK _labeldata+3,0
SACL *
LAR AR3,* ,AR3
LAC * ,AR1
SACL *+
CALL _serialPortOutput1byte
MAR *-,AR2
LARK AR2,2
MAR *0+
LAC *
ADDK 1
SACL *
ZALS *
SUBK 8
BLZ L87
L88:
.line 18
;>>>> if(sc == 0x0d0a)
LDPK _sc
LAC _sc
SUBK 3338
BNZ L89
.line 20
;>>>> serialPortOutput1byte(sc>>8);
RSXM
LAC _sc,7
MAR * ,AR1
SACH *+,1
CALL _serialPortOutput1byte
MAR *-
.line 21
;>>>> serialPortOutput1byte(sc&0xff);
LACK 255
LDPK _sc
AND _sc
SACL *+
CALL _serialPortOutput1byte
MAR *-
B L90
L89:
.line 23
;>>>> else serialPortOutput1byte(sc&0xff);//send out sc
ADDK 3338
ANDK 255
MAR * ,AR1
SACL *+
CALL _serialPortOutput1byte
MAR *-
L90:
.line 24
;>>>> serialPortOutput1byte(Day);
BLKD _Day+0,*+
CALL _serialPortOutput1byte
MAR *-
.line 25
;>>>> serialPortOutput1byte(Hour);
BLKD _Hour+0,*+
CALL _serialPortOutput1byte
MAR *-
.line 26
;>>>> serialPortOutput1byte(Minute);
BLKD _Minute+0,*+
CALL _serialPortOutput1byte
MAR *-
.line 27
;>>>> serialPortOutput1byte(Second); //send out time
BLKD _Second+0,*+
CALL _serialPortOutput1byte
MAR *-
.line 28
;>>>> if(ec == 0x0d0a)
LDPK _ec
LAC _ec
SUBK 3338
BNZ L91
.line 30
;>>>> serialPortOutput1byte(ec>>8);
RSXM
LAC _ec,7
SACH *+,1
CALL _serialPortOutput1byte
MAR *-
.line 31
;>>>> serialPortOutput1byte(ec&0xff);
LACK 255
LDPK _ec
AND _ec
SACL *+
CALL _serialPortOutput1byte
MAR *-
B L93
L91:
.line 33
;>>>> else serialPortOutput1byte(ec&0xff);//sendout ec
;>>>> else //different uid
ADDK 3338
ANDK 255
SACL *+
CALL _serialPortOutput1byte
MAR *-
B L93
L85:
.line 38
;>>>> for(j=0;j<8;j++)serialPortOutput1byte(labeldata[3+j]);
LACK 0
MAR * ,AR2
LARK AR2,2
MAR *0+
SACL *
ZALS *
SUBK 8
BGEZ L95
L94:
LAC * ,AR0
ADLK _labeldata+3,0
SACL *
LAR AR3,* ,AR3
LAC * ,AR1
SACL *+
CALL _serialPortOutput1byte
MAR *-,AR2
LARK AR2,2
MAR *0+
LAC *
ADDK 1
SACL *
ZALS *
SUBK 8
BLZ L94
L95:
.line 39
;>>>> if(sc == 0x0d0a)
LDPK _sc
LAC _sc
SUBK 3338
BNZ L96
.line 41
;>>>> serialPortOutput1byte(sc>>8);
RSXM
LAC _sc,7
MAR * ,AR1
SACH *+,1
CALL _serialPortOutput1byte
MAR *-
.line 42
;>>>> serialPortOutput1byte(sc&0xff);
LACK 255
LDPK _sc
AND _sc
SACL *+
CALL _serialPortOutput1byte
MAR *-
B L97
L96:
.line 44
;>>>> else serialPortOutput1byte(sc&0xff);//send out sc
ADDK 3338
ANDK 255
MAR * ,AR1
SACL *+
CALL _serialPortOutput1byte
MAR *-
L97:
.line 45
;>>>> serialPortOutput1byte(Day);
BLKD _Day+0,*+
CALL _serialPortOutput1byte
MAR *-
.line 46
;>>>> serialPortOutput1byte(Hour);
BLKD _Hour+0,*+
CALL _serialPortOutput1byte
MAR *-
.line 47
;>>>> serialPortOutput1byte(Minute);
BLKD _Minute+0,*+
CALL _serialPortOutput1byte
MAR *-
.line 48
;>>>> serialPortOutput1byte(Second); //send out time
BLKD _Second+0,*+
CALL _serialPortOutput1byte
MAR *-
.line 49
;>>>> if(ec == 0x0d0a)
LDPK _ec
LAC _ec
SUBK 3338
BNZ L98
.line 51
;>>>> serialPortOutput1byte(ec>>8);
RSXM
LAC _ec,7
SACH *+,1
CALL _serialPortOutput1byte
MAR *-
.line 52
;>>>> serialPortOutput1byte(ec&0xff);
LACK 255
LDPK _ec
AND _ec
SACL *+
CALL _serialPortOutput1byte
MAR *-
B L93
L98:
.line 54
;>>>> else serialPortOutput1byte(ec&0xff);//sendout ec
ADDK 3338
ANDK 255
SACL *+
CALL _serialPortOutput1byte
MAR *-
L93:
.line 56
;>>>> for(i=0;i<8;i++)lastUid[i] = currUid[i];//copy current uid as last uid
LACK 0
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
ZALS *
SUBK 8
BGEZ L102
L100:
LAC * ,AR0
ADLK _currUid+0,0
SACL *
LAR AR3,* ,AR2
LAC * ,AR0
ADLK _lastUid+0,0
SACL *
LAR AR4,* ,AR3
LAC * ,AR4
SACL * ,AR2
LAC *
ADDK 1
SACL *
ZALS *
SUBK 8
BLZ L100
B L102
L82:
.line 58
;>>>> else if( num_card >= 2 )//exist card
ZALS *
SUBK 2
BLZ L102
.line 60
;>>>> getBufferTime();
CALL _getBufferTime,AR1
.line 61
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?