📄 cankao.asm
字号:
@00000000: .text
+00000000: C013 RJMP PC+0x0014 Relative jump
+00000001: CFFE RJMP PC-0x0001 Relative jump
+00000002: CFFD RJMP PC-0x0002 Relative jump
+00000003: CFFC RJMP PC-0x0003 Relative jump
+00000004: CFFB RJMP PC-0x0004 Relative jump
+00000005: CFFA RJMP PC-0x0005 Relative jump
+00000006: CFF9 RJMP PC-0x0006 Relative jump
+00000007: CFF8 RJMP PC-0x0007 Relative jump
+00000008: CFF7 RJMP PC-0x0008 Relative jump
+00000009: C05A RJMP PC+0x005B Relative jump
+0000000A: CFF5 RJMP PC-0x000A Relative jump
+0000000B: CFF4 RJMP PC-0x000B Relative jump
+0000000C: CFF3 RJMP PC-0x000C Relative jump
+0000000D: CFF2 RJMP PC-0x000D Relative jump
+0000000E: CFF1 RJMP PC-0x000E Relative jump
+0000000F: CFF0 RJMP PC-0x000F Relative jump
+00000010: CFEF RJMP PC-0x0010 Relative jump
+00000011: CFEE RJMP PC-0x0011 Relative jump
+00000012: CFED RJMP PC-0x0012 Relative jump
+00000013: 0000 NOP No operation
+00000014: 94F8 CLI Global Interrupt Disable
+00000015: 27EE CLR R30 Clear Register
+00000016: BBEC OUT 0x1C,R30 Out to I/O location
+00000017: E0F1 LDI R31,0x01 Load immediate
+00000018: BFFB OUT 0x3B,R31 Out to I/O location
+00000019: BFEB OUT 0x3B,R30 Out to I/O location
+0000001A: BFE5 OUT 0x35,R30 Out to I/O location
+0000001B: E1F8 LDI R31,0x18 Load immediate
+0000001C: BDF1 OUT 0x21,R31 Out to I/O location
+0000001D: BDE1 OUT 0x21,R30 Out to I/O location
+0000001E: E08D LDI R24,0x0D Load immediate
+0000001F: E0A2 LDI R26,0x02 Load immediate
+00000020: 27BB CLR R27 Clear Register
+00000021: 93ED ST X+,R30 Store indirect and postincrement
+00000022: 958A DEC R24 Decrement
+00000023: F7E9 BRNE PC-0x02 Branch if not equal
+00000024: E080 LDI R24,0x00 Load immediate
+00000025: E094 LDI R25,0x04 Load immediate
+00000026: E6A0 LDI R26,0x60 Load immediate
+00000027: 93ED ST X+,R30 Store indirect and postincrement
+00000028: 9701 SBIW R24,0x01 Subtract immediate from word
+00000029: F7E9 BRNE PC-0x02 Branch if not equal
+0000002A: E2E6 LDI R30,0x26 Load immediate
+0000002B: E0F0 LDI R31,0x00 Load immediate
+0000002C: 9185 LPM R24,Z+ Load program memory and postincrement
+0000002D: 9195 LPM R25,Z+ Load program memory and postincrement
+0000002E: 9700 SBIW R24,0x00 Subtract immediate from word
+0000002F: F061 BREQ PC+0x0D Branch if equal
+00000030: 91A5 LPM R26,Z+ Load program memory and postincrement
+00000031: 91B5 LPM R27,Z+ Load program memory and postincrement
+00000032: 9005 LPM R0,Z+ Load program memory and postincrement
+00000033: 9015 LPM R1,Z+ Load program memory and postincrement
+00000034: 01BF MOVW R22,R30 Copy register pair
+00000035: 01F0 MOVW R30,R0 Copy register pair
+00000036: 9005 LPM R0,Z+ Load program memory and postincrement
+00000037: 920D ST X+,R0 Store indirect and postincrement
+00000038: 9701 SBIW R24,0x01 Subtract immediate from word
+00000039: F7E1 BRNE PC-0x03 Branch if not equal
+0000003A: 01FB MOVW R30,R22 Copy register pair
+0000003B: CFF0 RJMP PC-0x000F Relative jump
+0000003C: E5EF LDI R30,0x5F Load immediate
+0000003D: BFED OUT 0x3D,R30 Out to I/O location
+0000003E: E0E4 LDI R30,0x04 Load immediate
+0000003F: BFEE OUT 0x3E,R30 Out to I/O location
+00000040: E6C0 LDI R28,0x60 Load immediate
+00000041: E0D1 LDI R29,0x01 Load immediate
+00000042: C02E RJMP PC+0x002F Relative jump
@00000043: KeyScan
---- 1__.c ----------------------------------------------------------------------------------------
39: if(PINB.6==0){
+00000043: 99B6 SBIC 0x16,6 Skip if bit in I/O register cleared
+00000044: C002 RJMP PC+0x0003 Relative jump
41: KeyState=0;}
+00000045: 2444 CLR R4 Clear Register
42: else if(PINC.4==0){
+00000046: C009 RJMP PC+0x000A Relative jump
+00000047: 999C SBIC 0x13,4 Skip if bit in I/O register cleared
+00000048: C003 RJMP PC+0x0004 Relative jump
44: KeyState=1; }
+00000049: E0E1 LDI R30,0x01 Load immediate
+0000004A: 2E4E MOV R4,R30 Copy register
45: else if(PINC.5==0){
+0000004B: C004 RJMP PC+0x0005 Relative jump
+0000004C: 999D SBIC 0x13,5 Skip if bit in I/O register cleared
+0000004D: C002 RJMP PC+0x0003 Relative jump
47: KeyState=2;}
+0000004E: E0E2 LDI R30,0x02 Load immediate
+0000004F: 2E4E MOV R4,R30 Copy register
53: switch(KeyState)
+00000050: 2DE4 MOV R30,R4 Copy register
55: case 0x00: //POWER/RA5键-PB6
+00000051: 30E0 CPI R30,0x00 Compare with immediate
+00000052: F411 BRNE PC+0x03 Branch if not equal
56: PORTC|=(1<<0);
+00000053: 9AA8 SBI 0x15,0 Set bit in I/O register
57: break;
+00000054: C00E RJMP PC+0x000F Relative jump
58: case 0x01: //WORK键-PC4
+00000055: 30E1 CPI R30,0x01 Compare with immediate
+00000056: F411 BRNE PC+0x03 Branch if not equal
59: PORTC|=(1<<1);
+00000057: 9AA9 SBI 0x15,1 Set bit in I/O register
60: break;
+00000058: C00A RJMP PC+0x000B Relative jump
61: case 0x02: //ADJUST_P键-PC5
+00000059: 30E2 CPI R30,0x02 Compare with immediate
+0000005A: F411 BRNE PC+0x03 Branch if not equal
62: PORTC|=(1<<2);
+0000005B: 9AAA SBI 0x15,2 Set bit in I/O register
63: break;
+0000005C: C006 RJMP PC+0x0007 Relative jump
64: case 0x03: //RESET键-PC6
+0000005D: 30E3 CPI R30,0x03 Compare with immediate
+0000005E: F411 BRNE PC+0x03 Branch if not equal
65: PORTC|=(1<<3);
+0000005F: 9AAB SBI 0x15,3 Set bit in I/O register
66: break;
+00000060: C002 RJMP PC+0x0003 Relative jump
67: case 0x04: //充电状态-ADC6
+00000061: 30E4 CPI R30,0x04 Compare with immediate
+00000062: F401 BRNE PC+0x01 Branch if not equal
73: }
+00000063: 9508 RET Subroutine return
@00000064: timer0_ovf_isr
76: interrupt [TIM0_OVF] void timer0_ovf_isr(void)
77: {
+00000064: 93EA ST -Y,R30 Store indirect and predecrement
+00000065: B7EF IN R30,0x3F In from I/O location
+00000066: 93EA ST -Y,R30 Store indirect and predecrement
79: TCNT0=0x64;
+00000067: D035 RCALL PC+0x0036 Relative call subroutine
81: flag=1;
+00000068: E0E1 LDI R30,0x01 Load immediate
+00000069: 2E5E MOV R5,R30 Copy register
82: PORTC&=0xf0;
+0000006A: B3E5 IN R30,0x15 In from I/O location
+0000006B: 7FE0 ANDI R30,0xF0 Logical AND with immediate
+0000006C: BBE5 OUT 0x15,R30 Out to I/O location
83: }
+0000006D: 91E9 LD R30,Y+ Load indirect and postincrement
---- No Source ------------------------------------------------------------------------------------
+0000006E: BFEF OUT 0x3F,R30 Out to I/O location
+0000006F: 91E9 LD R30,Y+ Load indirect and postincrement
+00000070: 9518 RETI Interrupt return
@00000071: main
---- 1__.c ----------------------------------------------------------------------------------------
94: PORTB=0xF0;
+00000071: EFE0 LDI R30,0xF0 Load immediate
+00000072: BBE8 OUT 0x18,R30 Out to I/O location
95: DDRB=0x00;
+00000073: E0E0 LDI R30,0x00 Load immediate
+00000074: BBE7 OUT 0x17,R30 Out to I/O location
100: PORTC=0xF0;
+00000075: EFE0 LDI R30,0xF0 Load immediate
+00000076: BBE5 OUT 0x15,R30 Out to I/O location
101: DDRC=0x0F;
+00000077: E0EF LDI R30,0x0F Load immediate
+00000078: BBE4 OUT 0x14,R30 Out to I/O location
106: PORTD=0x00;
+00000079: E0E0 LDI R30,0x00 Load immediate
+0000007A: BBE2 OUT 0x12,R30 Out to I/O location
107: DDRD=0x00;
+0000007B: BBE1 OUT 0x11,R30 Out to I/O location
112: TCCR0=0x05;
+0000007C: E0E5 LDI R30,0x05 Load immediate
+0000007D: BFE3 OUT 0x33,R30 Out to I/O location
113: TCNT0=0x64;
+0000007E: D01E RCALL PC+0x001F Relative call subroutine
123: TCCR1A=0x00;
+0000007F: E0E0 LDI R30,0x00 Load immediate
+00000080: BDEF OUT 0x2F,R30 Out to I/O location
124: TCCR1B=0x00;
+00000081: BDEE OUT 0x2E,R30 Out to I/O location
125: TCNT1H=0x00;
+00000082: BDED OUT 0x2D,R30 Out to I/O location
126: TCNT1L=0x00;
+00000083: BDEC OUT 0x2C,R30 Out to I/O location
127: ICR1H=0x00;
+00000084: BDE7 OUT 0x27,R30 Out to I/O location
128: ICR1L=0x00;
+00000085: BDE6 OUT 0x26,R30 Out to I/O location
129: OCR1AH=0x00;
+00000086: BDEB OUT 0x2B,R30 Out to I/O location
130: OCR1AL=0x00;
+00000087: BDEA OUT 0x2A,R30 Out to I/O location
131: OCR1BH=0x00;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -