📄 sim340.s
字号:
std z+1,R3
std z+0,R2
.dbline 158
; for(i = 0;i < phonelen / 2;i++) //把电话号码转换为PDU的格式
std y+7,R3
std y+6,R2
xjmp L25
L22:
.dbline 159
.dbline 160
movw R30,R28
subi R30,24 ; addi 232
sbci R31,255
ldd R2,z+0
ldd R3,z+1
movw R24,R2
adiw R24,1
movw R30,R28
subi R30,24 ; addi 232
sbci R31,255
std z+1,R25
std z+0,R24
ldd R18,y+6
ldd R19,y+7
ldi R16,2
ldi R17,0
xcall empy16s
movw R30,R16
movw R24,R28
adiw R24,9
add R30,R24
adc R31,R25
ldd R4,z+0
movw R24,R28
subi R24,44 ; offset = 212
sbci R25,255
movw R30,R2
add R30,R24
adc R31,R25
std z+0,R4
.dbline 161
movw R30,R28
subi R30,24 ; addi 232
sbci R31,255
ldd R2,z+0
ldd R3,z+1
movw R24,R2
adiw R24,1
movw R30,R28
subi R30,24 ; addi 232
sbci R31,255
std z+1,R25
std z+0,R24
ldd R18,y+6
ldd R19,y+7
ldi R16,2
ldi R17,0
xcall empy16s
movw R30,R16
movw R24,R28
adiw R24,8
add R30,R24
adc R31,R25
ldd R4,z+0
movw R24,R28
subi R24,44 ; offset = 212
sbci R25,255
movw R30,R2
add R30,R24
adc R31,R25
std z+0,R4
.dbline 162
L23:
.dbline 158
ldd R24,y+6
ldd R25,y+7
adiw R24,1
std y+7,R25
std y+6,R24
L25:
.dbline 158
ldi R18,2
ldi R19,0
movw R30,R28
subi R30,177 ; addi 591
sbci R31,253
ldd R16,z+0
ldd R17,z+1
xcall div16s
ldd R2,y+6
ldd R3,y+7
cp R2,R16
cpc R3,R17
brge X1
xjmp L22
X1:
.dbline 163
; {
; phoneTemp[n++] = chrTmp[2 * i + 1];
; phoneTemp[n++] = chrTmp[2 * i];
; }
; copy(chrTemp,0,chrInfo,0,6); //将源数组的内容拷贝到目的数组
ldi R24,6
ldi R25,0
std y+5,R25
std y+4,R24
clr R2
clr R3
std y+3,R3
std y+2,R2
movw R24,R28
subi R24,142 ; offset = 370
sbci R25,254
std y+1,R25
std y+0,R24
clr R18
clr R19
movw R16,R28
subi R16,4 ; offset = 252
sbci R17,255
xcall _copy
.dbline 164
; nOff = 6; //上一次的数组长度
ldi R24,6
ldi R25,0
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
std z+1,R25
std z+0,R24
.dbline 165
; chrTemp[nOff] = '8';
movw R24,R28
subi R24,4 ; offset = 252
sbci R25,255
movw R26,R28
subi R26,46 ; addi 210
sbci R27,255
ld R30,x+
ld R31,x
add R30,R24
adc R31,R25
ldi R24,56
std z+0,R24
.dbline 166
; nOff += 1;
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
ldd R24,z+0
ldd R25,z+1
adiw R24,1
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
std z+1,R25
std z+0,R24
.dbline 167
; chrTemp[nOff] = '1';
movw R24,R28
subi R24,4 ; offset = 252
sbci R25,255
movw R26,R28
subi R26,46 ; addi 210
sbci R27,255
ld R30,x+
ld R31,x
add R30,R24
adc R31,R25
ldi R24,49
std z+0,R24
.dbline 168
; nOff += 1;
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
ldd R24,z+0
ldd R25,z+1
adiw R24,1
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
std z+1,R25
std z+0,R24
.dbline 170
; //设置电话号码
; copy(chrTemp,nOff,phoneTemp,0,phonelen); //将源数组的内容拷贝到目的数组
movw R30,R28
subi R30,177 ; addi 591
sbci R31,253
ldd R0,z+0
ldd R1,z+1
std y+5,R1
std y+4,R0
clr R2
clr R3
std y+3,R3
std y+2,R2
movw R24,R28
subi R24,44 ; offset = 212
sbci R25,255
std y+1,R25
std y+0,R24
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
ldd R18,z+0
ldd R19,z+1
movw R16,R28
subi R16,4 ; offset = 252
sbci R17,255
xcall _copy
.dbline 171
; nOff += phonelen;
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
ldd R2,z+0
ldd R3,z+1
movw R30,R28
subi R30,177 ; addi 591
sbci R31,253
ldd R0,z+0
ldd R1,z+1
add R2,R0
adc R3,R1
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
std z+1,R3
std z+0,R2
.dbline 172
; chrTemp[nOff] = '0'; //设置协议标识
movw R24,R28
subi R24,4 ; offset = 252
sbci R25,255
movw R30,R2
add R30,R24
adc R31,R25
ldi R24,48
std z+0,R24
.dbline 173
; nOff += 1;
movw R24,R2
adiw R24,1
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
std z+1,R25
std z+0,R24
.dbline 174
; chrTemp[nOff] = '0';
movw R24,R28
subi R24,4 ; offset = 252
sbci R25,255
movw R26,R28
subi R26,46 ; addi 210
sbci R27,255
ld R30,x+
ld R31,x
add R30,R24
adc R31,R25
ldi R24,48
std z+0,R24
.dbline 175
; nOff += 1;
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
ldd R24,z+0
ldd R25,z+1
adiw R24,1
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
std z+1,R25
std z+0,R24
.dbline 177
;
; nContent_Len = nLen;
movw R30,R28
subi R30,173 ; addi 595
sbci R31,253
ldd R0,z+0
ldd R1,z+1
movw R30,R28
subi R30,136 ; addi 376
sbci R31,254
std z+1,R1
std z+0,R0
.dbline 179
; // 设置编码类型
; chrTemp[nOff] = '0';
movw R24,R28
subi R24,4 ; offset = 252
sbci R25,255
movw R26,R28
subi R26,46 ; addi 210
sbci R27,255
ld R30,x+
ld R31,x
add R30,R24
adc R31,R25
ldi R24,48
std z+0,R24
.dbline 180
; nOff += 1;
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
ldd R24,z+0
ldd R25,z+1
adiw R24,1
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
std z+1,R25
std z+0,R24
.dbline 181
; chrTemp[nOff] = '0';
movw R24,R28
subi R24,4 ; offset = 252
sbci R25,255
movw R26,R28
subi R26,46 ; addi 210
sbci R27,255
ld R30,x+
ld R31,x
add R30,R24
adc R31,R25
ldi R24,48
std z+0,R24
.dbline 182
; nOff += 1;
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
ldd R24,z+0
ldd R25,z+1
adiw R24,1
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
std z+1,R25
std z+0,R24
.dbline 184
;
; Len[0] = nLen;
movw R30,R28
subi R30,173 ; addi 595
sbci R31,253
ldd R2,z+0
ldd R3,z+1
movw R30,R28
subi R30,190 ; addi 578
sbci R31,253
std z+0,R2
.dbline 185
; for(i = 0;i < 10;i++)
clr R2
clr R3
std y+7,R3
std y+6,R2
L27:
.dbline 186
.dbline 187
movw R24,R28
adiw R24,8
ldd R30,y+6
ldd R31,y+7
add R30,R24
adc R31,R25
clr R2
std z+0,R2
.dbline 188
L28:
.dbline 185
ldd R24,y+6
ldd R25,y+7
adiw R24,1
std y+7,R25
std y+6,R24
.dbline 185
cpi R24,10
ldi R30,0
cpc R25,R30
brlt L27
.dbline 189
; {
; chrTmp[i] = 0;
; }
; ByteToChar(Len,chrTmp,1);
ldi R24,1
ldi R25,0
std y+1,R25
std y+0,R24
movw R18,R28
subi R18,248 ; offset = 8
sbci R19,255
movw R16,R28
subi R16,190 ; offset = 578
sbci R17,253
xcall _ByteToChar
.dbline 190
; chrTemp[nOff] = 'A';
movw R24,R28
subi R24,4 ; offset = 252
sbci R25,255
movw R26,R28
subi R26,46 ; addi 210
sbci R27,255
ld R30,x+
ld R31,x
add R30,R24
adc R31,R25
ldi R24,65
std z+0,R24
.dbline 191
; nOff += 1;
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
ldd R24,z+0
ldd R25,z+1
adiw R24,1
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
std z+1,R25
std z+0,R24
.dbline 192
; chrTemp[nOff] = 'A';
movw R24,R28
subi R24,4 ; offset = 252
sbci R25,255
movw R26,R28
subi R26,46 ; addi 210
sbci R27,255
ld R30,x+
ld R31,x
add R30,R24
adc R31,R25
ldi R24,65
std z+0,R24
.dbline 193
; nOff += 1;
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
ldd R24,z+0
ldd R25,z+1
adiw R24,1
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
std z+1,R25
std z+0,R24
.dbline 194
; copy(chrTemp,nOff,chrTmp,0,2);
ldi R24,2
ldi R25,0
std y+5,R25
std y+4,R24
clr R2
clr R3
std y+3,R3
std y+2,R2
movw R24,R28
adiw R24,8
std y+1,R25
std y+0,R24
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
ldd R18,z+0
ldd R19,z+1
movw R16,R28
subi R16,4 ; offset = 252
sbci R17,255
xcall _copy
.dbline 195
; nOff += 2;
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
ldd R24,z+0
ldd R25,z+1
adiw R24,2
movw R30,R28
subi R30,46 ; addi 210
sbci R31,255
std z+1,R25
std z+0,R24
.dbline 196
; nLen_temp = nOff;
movw R2,R24
movw R30,R28
subi R30,144 ; addi 368
sbci R31,254
std z+1,R3
std z+0,R2
.dbline 197
; nLen_temp += nContent_Len;
movw R30,R28
subi R30,136 ; addi 376
sbci R31,254
ldd R2,z+0
ldd R3,z+1
movw R4,R24
add R4,R2
adc R5,R3
movw R30,R28
subi R30,144 ; addi 368
sbci R31,254
std z+1,R5
std z+0,R4
.dbline 200
;
; //获得长度的字符数组
; nTempLen = IntToChar(nLen_temp,chrTmp);
movw R18,R28
subi R18,248 ; offset = 8
sbci R19,255
movw R16,R4
xcall _IntToChar
movw R30,R28
subi R30,160 ; addi 352
sbci R31,254
std z+1,R17
std z+0,R16
.dbline 202
; //封装长度信息
; nTemp[0] = 'A';
ldi R24,65
movw R30,R28
subi R30,146 ; addi 110
sbci R31,255
std z+0,R24
.dbline 203
; nTemp[1] = 'T';
ldi R24,84
movw R30,R28
subi R30,145 ; addi 111
sbci R31,255
std z+0,R24
.dbline 204
; nTemp[2] = '+';
ldi R24,43
movw R30,R28
subi R30,144 ; addi 112
sbci R31,255
std z+0,R24
.dbline 205
; nTemp[3] = 'C';
ldi R24,67
movw R30,R28
subi R30,143 ; addi 113
sbci R31,255
std z+0,R24
.dbline 206
; nTemp[4] = 'M';
ldi R24,77
movw R30,R28
subi R30,142 ; addi 114
sbci R31,255
std z+0,R24
.dbline 207
; nTemp[5] = 'G';
ldi R24,71
movw R30,R28
subi R30,141 ; addi 115
sbci R31,255
std z+0,R24
.dbline 208
; nTemp[6] = 'S';
ldi R24,83
movw R30,R28
subi R30,140 ; addi 116
sbci R31,255
std z+0,R24
.dbline 209
; nTemp[7] = '=';
ldi R24,61
movw R30,R28
subi R30,139 ; addi 117
sbci R31,255
std z+0,R24
.dbline 210
; nOffset = 8;
ldi R24,8
ldi R25,0
movw R30,R28
subi R30,148 ; addi 108
sbci R31,255
std z+1,R25
std z+0,R24
.dbline 212
; //长度
; for(i = 0;i < nTempLen;i++)
clr R2
clr R3
std y+7,R3
std y+6,R2
xjmp L41
L38:
.dbline 213
.dbline 214
movw R24,R28
adiw R24,8
ldd R30,y+6
ldd R31,y+7
add R30,R24
adc R31,R25
ldd R2,z+0
movw R24,R28
subi R24,146 ; offset = 110
sbci R25,255
movw R26,R28
subi R26,148 ; addi 108
sbci R27,255
ld R30,x+
ld R31,x
add R30,R24
adc R31,R25
std z+0,R2
.dbline 215
movw R30,R28
subi R30,148 ; addi 108
sbci R31,255
ldd R24,z+0
ldd R25,z+1
adiw R24,1
movw R30,R28
subi R30,148 ; addi 108
sbci R31,255
std z+1,R25
std z+0,R24
.dbline 216
L39:
.dbline 212
ldd R24,y+6
ldd R25,y+7
adiw R24,1
std y+7,R25
std y+6,R24
L41:
.dbline 212
movw R30,R28
subi R30,160 ; addi 352
sbci R31,254
ldd R2,z+0
ldd R3,z+1
ldd R4,y+6
ldd R5,y+7
cp R4,R2
cpc R5,R3
brlt L38
.dbline 217
; {
; nTemp[nOffset] = chrTmp[i];
; nOffset += 1;
; }
; nTemp[nOffset] = 13;
movw R24,R28
subi R24,146 ; offset = 110
sbci R25,255
movw R26,R28
subi R26,148 ; addi 108
sbci R27,255
ld R30,x+
ld R31,x
add R30,R24
adc R31,R25
ldi R24,13
std z+0,R24
.dbline 218
; for(i = 0; i < nOffset;i++)
clr R2
clr R3
std y+7,R3
std y+6,R2
xjmp L45
L42:
.dbline 219
.dbline 220
movw R24,R28
subi R24,146 ; offset = 110
sbci R25,255
ldd R30,y+6
ldd R31,y+7
add R30,R24
adc R31,R25
ldd R2,z+0
ldd R30,y+6
ldd R31,y+7
add R30,R10
adc R31,R11
std z+0,R2
.dbline 221
L43:
.dbline 218
ldd R24,y+6
ldd R25,y+7
adiw R24,1
std y+7,R25
std y+6,R24
L45:
.dbline 218
movw R30,R28
subi R30,148 ; addi 108
sbci R31,255
ldd R2,z+0
ldd R3,z+1
ldd R4,y+6
ldd R5,y+7
cp R4,R2
cpc R5,R3
brlt L42
.dbline 222
; {
; pOut1[i] = nTemp[i]; //命令代码
; }
; *nTXLen1 = nOffset; //发送的信息长度
movw R30,R14
std z+1,R3
std z+0,R2
.dbline 225
;
; //封装内容数据
; copy(pOut2,0,strHead,0,18);
ldi R24,18
ldi R25,0
std y+5,R25
std y+4,R24
clr R2
clr R3
std y+3,R3
std y+2,R2
movw R24,R28
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -