📄 sim340.lis
字号:
013E ; Pdst -> R12,R13
013E ; Psrc -> R14,R15
.even
013E _diandao::
013E 0E940000 xcall push_gset5
0142 6901 movw R12,R18
0144 7801 movw R14,R16
0146 AA84 ldd R10,y+10
0148 BB84 ldd R11,y+11
014A .dbline -1
014A .dbline 115
014A ; }
014A ; /*
014A ; //删除短消息
014A ; int deleteSms(char pBuf[],short int index)
014A ; {
014A ; pBuf[0] = 'A';
014A ; pBuf[1] = 'T';
014A ; pBuf[2] = '+';
014A ; pBuf[3] = 'C';
014A ; pBuf[4] = 'M';
014A ; pBuf[5] = 'G';
014A ; pBuf[6] = 'D';
014A ; pBuf[7] = '=';
014A ; pBuf[8] = (char)((index >> 8) & 0xff + 0x30);
014A ; pBuf[9] = (char)(index & 0xff + 0x30);
014A ; pBuf[10] = 13;
014A ;
014A ; return 11;
014A ; }*/
014A ; //接收短消息
014A ; /*
014A ; int revSms(char pBuf[],char pOut[])
014A ; {
014A ; pBuf[0] = 'A';
014A ; pBuf[1] = 'T';
014A ; pBuf[2] = '+';
014A ; pBuf[3] = 'C';
014A ; pBuf[4] = 'M';
014A ; pBuf[5] = 'G';
014A ; pBuf[6] = 'R';
014A ; pBuf[7] = '=';
014A ; pBuf[8] = (char)((index >> 8) & 0xff + 0x30);
014A ; pBuf[9] = (char)(index & 0xff + 0x30);
014A ; pBuf[10] = 13;
014A ;
014A ; return 11;
014A ; }*/
014A ; //把电话号码转换为PDU格式
014A ; void diandao(char *Psrc,char *Pdst,int sca_len_temp)
014A ; {
014A .dbline 116
014A ; int i,j=4;
014A 44E0 ldi R20,4
014C 50E0 ldi R21,0
014E .dbline 117
014E ; for(i=0;i<sca_len_temp/2;i++)
014E 6627 clr R22
0150 7727 clr R23
0152 22C0 xjmp L9
0154 L6:
0154 .dbline 118
0154 .dbline 119
0154 1A01 movw R2,R20
0156 4F5F subi R20,255 ; offset = 1
0158 5F4F sbci R21,255
015A 02E0 ldi R16,2
015C 10E0 ldi R17,0
015E 9B01 movw R18,R22
0160 0E940000 xcall empy16s
0164 F801 movw R30,R16
0166 EE0D add R30,R14
0168 FF1D adc R31,R15
016A 4180 ldd R4,z+1
016C F101 movw R30,R2
016E EC0D add R30,R12
0170 FD1D adc R31,R13
0172 4082 std z+0,R4
0174 .dbline 120
0174 1A01 movw R2,R20
0176 4F5F subi R20,255 ; offset = 1
0178 5F4F sbci R21,255
017A 02E0 ldi R16,2
017C 10E0 ldi R17,0
017E 9B01 movw R18,R22
0180 0E940000 xcall empy16s
0184 F801 movw R30,R16
0186 EE0D add R30,R14
0188 FF1D adc R31,R15
018A 4080 ldd R4,z+0
018C F101 movw R30,R2
018E EC0D add R30,R12
0190 FD1D adc R31,R13
0192 4082 std z+0,R4
0194 .dbline 121
0194 L7:
0194 .dbline 117
0194 6F5F subi R22,255 ; offset = 1
0196 7F4F sbci R23,255
0198 L9:
0198 .dbline 117
0198 22E0 ldi R18,2
019A 30E0 ldi R19,0
019C 8501 movw R16,R10
019E 0E940000 xcall div16s
01A2 6017 cp R22,R16
01A4 7107 cpc R23,R17
01A6 0CF4 brge X0
01A8 D5CF xjmp L6
01AA X0:
01AA .dbline -2
01AA L5:
01AA 0E940000 xcall pop_gset5
01AE .dbline 0 ; func end
01AE 0895 ret
01B0 .dbsym r j 20 I
01B0 .dbsym r i 22 I
01B0 .dbsym r sca_len_temp 10 I
01B0 .dbsym r Pdst 12 pc
01B0 .dbsym r Psrc 14 pc
01B0 .dbend
.area lit(rom, con, rel)
0000 L11:
0000 3038 .byte 48,56
0002 3931 .byte 57,49
0004 00000000000000000000 .word 0,0,0,0,0
000E 00000000 .byte 0,0,0,0
0012 L12:
0012 3131 .byte 49,49
0014 3030 .byte 48,48
0016 3044 .byte 48,'D
.area text(rom, con, rel)
01B0 .dbfile C:\DOCUME~1\Administrator\桌面\sim340_e\sim340.c
01B0 .dbfunc e SendMsm _SendMsm fV
01B0 ; Len -> y+578
01B0 ; pBuf -> y+378
01B0 ; nContent_Len -> y+376
01B0 ; chrInfo -> y+370
01B0 ; nLen_temp -> y+368
01B0 ; strHead_temp -> y+354
01B0 ; nTempLen -> y+352
01B0 ; chrTemp -> y+252
01B0 ; strHead -> y+234
01B0 ; n -> y+232
01B0 ; phoneTemp -> y+212
01B0 ; nOff -> y+210
01B0 ; nTemp -> y+110
01B0 ; nOffset -> y+108
01B0 ; chrTmp -> y+8
01B0 ; i -> y+6
01B0 ; sca_len -> R20,R21
01B0 ; sca -> y+605
01B0 ; pOut2 -> R22,R23
01B0 ; pOut1 -> R10,R11
01B0 ; nTXLen2 -> R12,R13
01B0 ; nTXLen1 -> R14,R15
01B0 ; nLen -> y+595
01B0 ; pData -> y+593
01B0 ; phonelen -> y+591
01B0 ; pPhone -> y+589
.even
01B0 _SendMsm::
01B0 0E940000 xcall push_arg4
01B4 0E940000 xcall push_gset5
01B8 EF97 sbiw R28,63
01BA EF97 sbiw R28,63
01BC EF97 sbiw R28,63
01BE EF97 sbiw R28,63
01C0 EF97 sbiw R28,63
01C2 EF97 sbiw R28,63
01C4 EF97 sbiw R28,63
01C6 EF97 sbiw R28,63
01C8 EF97 sbiw R28,63
01CA 2C97 sbiw R28,12 ; offset = 579
01CC FE01 movw R30,R28
01CE EB5A subi R30,171 ; addi 597
01D0 FD4F sbci R31,253
01D2 E080 ldd R14,z+0
01D4 F180 ldd R15,z+1
01D6 FE01 movw R30,R28
01D8 E95A subi R30,169 ; addi 599
01DA FD4F sbci R31,253
01DC C080 ldd R12,z+0
01DE D180 ldd R13,z+1
01E0 FE01 movw R30,R28
01E2 E75A subi R30,167 ; addi 601
01E4 FD4F sbci R31,253
01E6 A080 ldd R10,z+0
01E8 B180 ldd R11,z+1
01EA FE01 movw R30,R28
01EC E55A subi R30,165 ; addi 603
01EE FD4F sbci R31,253
01F0 6081 ldd R22,z+0
01F2 7181 ldd R23,z+1
01F4 FE01 movw R30,R28
01F6 E15A subi R30,161 ; addi 607
01F8 FD4F sbci R31,253
01FA 4081 ldd R20,z+0
01FC 5181 ldd R21,z+1
01FE .dbline -1
01FE .dbline 126
01FE ; {
01FE ; Pdst[j++]=Psrc[2*i+1];
01FE ; Pdst[j++]=Psrc[2*i];
01FE ; }
01FE ; }
01FE ; //发送短消息
01FE ; void SendMsm(char pPhone[],int phonelen,char pData[],int nLen,int *nTXLen1,
01FE ; int *nTXLen2,char pOut1[],char pOut2[],char sca[],int sca_len)
01FE ; {
01FE .dbline 127
01FE ; char strHead[18] = {'0','8','9','1'};
01FE 80E0 ldi R24,<L11
0200 90E0 ldi R25,>L11
0202 FE01 movw R30,R28
0204 E651 subi R30,22 ; offset = 234
0206 FF4F sbci R31,255
0208 02E1 ldi R16,18
020A 10E0 ldi R17,0
020C FA93 st -y,R31
020E EA93 st -y,R30
0210 9A93 st -y,R25
0212 8A93 st -y,R24
0214 0E940000 xcall asgncblk
0218 .dbline 128
0218 ; char chrInfo[6] = {'1','1','0','0','0','D'}; //基本参数、消息基准值、目标地址个数
0218 80E0 ldi R24,<L12
021A 90E0 ldi R25,>L12
021C FE01 movw R30,R28
021E EE58 subi R30,142 ; offset = 370
0220 FE4F sbci R31,254
0222 06E0 ldi R16,6
0224 10E0 ldi R17,0
0226 FA93 st -y,R31
0228 EA93 st -y,R30
022A 9A93 st -y,R25
022C 8A93 st -y,R24
022E 0E940000 xcall asgncblk
0232 .dbline 143
0232 ; int nLen_temp;
0232 ; int nContent_Len;
0232 ; int nTempLen;
0232 ; int nOff;
0232 ; int nOffset;
0232 ; char chrTemp[100];
0232 ; char chrTmp[100]; //暂时存放电话号码
0232 ; char pBuf[200];
0232 ; char phoneTemp[20]; //转变后的电话号码
0232 ; char nTemp[100];
0232 ; char Len[1];
0232 ; int i;
0232 ; int n;
0232 ; char strHead_temp[14];
0232 ; diandao(sca,strHead_temp,sca_len);
0232 5983 std y+1,R21
0234 4883 std y+0,R20
0236 9E01 movw R18,R28
0238 2E59 subi R18,158 ; offset = 354
023A 3E4F sbci R19,254
023C FE01 movw R30,R28
023E E35A subi R30,163 ; addi 605
0240 FD4F sbci R31,253
0242 0081 ldd R16,z+0
0244 1181 ldd R17,z+1
0246 7BDF xcall _diandao
0248 .dbline 144
0248 ; for(i=0;i<sca_len;i++)
0248 2224 clr R2
024A 3324 clr R3
024C 3F82 std y+7,R3
024E 2E82 std y+6,R2
0250 15C0 xjmp L16
0252 L13:
0252 .dbline 145
0252 .dbline 146
0252 CE01 movw R24,R28
0254 8E59 subi R24,158 ; offset = 354
0256 9E4F sbci R25,254
0258 EE81 ldd R30,y+6
025A FF81 ldd R31,y+7
025C E80F add R30,R24
025E F91F adc R31,R25
0260 2080 ldd R2,z+0
0262 CE01 movw R24,R28
0264 8251 subi R24,18 ; offset = 238
0266 9F4F sbci R25,255
0268 EE81 ldd R30,y+6
026A FF81 ldd R31,y+7
026C E80F add R30,R24
026E F91F adc R31,R25
0270 2082 std z+0,R2
0272 .dbline 147
0272 L14:
0272 .dbline 144
0272 8E81 ldd R24,y+6
0274 9F81 ldd R25,y+7
0276 0196 adiw R24,1
0278 9F83 std y+7,R25
027A 8E83 std y+6,R24
027C L16:
027C .dbline 144
027C 2E80 ldd R2,y+6
027E 3F80 ldd R3,y+7
0280 2416 cp R2,R20
0282 3506 cpc R3,R21
0284 34F3 brlt L13
0286 .dbline 148
0286 ; {
0286 ; strHead[i+4]=strHead_temp[i];
0286 ; }
0286 ; nOff = 0;
0286 2224 clr R2
0288 3324 clr R3
028A FE01 movw R30,R28
028C EE52 subi R30,46 ; addi 210
028E FF4F sbci R31,255
0290 3182 std z+1,R3
0292 2082 std z+0,R2
0294 .dbline 149
0294 ; nOffset = 0;
0294 FE01 movw R30,R28
0296 E459 subi R30,148 ; addi 108
0298 FF4F sbci R31,255
029A 3182 std z+1,R3
029C 2082 std z+0,R2
029E .dbline 150
029E ; for(i = 0;i < phonelen;i++)
029E 3F82 std y+7,R3
02A0 2E82 std y+6,R2
02A2 16C0 xjmp L21
02A4 L18:
02A4 .dbline 151
02A4 .dbline 152
02A4 EE81 ldd R30,y+6
02A6 FF81 ldd R31,y+7
02A8 DE01 movw R26,R28
02AA A35B subi R26,179 ; addi 589
02AC BD4F sbci R27,253
02AE 0D90 ld R0,x+
02B0 1C90 ld R1,x
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -