📄 pran.lst
字号:
945 032e 20E0 ldi r18,lo8(0)
237:pran.c **** break;
947 .LM128:
948 0330 00C0 rjmp .L53
949 .L55:
238:pran.c ****
239:pran.c **** case 1: pass = 0x01;
951 .LM129:
952 0332 21E0 ldi r18,lo8(1)
240:pran.c **** break;
954 .LM130:
955 0334 00C0 rjmp .L53
956 .L56:
241:pran.c ****
242:pran.c **** case 2: pass = 0x02;
958 .LM131:
959 0336 22E0 ldi r18,lo8(2)
243:pran.c **** break;
961 .LM132:
962 0338 00C0 rjmp .L53
963 .L57:
244:pran.c ****
245:pran.c **** case 3: pass = 0x03;
965 .LM133:
966 033a 23E0 ldi r18,lo8(3)
246:pran.c **** break;
968 .LM134:
969 033c 00C0 rjmp .L53
970 .L58:
247:pran.c ****
248:pran.c **** case 4: pass = 0x04;
972 .LM135:
973 033e 24E0 ldi r18,lo8(4)
249:pran.c **** break;
975 .LM136:
976 0340 00C0 rjmp .L53
977 .L59:
250:pran.c ****
251:pran.c **** case 5: pass = 0x05;
979 .LM137:
980 0342 25E0 ldi r18,lo8(5)
252:pran.c **** break;
982 .LM138:
983 0344 00C0 rjmp .L53
984 .L60:
253:pran.c ****
254:pran.c **** case 6: pass = 0x06;
986 .LM139:
987 0346 26E0 ldi r18,lo8(6)
255:pran.c **** break;
989 .LM140:
990 0348 00C0 rjmp .L53
991 .L61:
256:pran.c ****
257:pran.c **** case 7: pass = 0x07;
993 .LM141:
994 034a 27E0 ldi r18,lo8(7)
258:pran.c **** break;
996 .LM142:
997 034c 00C0 rjmp .L53
998 .L62:
259:pran.c ****
260:pran.c **** case 8: pass = 0x08;
1000 .LM143:
1001 034e 28E0 ldi r18,lo8(8)
261:pran.c **** break;
1003 .LM144:
1004 0350 00C0 rjmp .L53
1005 .L63:
262:pran.c ****
263:pran.c **** case 9: pass = 0x09;
1007 .LM145:
1008 0352 29E0 ldi r18,lo8(9)
1009 .L53:
264:pran.c **** break;
265:pran.c **** }
266:pran.c **** return pass;
1011 .LM146:
1012 0354 822F mov r24,r18
1013 0356 9927 clr r25
267:pran.c **** }
1015 .LM147:
1016 .LBE6:
1017 /* epilogue: frame size=0 */
1018 0358 0895 ret
1019 /* epilogue end (size=1) */
1020 /* function send_data_to_decoder_low size 44 (43) */
1025 .Lscope8:
1029 .global decode_count
1031 decode_count:
268:pran.c ****
269:pran.c **** void decode_count(int county)
270:pran.c **** {
1033 .LM148:
1034 /* prologue: frame size=0 */
1035 /* prologue end (size=0) */
271:pran.c **** PORTC = send_data_to_decoder_high(county);
1037 .LM149:
1038 035a 00D0 rcall send_data_to_decoder_high
1039 035c 85BB out 53-0x20,r24
272:pran.c **** }
1041 .LM150:
1042 /* epilogue: frame size=0 */
1043 035e 0895 ret
1044 /* epilogue end (size=1) */
1045 /* function decode_count size 3 (2) */
1047 .Lscope9:
1051 .global decode_buzzer_count
1053 decode_buzzer_count:
273:pran.c ****
274:pran.c **** void decode_buzzer_count(int county)
275:pran.c **** {
1055 .LM151:
1056 /* prologue: frame size=0 */
1057 0360 EF92 push r14
1058 0362 FF92 push r15
1059 0364 0F93 push r16
1060 0366 1F93 push r17
1061 /* prologue end (size=4) */
1062 0368 7C01 movw r14,r24
276:pran.c **** int digit1,digit2;
277:pran.c ****
278:pran.c **** digit2 = county/10;
1064 .LM152:
1065 .LBB7:
1066 036a 6AE0 ldi r22,lo8(10)
1067 036c 70E0 ldi r23,hi8(10)
1068 036e 00D0 rcall __divmodhi4
1069 0370 8B01 movw r16,r22
279:pran.c **** PORTB = send_data_to_decoder_low(digit2);
1071 .LM153:
1072 0372 CB01 movw r24,r22
1073 0374 00D0 rcall send_data_to_decoder_low
1074 0376 88BB out 56-0x20,r24
280:pran.c ****
281:pran.c **** digit1 = (county - digit2 * 10);
1076 .LM154:
1077 0378 C801 movw r24,r16
1078 037a 23E0 ldi r18,3
1079 037c 880F 1: lsl r24
1080 037e 991F rol r25
1081 0380 2A95 dec r18
1082 0382 01F4 brne 1b
1083 0384 800F add r24,r16
1084 0386 911F adc r25,r17
1085 0388 800F add r24,r16
1086 038a 911F adc r25,r17
1087 038c E81A sub r14,r24
1088 038e F90A sbc r15,r25
282:pran.c **** PORTB |= send_data_to_decoder_high(digit1);
1090 .LM155:
1091 0390 C701 movw r24,r14
1092 0392 00D0 rcall send_data_to_decoder_high
1093 0394 982F mov r25,r24
1094 0396 88B3 in r24,56-0x20
1095 0398 892B or r24,r25
1096 039a 88BB out 56-0x20,r24
283:pran.c **** }
1098 .LM156:
1099 .LBE7:
1100 /* epilogue: frame size=0 */
1101 039c 1F91 pop r17
1102 039e 0F91 pop r16
1103 03a0 FF90 pop r15
1104 03a2 EF90 pop r14
1105 03a4 0895 ret
1106 /* epilogue end (size=5) */
1107 /* function decode_buzzer_count size 35 (26) */
1109 .Lscope10:
1112 .global main
1114 main:
284:pran.c ****
285:pran.c ****
286:pran.c **** int main(void)
287:pran.c **** {
1116 .LM157:
1117 /* prologue: frame size=0 */
1118 03a6 C0E0 ldi r28,lo8(__stack - 0)
1119 03a8 D0E0 ldi r29,hi8(__stack - 0)
1120 03aa DEBF out __SP_H__,r29
1121 03ac CDBF out __SP_L__,r28
1122 /* prologue end (size=4) */
288:pran.c **** io_init();
1124 .LM158:
1125 03ae 00D0 rcall io_init
289:pran.c **** extint_init();
1127 .LM159:
1128 03b0 00D0 rcall extint_init
290:pran.c ****
291:pran.c **** sei();
1130 .LM160:
1131 /* #APP */
1132 03b2 7894 sei
292:pran.c ****
293:pran.c **** decode_buzzer_count(10);
1134 .LM161:
1135 /* #NOAPP */
1136 03b4 8AE0 ldi r24,lo8(10)
1137 03b6 90E0 ldi r25,hi8(10)
1138 03b8 00D0 rcall decode_buzzer_count
294:pran.c **** decode_count(0);
1140 .LM162:
1141 03ba 80E0 ldi r24,lo8(0)
1142 03bc 90E0 ldi r25,hi8(0)
1143 03be 00D0 rcall decode_count
295:pran.c ****
296:pran.c **** while(1){}
1145 .LM163:
1146 .L72:
1147 03c0 00C0 rjmp .L72
297:pran.c ****
298:pran.c **** return 0;
299:pran.c **** }
1149 .LM164:
1150 /* epilogue: frame size=0 */
1151 /* epilogue: noreturn */
1152 /* epilogue end (size=0) */
1153 /* function main size 15 (11) */
1155 .Lscope11:
1165 .text
1167 Letext:
1168 /* File "pran.c": code 511 = 0x01ff ( 391), prologues 58, epilogues 62 */
DEFINED SYMBOLS
*ABS*:00000000 pran.c
C:\WINDOWS\TEMP/ccnvVvab.s:3 *ABS*:0000003f __SREG__
C:\WINDOWS\TEMP/ccnvVvab.s:4 *ABS*:0000003e __SP_H__
C:\WINDOWS\TEMP/ccnvVvab.s:5 *ABS*:0000003d __SP_L__
C:\WINDOWS\TEMP/ccnvVvab.s:6 *ABS*:00000000 __tmp_reg__
C:\WINDOWS\TEMP/ccnvVvab.s:7 *ABS*:00000001 __zero_reg__
C:\WINDOWS\TEMP/ccnvVvab.s:93 .bss:00000000 count
C:\WINDOWS\TEMP/ccnvVvab.s:99 .bss:00000002 timer_count
C:\WINDOWS\TEMP/ccnvVvab.s:105 .bss:00000004 buzzer
C:\WINDOWS\TEMP/ccnvVvab.s:111 .bss:00000006 buzzer_setting
C:\WINDOWS\TEMP/ccnvVvab.s:117 .bss:00000008 ontime
C:\WINDOWS\TEMP/ccnvVvab.s:123 .data:00000000 offtime
C:\WINDOWS\TEMP/ccnvVvab.s:128 .data:00000002 offtimetemp
C:\WINDOWS\TEMP/ccnvVvab.s:133 .data:00000004 setting
C:\WINDOWS\TEMP/ccnvVvab.s:138 .text:00000000 io_init
C:\WINDOWS\TEMP/ccnvVvab.s:181 .text:00000016 extint_init
C:\WINDOWS\TEMP/ccnvVvab.s:206 .text:00000020 __vector_1
C:\WINDOWS\TEMP/ccnvVvab.s:1031 .text:0000035a decode_count
C:\WINDOWS\TEMP/ccnvVvab.s:506 .text:0000017a timers_init
C:\WINDOWS\TEMP/ccnvVvab.s:429 .text:0000012c temp
C:\WINDOWS\TEMP/ccnvVvab.s:543 .text:00000194 __vector_6
C:\WINDOWS\TEMP/ccnvVvab.s:714 .text:00000270 __vector_8
C:\WINDOWS\TEMP/ccnvVvab.s:781 .text:000002d6 send_data_to_decoder_high
C:\WINDOWS\TEMP/ccnvVvab.s:906 .text:00000318 send_data_to_decoder_low
C:\WINDOWS\TEMP/ccnvVvab.s:1053 .text:00000360 decode_buzzer_count
C:\WINDOWS\TEMP/ccnvVvab.s:1114 .text:000003a6 main
C:\WINDOWS\TEMP/ccnvVvab.s:1167 .text:000003c2 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__divmodhi4
__stack
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -