📄 24cxx_test.lis
字号:
00CA 8015 cp R24,R0
00CC 9105 cpc R25,R1
00CE 18F0 brlo L30
00D0 X7:
00D0 .dbline 52
00D0 ; page_size=8;
00D0 88E0 ldi R24,8
00D2 8C83 std y+4,R24
00D4 1DC0 xjmp L31
00D6 L30:
00D6 .dbline 53
00D6 ; else if(model<32)
00D6 8889 ldd R24,y+16
00D8 9989 ldd R25,y+17
00DA 8032 cpi R24,32
00DC E0E0 ldi R30,0
00DE 9E07 cpc R25,R30
00E0 18F4 brsh L32
00E2 X8:
00E2 .dbline 54
00E2 ; page_size=16;
00E2 80E1 ldi R24,16
00E4 8C83 std y+4,R24
00E6 14C0 xjmp L33
00E8 L32:
00E8 .dbline 55
00E8 ; else if(model<128)
00E8 8889 ldd R24,y+16
00EA 9989 ldd R25,y+17
00EC 8038 cpi R24,128
00EE E0E0 ldi R30,0
00F0 9E07 cpc R25,R30
00F2 18F4 brsh L34
00F4 X9:
00F4 .dbline 56
00F4 ; page_size=32;
00F4 80E2 ldi R24,32
00F6 8C83 std y+4,R24
00F8 0BC0 xjmp L35
00FA L34:
00FA .dbline 57
00FA ; else if(model<512)
00FA 8889 ldd R24,y+16
00FC 9989 ldd R25,y+17
00FE 8030 cpi R24,0
0100 E2E0 ldi R30,2
0102 9E07 cpc R25,R30
0104 18F4 brsh L36
0106 X10:
0106 .dbline 58
0106 ; page_size=64;
0106 80E4 ldi R24,64
0108 8C83 std y+4,R24
010A 02C0 xjmp L37
010C L36:
010C .dbline 60
010C ; else
010C ; page_size=128;
010C 80E8 ldi R24,128
010E 8C83 std y+4,R24
0110 L37:
0110 L35:
0110 L33:
0110 L31:
0110 .dbline 61
0110 ; next_page_start_addr=model;
0110 2888 ldd R2,y+16
0112 3988 ldd R3,y+17
0114 4424 clr R4
0116 5524 clr R5
0118 2882 std y+0,R2
011A 3982 std y+1,R3
011C 4A82 std y+2,R4
011E 5B82 std y+3,R5
0120 .dbline 62
0120 ; next_page_start_addr<<=7;//总容量
0120 87E0 ldi R24,7
0122 90E0 ldi R25,0
0124 0881 ldd R16,y+0
0126 1981 ldd R17,y+1
0128 2A81 ldd R18,y+2
012A 3B81 ldd R19,y+3
012C 8A93 st -y,R24
012E 0E940000 xcall lsl32
0132 0883 std y+0,R16
0134 1983 std y+1,R17
0136 2A83 std y+2,R18
0138 3B83 std y+3,R19
013A 2AC0 xjmp L39
013C L38:
013C .dbline 64
013C ; while(next_page_start_addr)
013C ; {
013C .dbline 65
013C ; next_page_start_addr-=page_size;
013C 2C80 ldd R2,y+4
013E 3324 clr R3
0140 4424 clr R4
0142 5524 clr R5
0144 6880 ldd R6,y+0
0146 7980 ldd R7,y+1
0148 8A80 ldd R8,y+2
014A 9B80 ldd R9,y+3
014C 6218 sub R6,R2
014E 7308 sbc R7,R3
0150 8408 sbc R8,R4
0152 9508 sbc R9,R5
0154 6882 std y+0,R6
0156 7982 std y+1,R7
0158 8A82 std y+2,R8
015A 9B82 std y+3,R9
015C .dbline 66
015C ; if(next_page_start_addr<=addr)
015C 2C88 ldd R2,y+20
015E 3D88 ldd R3,y+21
0160 4424 clr R4
0162 5524 clr R5
0164 6880 ldd R6,y+0
0166 7980 ldd R7,y+1
0168 8A80 ldd R8,y+2
016A 9B80 ldd R9,y+3
016C 2614 cp R2,R6
016E 3704 cpc R3,R7
0170 4804 cpc R4,R8
0172 5904 cpc R5,R9
0174 68F0 brlo L41
0176 X11:
0176 .dbline 67
0176 ; {
0176 .dbline 68
0176 ; next_page_start_addr+=page_size;
0176 2C80 ldd R2,y+4
0178 3324 clr R3
017A 4424 clr R4
017C 5524 clr R5
017E 620C add R6,R2
0180 731C adc R7,R3
0182 841C adc R8,R4
0184 951C adc R9,R5
0186 6882 std y+0,R6
0188 7982 std y+1,R7
018A 8A82 std y+2,R8
018C 9B82 std y+3,R9
018E .dbline 69
018E ; break;
018E 0DC0 xjmp L40
0190 L41:
0190 .dbline 71
0190 ; }
0190 ; }
0190 L39:
0190 .dbline 63
0190 40E0 ldi R20,0
0192 50E0 ldi R21,0
0194 60E0 ldi R22,0
0196 70E0 ldi R23,0
0198 2880 ldd R2,y+0
019A 3980 ldd R3,y+1
019C 4A80 ldd R4,y+2
019E 5B80 ldd R5,y+3
01A0 2416 cp R2,R20
01A2 3506 cpc R3,R21
01A4 4606 cpc R4,R22
01A6 5706 cpc R5,R23
01A8 49F6 brne L38
01AA X12:
01AA L40:
01AA L43:
01AA .dbline 74
01AA ;
01AA ; Wagain:
01AA ; p=P_data;
01AA CE88 ldd R12,y+22
01AC DF88 ldd R13,y+23
01AE .dbline 75
01AE ; i=num;//数据个数
01AE A88C ldd R10,y+24
01B0 .dbline 76
01B0 ; if(ICerror<10)
01B0 8D81 ldd R24,y+5
01B2 8A30 cpi R24,10
01B4 08F0 brlo X24
01B6 54C0 xjmp L46
01B8 X24:
01B8 X13:
01B8 .dbline 77
01B8 ; ICerror++;
01B8 082E mov R0,R24
01BA 0394 inc R0
01BC 0D82 std y+5,R0
01BE .dbline 79
01BE ; else
01BE ; goto Wstop;
01BE L45:
01BE .dbline 80
01BE ; twi_start(); //启动
01BE 4ADF xcall _twi_start
01C0 .dbline 81
01C0 ; temp=0xa0+(DevAddr<<1);
01C0 8A89 ldd R24,y+18
01C2 880F lsl R24
01C4 8056 subi R24,96 ; addi 160
01C6 E82E mov R14,R24
01C8 .dbline 82
01C8 ; if(model<16)
01C8 8889 ldd R24,y+16
01CA 9989 ldd R25,y+17
01CC 8031 cpi R24,16
01CE E0E0 ldi R30,0
01D0 9E07 cpc R25,R30
01D2 70F4 brsh L47
01D4 X14:
01D4 .dbline 83
01D4 ; temp+=((addr>>7)&0x0e);//器件24c32以下地址高位
01D4 27E0 ldi R18,7
01D6 30E0 ldi R19,0
01D8 0C89 ldd R16,y+20
01DA 1D89 ldd R17,y+21
01DC 0E940000 xcall lsr16
01E0 C801 movw R24,R16
01E2 8E70 andi R24,14
01E4 9070 andi R25,0
01E6 2E2C mov R2,R14
01E8 3324 clr R3
01EA 280E add R2,R24
01EC 391E adc R3,R25
01EE E22C mov R14,R2
01F0 L47:
01F0 .dbline 84
01F0 ; if(twi_writebyte(temp)!=0x18)// //头字节
01F0 0E2D mov R16,R14
01F2 3BDF xcall _twi_writebyte
01F4 0831 cpi R16,24
01F6 09F0 breq L49
01F8 X15:
01F8 .dbline 85
01F8 ; goto Wagain;
01F8 D8CF xjmp L43
01FA L49:
01FA .dbline 86
01FA ; if(model>16) //写器件24c32以上地址高位
01FA 80E1 ldi R24,16
01FC 90E0 ldi R25,0
01FE 0888 ldd R0,y+16
0200 1988 ldd R1,y+17
0202 8015 cp R24,R0
0204 9105 cpc R25,R1
0206 40F4 brsh L51
0208 X16:
0208 .dbline 87
0208 ; {
0208 .dbline 88
0208 ; if((twi_writebyte(addr>>8)!=0x28))//
0208 0C89 ldd R16,y+20
020A 1D89 ldd R17,y+21
020C 012F mov R16,R17
020E 1127 clr R17
0210 2CDF xcall _twi_writebyte
0212 0832 cpi R16,40
0214 09F0 breq L53
0216 X17:
0216 .dbline 89
0216 ; goto Wagain;
0216 C9CF xjmp L43
0218 L53:
0218 .dbline 90
0218 ; }
0218 L51:
0218 .dbline 91
0218 ; if((twi_writebyte(addr&0xff)!=0x28)) //写地址低位
0218 0C89 ldd R16,y+20
021A 1070 andi R17,0
021C 26DF xcall _twi_writebyte
021E E02E mov R14,R16
0220 0832 cpi R16,40
0222 E1F0 breq L58
0224 X18:
0224 .dbline 92
0224 ; goto Wagain;
0224 C2CF xjmp L43
0226 L57:
0226 .dbline 94
0226 ; while(i)//写入数据i个
0226 ; {
0226 .dbline 95
0226 ; i--;
0226 AA94 dec R10
0228 .dbline 96
0228 ; if(twi_writebyte(*(p++))!=0x28)//
0228 F601 movw R30,R12
022A 0191 ld R16,Z+
022C 6F01 movw R12,R30
022E 1DDF xcall _twi_writebyte
0230 E02E mov R14,R16
0232 0832 cpi R16,40
0234 09F0 breq L60
0236 X19:
0236 .dbline 97
0236 ; goto Wagain;
0236 B9CF xjmp L43
0238 L60:
0238 .dbline 98
0238 ; addr++;
0238 8C89 ldd R24,y+20
023A 9D89 ldd R25,y+21
023C 0196 adiw R24,1
023E 9D8B std y+21,R25
0240 8C8B std y+20,R24
0242 .dbline 99
0242 ; if(addr==next_page_start_addr)break;
0242 2880 ldd R2,y+0
0244 3980 ldd R3,y+1
0246 4A80 ldd R4,y+2
0248 5B80 ldd R5,y+3
024A 3C01 movw R6,R24
024C 8824 clr R8
024E 9924 clr R9
0250 6214 cp R6,R2
0252 7304 cpc R7,R3
0254 8404 cpc R8,R4
0256 9504 cpc R9,R5
0258 09F4 brne L62
025A X20:
025A .dbline 99
025A 02C0 xjmp L59
025C L62:
025C .dbline 100
025C ; }
025C L58:
025C .dbline 93
025C AA20 tst R10
025E 19F7 brne L57
0260 X21:
0260 L59:
0260 L46:
0260 .dbline 102
0260 ; Wstop:
0260 ; Stop();
0260 84E9 ldi R24,148
0262 86BF out 0x36,R24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -