MIC-Week5.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn 0 .data 00000000 00800100 00800100 0000037c 2**0 CONTENTS, ALLOC, LOAD, DATA 1 .text 00000328 00000000 00000000 00000054 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE 2 .comment 00000030 00000000 00000000 0000037c 2**0 CONTENTS, READONLY 3 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 000003ac 2**2 CONTENTS, READONLY 4 .debug_aranges 000000c8 00000000 00000000 000003e8 2**0 CONTENTS, READONLY, DEBUGGING 5 .debug_info 00000d78 00000000 00000000 000004b0 2**0 CONTENTS, READONLY, DEBUGGING 6 .debug_abbrev 00000359 00000000 00000000 00001228 2**0 CONTENTS, READONLY, DEBUGGING 7 .debug_line 00000702 00000000 00000000 00001581 2**0 CONTENTS, READONLY, DEBUGGING 8 .debug_frame 000001e8 00000000 00000000 00001c84 2**2 CONTENTS, READONLY, DEBUGGING 9 .debug_str 00000309 00000000 00000000 00001e6c 2**0 CONTENTS, READONLY, DEBUGGING 10 .debug_loc 000005d2 00000000 00000000 00002175 2**0 CONTENTS, READONLY, DEBUGGING 11 .debug_ranges 000000c0 00000000 00000000 00002747 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: 00000000 <__vectors>: 0: 45 c0 rjmp .+138 ; 0x8c <__ctors_end> 2: 00 00 nop 4: 4b c0 rjmp .+150 ; 0x9c <__bad_interrupt> 6: 00 00 nop 8: 49 c0 rjmp .+146 ; 0x9c <__bad_interrupt> a: 00 00 nop c: 47 c0 rjmp .+142 ; 0x9c <__bad_interrupt> e: 00 00 nop 10: 45 c0 rjmp .+138 ; 0x9c <__bad_interrupt> 12: 00 00 nop 14: 43 c0 rjmp .+134 ; 0x9c <__bad_interrupt> 16: 00 00 nop 18: 41 c0 rjmp .+130 ; 0x9c <__bad_interrupt> 1a: 00 00 nop 1c: 3f c0 rjmp .+126 ; 0x9c <__bad_interrupt> 1e: 00 00 nop 20: 3d c0 rjmp .+122 ; 0x9c <__bad_interrupt> 22: 00 00 nop 24: 3b c0 rjmp .+118 ; 0x9c <__bad_interrupt> 26: 00 00 nop 28: 39 c0 rjmp .+114 ; 0x9c <__bad_interrupt> 2a: 00 00 nop 2c: 37 c0 rjmp .+110 ; 0x9c <__bad_interrupt> 2e: 00 00 nop 30: 35 c0 rjmp .+106 ; 0x9c <__bad_interrupt> 32: 00 00 nop 34: 33 c0 rjmp .+102 ; 0x9c <__bad_interrupt> 36: 00 00 nop 38: 31 c0 rjmp .+98 ; 0x9c <__bad_interrupt> 3a: 00 00 nop 3c: 2f c0 rjmp .+94 ; 0x9c <__bad_interrupt> 3e: 00 00 nop 40: 2d c0 rjmp .+90 ; 0x9c <__bad_interrupt> 42: 00 00 nop 44: 2b c0 rjmp .+86 ; 0x9c <__bad_interrupt> 46: 00 00 nop 48: 29 c0 rjmp .+82 ; 0x9c <__bad_interrupt> 4a: 00 00 nop 4c: 27 c0 rjmp .+78 ; 0x9c <__bad_interrupt> 4e: 00 00 nop 50: 25 c0 rjmp .+74 ; 0x9c <__bad_interrupt> 52: 00 00 nop 54: 23 c0 rjmp .+70 ; 0x9c <__bad_interrupt> 56: 00 00 nop 58: 21 c0 rjmp .+66 ; 0x9c <__bad_interrupt> 5a: 00 00 nop 5c: 1f c0 rjmp .+62 ; 0x9c <__bad_interrupt> 5e: 00 00 nop 60: 1d c0 rjmp .+58 ; 0x9c <__bad_interrupt> 62: 00 00 nop 64: 1b c0 rjmp .+54 ; 0x9c <__bad_interrupt> 66: 00 00 nop 68: 19 c0 rjmp .+50 ; 0x9c <__bad_interrupt> 6a: 00 00 nop 6c: 17 c0 rjmp .+46 ; 0x9c <__bad_interrupt> 6e: 00 00 nop 70: 15 c0 rjmp .+42 ; 0x9c <__bad_interrupt> 72: 00 00 nop 74: 13 c0 rjmp .+38 ; 0x9c <__bad_interrupt> 76: 00 00 nop 78: 11 c0 rjmp .+34 ; 0x9c <__bad_interrupt> 7a: 00 00 nop 7c: 0f c0 rjmp .+30 ; 0x9c <__bad_interrupt> 7e: 00 00 nop 80: 0d c0 rjmp .+26 ; 0x9c <__bad_interrupt> 82: 00 00 nop 84: 0b c0 rjmp .+22 ; 0x9c <__bad_interrupt> 86: 00 00 nop 88: 09 c0 rjmp .+18 ; 0x9c <__bad_interrupt> ... 0000008c <__ctors_end>: 8c: 11 24 eor r1, r1 8e: 1f be out 0x3f, r1 ; 63 90: cf ef ldi r28, 0xFF ; 255 92: d0 e1 ldi r29, 0x10 ; 16 94: de bf out 0x3e, r29 ; 62 96: cd bf out 0x3d, r28 ; 61 98: 86 d0 rcall .+268 ; 0x1a6
9a: 44 c1 rjmp .+648 ; 0x324 <_exit> 0000009c <__bad_interrupt>: 9c: b1 cf rjmp .-158 ; 0x0 <__vectors> 0000009e : spi_write(i); // digit value: i (= digit place) spi_slaveDeSelect(0); // Deselect display chip wait(500); } } 9e: 18 16 cp r1, r24 a0: 19 06 cpc r1, r25 a2: 6c f4 brge .+26 ; 0xbe a4: 20 e0 ldi r18, 0x00 ; 0 a6: 30 e0 ldi r19, 0x00 ; 0 a8: ef ec ldi r30, 0xCF ; 207 aa: f7 e0 ldi r31, 0x07 ; 7 ac: 31 97 sbiw r30, 0x01 ; 1 ae: f1 f7 brne .-4 ; 0xac b0: 00 c0 rjmp .+0 ; 0xb2 b2: 00 00 nop b4: 2f 5f subi r18, 0xFF ; 255 b6: 3f 4f sbci r19, 0xFF ; 255 b8: 28 17 cp r18, r24 ba: 39 07 cpc r19, r25 bc: a9 f7 brne .-22 ; 0xa8 be: 08 95 ret 000000c0 : int test2(void) { c0: 6f 92 push r6 c2: 7f 92 push r7 c4: 8f 92 push r8 c6: 9f 92 push r9 c8: af 92 push r10 ca: bf 92 push r11 cc: cf 92 push r12 ce: df 92 push r13 d0: ef 92 push r14 d2: ff 92 push r15 d4: 0f 93 push r16 d6: 1f 93 push r17 d8: cf 93 push r28 da: df 93 push r29 DDRB=0x01; // Set PB0 pin as output for display select dc: 81 e0 ldi r24, 0x01 ; 1 de: 87 bb out 0x17, r24 ; 23 spi_masterInit(); // Initialize spi module e0: 66 d0 rcall .+204 ; 0x1ae displayDriverInit(); // Initialize display chip e2: 87 d0 rcall .+270 ; 0x1f2 int dir = 0; int factor = 0; for(int i=-999; i<=9999; i++) { writeLedDisplay(i); e4: 89 e1 ldi r24, 0x19 ; 25 e6: 9c ef ldi r25, 0xFC ; 252 e8: ca d0 rcall .+404 ; 0x27e wait(5); ea: 85 e0 ldi r24, 0x05 ; 5 ec: 90 e0 ldi r25, 0x00 ; 0 ee: d7 df rcall .-82 ; 0x9e int intsy = 0; int dir = 0; int factor = 0; for(int i=-999; i<=9999; i++) f0: 09 e1 ldi r16, 0x19 ; 25 f2: 1c ef ldi r17, 0xFC ; 252 spi_masterInit(); // Initialize spi module displayDriverInit(); // Initialize display chip int intsy = 0; int dir = 0; f4: e1 2c mov r14, r1 f6: f1 2c mov r15, r1 DDRB=0x01; // Set PB0 pin as output for display select spi_masterInit(); // Initialize spi module displayDriverInit(); // Initialize display chip int intsy = 0; f8: c0 e0 ldi r28, 0x00 ; 0 fa: d0 e0 ldi r29, 0x00 ; 0 intsy--; if(intsy < 0x06) { intsy = 0x06; dir = 1; fc: aa 24 eor r10, r10 fe: a3 94 inc r10 100: b1 2c mov r11, r1 else intsy--; if(intsy < 0x06) { intsy = 0x06; 102: 0f 2e mov r0, r31 104: f6 e0 ldi r31, 0x06 ; 6 106: cf 2e mov r12, r31 108: f0 2d mov r31, r0 10a: d1 2c mov r13, r1 dir = 1; } else if(intsy > 0x0F) { intsy = 0x0F; dir = 0; 10c: 61 2c mov r6, r1 10e: 71 2c mov r7, r1 intsy = 0x06; dir = 1; } else if(intsy > 0x0F) { intsy = 0x0F; 110: 0f 2e mov r0, r31 112: ff e0 ldi r31, 0x0F ; 15 114: 8f 2e mov r8, r31 116: f0 2d mov r31, r0 118: 91 2c mov r9, r1 11a: 0e c0 rjmp .+28 ; 0x138 int dir = 0; int factor = 0; for(int i=-999; i<=9999; i++) { writeLedDisplay(i); 11c: c8 01 movw r24, r16 11e: af d0 rcall .+350 ; 0x27e wait(5); 120: 85 e0 ldi r24, 0x05 ; 5 122: 90 e0 ldi r25, 0x00 ; 0 124: bc df rcall .-136 ; 0x9e 126: c8 01 movw r24, r16 128: 87 50 subi r24, 0x07 ; 7 12a: 9f 4f sbci r25, 0xFF ; 255 if(i < -150 && i > -250) 12c: 83 36 cpi r24, 0x63 ; 99 12e: 91 05 cpc r25, r1 130: 18 f4 brcc .+6 ; 0x138 wait(75); 132: 8b e4 ldi r24, 0x4B ; 75 134: 90 e0 ldi r25, 0x00 ; 0 136: b3 df rcall .-154 ; 0x9e 138: c8 01 movw r24, r16 13a: 87 59 subi r24, 0x97 ; 151 13c: 91 09 sbc r25, r1 if(i > 150 && i < 250) 13e: 83 36 cpi r24, 0x63 ; 99 140: 91 05 cpc r25, r1 142: 18 f4 brcc .+6 ; 0x14a wait(75); 144: 8b e4 ldi r24, 0x4B ; 75 146: 90 e0 ldi r25, 0x00 ; 0 148: aa df rcall .-172 ; 0x9e if(dir) 14a: e1 14 cp r14, r1 14c: f1 04 cpc r15, r1 14e: 11 f0 breq .+4 ; 0x154 intsy++; 150: 21 96 adiw r28, 0x01 ; 1 152: 01 c0 rjmp .+2 ; 0x156 else intsy--; 154: 21 97 sbiw r28, 0x01 ; 1 if(intsy < 0x06) 156: c6 30 cpi r28, 0x06 ; 6 158: d1 05 cpc r29, r1 15a: 44 f0 brlt .+16 ; 0x16c { intsy = 0x06; dir = 1; } else if(intsy > 0x0F) 15c: c0 31 cpi r28, 0x10 ; 16 15e: d1 05 cpc r29, r1 160: 4c f0 brlt .+18 ; 0x174 { intsy = 0x0F; dir = 0; 162: e6 2c mov r14, r6 164: f7 2c mov r15, r7 intsy = 0x06; dir = 1; } else if(intsy > 0x0F) { intsy = 0x0F; 166: c8 2d mov r28, r8 168: d9 2d mov r29, r9 16a: 04 c0 rjmp .+8 ; 0x174 intsy--; if(intsy < 0x06) { intsy = 0x06; dir = 1; 16c: ea 2c mov r14, r10 16e: fb 2c mov r15, r11 else intsy--; if(intsy < 0x06) { intsy = 0x06; 170: cc 2d mov r28, r12 172: dd 2d mov r29, r13 { intsy = 0x0F; dir = 0; } spi_intensity(intsy); 174: ce 01 movw r24, r28 176: 5e d0 rcall .+188 ; 0x234 int intsy = 0; int dir = 0; int factor = 0; for(int i=-999; i<=9999; i++) 178: 0f 5f subi r16, 0xFF ; 255 17a: 1f 4f sbci r17, 0xFF ; 255 17c: 00 31 cpi r16, 0x10 ; 16 17e: 87 e2 ldi r24, 0x27 ; 39 180: 18 07 cpc r17, r24 182: 61 f6 brne .-104 ; 0x11c spi_intensity(intsy); } return 1; 184: 81 e0 ldi r24, 0x01 ; 1 186: 90 e0 ldi r25, 0x00 ; 0 188: df 91 pop r29 18a: cf 91 pop r28 18c: 1f 91 pop r17 18e: 0f 91 pop r16 190: ff 90 pop r15 192: ef 90 pop r14 194: df 90 pop r13 196: cf 90 pop r12 198: bf 90 pop r11 19a: af 90 pop r10 19c: 9f 90 pop r9 19e: 8f 90 pop r8 1a0: 7f 90 pop r7 1a2: 6f 90 pop r6 1a4: 08 95 ret 000001a6
: //opgaveb3(); //opgaveb4(); //test(); test2(); 1a6: 8c df rcall .-232 ; 0xc0 return 0; } 1a8: 80 e0 ldi r24, 0x00 ; 0 1aa: 90 e0 ldi r25, 0x00 ; 0 1ac: 08 95 ret 000001ae : void displayOff() { spi_slaveSelect(0); // Select display chip spi_write(0x0C); // Register 0B: Shutdown register spi_write(0x00); // -> 1 = Normal operation spi_slaveDeSelect(0); // Deselect display chip 1ae: 8f ef ldi r24, 0xFF ; 255 1b0: 87 bb out 0x17, r24 ; 23 1b2: bb 98 cbi 0x17, 3 ; 23 1b4: c0 9a sbi 0x18, 0 ; 24 1b6: 82 e5 ldi r24, 0x52 ; 82 1b8: 8d b9 out 0x0d, r24 ; 13 1ba: 08 95 ret 000001bc : 1bc: 8f b9 out 0x0f, r24 ; 15 1be: 77 9b sbis 0x0e, 7 ; 14 1c0: fe cf rjmp .-4 ; 0x1be 1c2: 08 95 ret 000001c4 : 1c4: 98 b3 in r25, 0x18 ; 24 1c6: 21 e0 ldi r18, 0x01 ; 1 1c8: 30 e0 ldi r19, 0x00 ; 0 1ca: 02 c0 rjmp .+4 ; 0x1d0 1cc: 22 0f add r18, r18 1ce: 33 1f adc r19, r19 1d0: 8a 95 dec r24 1d2: e2 f7 brpl .-8 ; 0x1cc 1d4: 20 95 com r18 1d6: 29 23 and r18, r25 1d8: 28 bb out 0x18, r18 ; 24 1da: 08 95 ret 000001dc : 1dc: 98 b3 in r25, 0x18 ; 24 1de: 21 e0 ldi r18, 0x01 ; 1 1e0: 30 e0 ldi r19, 0x00 ; 0 1e2: 02 c0 rjmp .+4 ; 0x1e8 1e4: 22 0f add r18, r18 1e6: 33 1f adc r19, r19 1e8: 8a 95 dec r24 1ea: e2 f7 brpl .-8 ; 0x1e4 1ec: 29 2b or r18, r25 1ee: 28 bb out 0x18, r18 ; 24 1f0: 08 95 ret 000001f2 : 1f2: 80 e0 ldi r24, 0x00 ; 0 1f4: e7 df rcall .-50 ; 0x1c4 1f6: 89 e0 ldi r24, 0x09 ; 9 1f8: e1 df rcall .-62 ; 0x1bc 1fa: 8f ef ldi r24, 0xFF ; 255 1fc: df df rcall .-66 ; 0x1bc 1fe: 80 e0 ldi r24, 0x00 ; 0 200: ed df rcall .-38 ; 0x1dc 202: 80 e0 ldi r24, 0x00 ; 0 204: df df rcall .-66 ; 0x1c4 206: 8a e0 ldi r24, 0x0A ; 10 208: d9 df rcall .-78 ; 0x1bc 20a: 8f e0 ldi r24, 0x0F ; 15 20c: d7 df rcall .-82 ; 0x1bc 20e: 80 e0 ldi r24, 0x00 ; 0 210: e5 df rcall .-54 ; 0x1dc 212: 80 e0 ldi r24, 0x00 ; 0 214: d7 df rcall .-82 ; 0x1c4 216: 8b e0 ldi r24, 0x0B ; 11 218: d1 df rcall .-94 ; 0x1bc 21a: 83 e0 ldi r24, 0x03 ; 3 21c: cf df rcall .-98 ; 0x1bc 21e: 80 e0 ldi r24, 0x00 ; 0 220: dd df rcall .-70 ; 0x1dc 222: 80 e0 ldi r24, 0x00 ; 0 224: cf df rcall .-98 ; 0x1c4 226: 8c e0 ldi r24, 0x0C ; 12 228: c9 df rcall .-110 ; 0x1bc 22a: 81 e0 ldi r24, 0x01 ; 1 22c: c7 df rcall .-114 ; 0x1bc 22e: 80 e0 ldi r24, 0x00 ; 0 230: d5 cf rjmp .-86 ; 0x1dc 232: 08 95 ret 00000234 : 234: cf 93 push r28 236: df 93 push r29 238: ec 01 movw r28, r24 23a: 99 23 and r25, r25 23c: 14 f4 brge .+4 ; 0x242 23e: c0 e0 ldi r28, 0x00 ; 0 240: d0 e0 ldi r29, 0x00 ; 0 242: 80 e0 ldi r24, 0x00 ; 0 244: bf df rcall .-130 ; 0x1c4 246: 8a e0 ldi r24, 0x0A ; 10 248: b9 df rcall .-142 ; 0x1bc 24a: ce 01 movw r24, r28 24c: 60 97 sbiw r28, 0x10 ; 16 24e: 14 f0 brlt .+4 ; 0x254 250: 8f e0 ldi r24, 0x0F ; 15 252: 90 e0 ldi r25, 0x00 ; 0 254: b3 df rcall .-154 ; 0x1bc 256: 80 e0 ldi r24, 0x00 ; 0 258: c1 df rcall .-126 ; 0x1dc 25a: df 91 pop r29 25c: cf 91 pop r28 25e: 08 95 ret 00000260 : } void spi_writeWord( unsigned char adress, unsigned char data ) { 260: cf 93 push r28 262: df 93 push r29 264: d8 2f mov r29, r24 266: c6 2f mov r28, r22 spi_slaveSelect(0); // Select display chip 268: 80 e0 ldi r24, 0x00 ; 0 26a: ac df rcall .-168 ; 0x1c4 spi_write(adress); // Write address 26c: 8d 2f mov r24, r29 26e: a6 df rcall .-180 ; 0x1bc spi_write(data); // Write data 270: 8c 2f mov r24, r28 272: a4 df rcall .-184 ; 0x1bc spi_slaveDeSelect(0); // Deselect display chip 274: 80 e0 ldi r24, 0x00 ; 0 276: b2 df rcall .-156 ; 0x1dc } 278: df 91 pop r29 27a: cf 91 pop r28 27c: 08 95 ret 0000027e : void writeLedDisplay( int value ) { 27e: cf 93 push r28 280: df 93 push r29 if(value > 9999 || value < -999) 282: 9c 01 movw r18, r24 284: 29 51 subi r18, 0x19 ; 25 286: 3c 4f sbci r19, 0xFC ; 252 288: 27 3f cpi r18, 0xF7 ; 247 28a: 3a 42 sbci r19, 0x2A ; 42 28c: 08 f5 brcc .+66 ; 0x2d0 return; if(value < 0) 28e: 99 23 and r25, r25 290: 44 f4 brge .+16 ; 0x2a2 { value = value - (value + value); 292: cc 27 eor r28, r28 294: dd 27 eor r29, r29 296: c8 1b sub r28, r24 298: d9 0b sbc r29, r25 spi_writeWord(4, 10); 29a: 6a e0 ldi r22, 0x0A ; 10 29c: 84 e0 ldi r24, 0x04 ; 4 29e: e0 df rcall .-64 ; 0x260 2a0: 06 c0 rjmp .+12 ; 0x2ae } else { //Display 4 int d4 = value / 1000; value = value % 1000; 2a2: 68 ee ldi r22, 0xE8 ; 232 2a4: 73 e0 ldi r23, 0x03 ; 3 2a6: 17 d0 rcall .+46 ; 0x2d6 <__divmodhi4> 2a8: ec 01 movw r28, r24 spi_writeWord(4, d4); 2aa: 84 e0 ldi r24, 0x04 ; 4 2ac: d9 df rcall .-78 ; 0x260 } //Display 3 int d3 = value / 100; value = value % 100; 2ae: ce 01 movw r24, r28 2b0: 64 e6 ldi r22, 0x64 ; 100 2b2: 70 e0 ldi r23, 0x00 ; 0 2b4: 10 d0 rcall .+32 ; 0x2d6 <__divmodhi4> 2b6: ec 01 movw r28, r24 spi_writeWord(3, d3); 2b8: 83 e0 ldi r24, 0x03 ; 3 2ba: d2 df rcall .-92 ; 0x260 //Display 2 int d2 = value / 10; 2bc: ce 01 movw r24, r28 2be: 6a e0 ldi r22, 0x0A ; 10 2c0: 70 e0 ldi r23, 0x00 ; 0 2c2: 09 d0 rcall .+18 ; 0x2d6 <__divmodhi4> 2c4: c8 2f mov r28, r24 value = value % 10; spi_writeWord(2, d2); 2c6: 82 e0 ldi r24, 0x02 ; 2 2c8: cb df rcall .-106 ; 0x260 //Display 1 int d1 = value; spi_writeWord(1, d1); 2ca: 6c 2f mov r22, r28 2cc: 81 e0 ldi r24, 0x01 ; 1 2ce: c8 df rcall .-112 ; 0x260 2d0: df 91 pop r29 2d2: cf 91 pop r28 2d4: 08 95 ret 000002d6 <__divmodhi4>: 2d6: 97 fb bst r25, 7 2d8: 07 2e mov r0, r23 2da: 16 f4 brtc .+4 ; 0x2e0 <__divmodhi4+0xa> 2dc: 00 94 com r0 2de: 06 d0 rcall .+12 ; 0x2ec <__divmodhi4_neg1> 2e0: 77 fd sbrc r23, 7 2e2: 08 d0 rcall .+16 ; 0x2f4 <__divmodhi4_neg2> 2e4: 0b d0 rcall .+22 ; 0x2fc <__udivmodhi4> 2e6: 07 fc sbrc r0, 7 2e8: 05 d0 rcall .+10 ; 0x2f4 <__divmodhi4_neg2> 2ea: 3e f4 brtc .+14 ; 0x2fa <__divmodhi4_exit> 000002ec <__divmodhi4_neg1>: 2ec: 90 95 com r25 2ee: 81 95 neg r24 2f0: 9f 4f sbci r25, 0xFF ; 255 2f2: 08 95 ret 000002f4 <__divmodhi4_neg2>: 2f4: 70 95 com r23 2f6: 61 95 neg r22 2f8: 7f 4f sbci r23, 0xFF ; 255 000002fa <__divmodhi4_exit>: 2fa: 08 95 ret 000002fc <__udivmodhi4>: 2fc: aa 1b sub r26, r26 2fe: bb 1b sub r27, r27 300: 51 e1 ldi r21, 0x11 ; 17 302: 07 c0 rjmp .+14 ; 0x312 <__udivmodhi4_ep> 00000304 <__udivmodhi4_loop>: 304: aa 1f adc r26, r26 306: bb 1f adc r27, r27 308: a6 17 cp r26, r22 30a: b7 07 cpc r27, r23 30c: 10 f0 brcs .+4 ; 0x312 <__udivmodhi4_ep> 30e: a6 1b sub r26, r22 310: b7 0b sbc r27, r23 00000312 <__udivmodhi4_ep>: 312: 88 1f adc r24, r24 314: 99 1f adc r25, r25 316: 5a 95 dec r21 318: a9 f7 brne .-22 ; 0x304 <__udivmodhi4_loop> 31a: 80 95 com r24 31c: 90 95 com r25 31e: bc 01 movw r22, r24 320: cd 01 movw r24, r26 322: 08 95 ret 00000324 <_exit>: 324: f8 94 cli 00000326 <__stop_program>: 326: ff cf rjmp .-2 ; 0x326 <__stop_program>