GAS LISTING /tmp/cc67azdq.s page 1 1 .file "hd44780.c" 2 __SP_H__ = 0x3e 3 __SP_L__ = 0x3d 4 __SREG__ = 0x3f 5 __RAMPZ__ = 0x3b 6 __tmp_reg__ = 0 7 __zero_reg__ = 1 8 .section .text.LcdSendNibble,"ax",@progbits 9 .type LcdSendNibble, @function 10 LcdSendNibble: 11 /* prologue: function */ 12 /* frame size = 0 */ 13 /* stack size = 0 */ 14 .L__stack_usage = 0 15 0000 9AB1 in r25,0xa 16 0002 906F ori r25,lo8(-16) 17 0004 9AB9 out 0xa,r25 18 0006 9BB1 in r25,0xb 19 0008 9F70 andi r25,lo8(15) 20 000a 807F andi r24,lo8(-16) 21 000c 892B or r24,r25 22 000e 8BB9 out 0xb,r24 23 0010 739A sbi 0xe,3 24 /* #APP */ 25 ; 332 "../../nut/arch/avr/dev/hd44780.c" 1 26 0012 0000 nop 27 ; 0 "" 2 28 ; 332 "../../nut/arch/avr/dev/hd44780.c" 1 29 0014 0000 nop 30 ; 0 "" 2 31 ; 332 "../../nut/arch/avr/dev/hd44780.c" 1 32 0016 0000 nop 33 ; 0 "" 2 34 ; 332 "../../nut/arch/avr/dev/hd44780.c" 1 35 0018 0000 nop 36 ; 0 "" 2 37 /* #NOAPP */ 38 001a 7398 cbi 0xe,3 39 /* #APP */ 40 ; 334 "../../nut/arch/avr/dev/hd44780.c" 1 41 001c 0000 nop 42 ; 0 "" 2 43 ; 334 "../../nut/arch/avr/dev/hd44780.c" 1 44 001e 0000 nop 45 ; 0 "" 2 46 ; 334 "../../nut/arch/avr/dev/hd44780.c" 1 47 0020 0000 nop 48 ; 0 "" 2 49 ; 334 "../../nut/arch/avr/dev/hd44780.c" 1 50 0022 0000 nop 51 ; 0 "" 2 52 /* #NOAPP */ 53 0024 0895 ret 54 .size LcdSendNibble, .-LcdSendNibble 55 .section .text.LcdDelay,"ax",@progbits 56 .type LcdDelay, @function 57 LcdDelay: GAS LISTING /tmp/cc67azdq.s page 2 58 /* prologue: function */ 59 /* frame size = 0 */ 60 /* stack size = 0 */ 61 .L__stack_usage = 0 62 0000 0C94 0000 jmp NutDelay 63 .size LcdDelay, .-LcdDelay 64 .section .text.LcdWriteCmd,"ax",@progbits 65 .type LcdWriteCmd, @function 66 LcdWriteCmd: 67 0000 CF93 push r28 68 0002 DF93 push r29 69 /* prologue: function */ 70 /* frame size = 0 */ 71 /* stack size = 2 */ 72 .L__stack_usage = 2 73 0004 D82F mov r29,r24 74 0006 C62F mov r28,r22 75 0008 6A9A sbi 0xd,2 76 000a 7298 cbi 0xe,2 77 000c 0E94 0000 call LcdSendNibble 78 0010 CC23 tst r28 79 0012 01F0 breq .L4 80 0014 8C2F mov r24,r28 81 0016 0E94 0000 call LcdDelay 82 .L4: 83 001a 8D2F mov r24,r29 84 001c 8295 swap r24 85 001e 807F andi r24,lo8(-16) 86 0020 0E94 0000 call LcdSendNibble 87 0024 CC23 tst r28 88 0026 01F0 breq .L3 89 0028 8C2F mov r24,r28 90 /* epilogue start */ 91 002a DF91 pop r29 92 002c CF91 pop r28 93 002e 0C94 0000 jmp LcdDelay 94 .L3: 95 /* epilogue start */ 96 0032 DF91 pop r29 97 0034 CF91 pop r28 98 0036 0895 ret 99 .size LcdWriteCmd, .-LcdWriteCmd 100 .section .text.LcdCursorMode,"ax",@progbits 101 .type LcdCursorMode, @function 102 LcdCursorMode: 103 /* prologue: function */ 104 /* frame size = 0 */ 105 /* stack size = 0 */ 106 .L__stack_usage = 0 107 0000 62E0 ldi r22,lo8(2) 108 0002 82E0 ldi r24,lo8(2) 109 0004 0C94 0000 jmp LcdWriteCmd 110 .size LcdCursorMode, .-LcdCursorMode 111 .section .text.LcdCursorRight,"ax",@progbits 112 .type LcdCursorRight, @function 113 LcdCursorRight: 114 /* prologue: function */ GAS LISTING /tmp/cc67azdq.s page 3 115 /* frame size = 0 */ 116 /* stack size = 0 */ 117 .L__stack_usage = 0 118 0000 61E0 ldi r22,lo8(1) 119 0002 84E1 ldi r24,lo8(20) 120 0004 0C94 0000 jmp LcdWriteCmd 121 .size LcdCursorRight, .-LcdCursorRight 122 .section .text.LcdCursorLeft,"ax",@progbits 123 .type LcdCursorLeft, @function 124 LcdCursorLeft: 125 /* prologue: function */ 126 /* frame size = 0 */ 127 /* stack size = 0 */ 128 .L__stack_usage = 0 129 0000 61E0 ldi r22,lo8(1) 130 0002 80E1 ldi r24,lo8(16) 131 0004 0C94 0000 jmp LcdWriteCmd 132 .size LcdCursorLeft, .-LcdCursorLeft 133 .section .text.LcdCursorHome,"ax",@progbits 134 .type LcdCursorHome, @function 135 LcdCursorHome: 136 /* prologue: function */ 137 /* frame size = 0 */ 138 /* stack size = 0 */ 139 .L__stack_usage = 0 140 0000 62E0 ldi r22,lo8(2) 141 0002 82E0 ldi r24,lo8(2) 142 0004 0C94 0000 jmp LcdWriteCmd 143 .size LcdCursorHome, .-LcdCursorHome 144 .section .text.LcdSetCursor,"ax",@progbits 145 .type LcdSetCursor, @function 146 LcdSetCursor: 147 0000 CF93 push r28 148 0002 DF93 push r29 149 0004 00D0 rcall . 150 0006 1F92 push __zero_reg__ 151 0008 CDB7 in r28,__SP_L__ 152 000a DEB7 in r29,__SP_H__ 153 /* prologue: function */ 154 /* frame size = 4 */ 155 /* stack size = 6 */ 156 .L__stack_usage = 6 157 000c 1982 std Y+1,__zero_reg__ 158 000e 90E4 ldi r25,lo8(64) 159 0010 9A83 std Y+2,r25 160 0012 90E1 ldi r25,lo8(16) 161 0014 9B83 std Y+3,r25 162 0016 90E5 ldi r25,lo8(80) 163 0018 9C83 std Y+4,r25 164 001a 84FB bst r24,4 165 001c 2227 clr r18 166 001e 20F9 bld r18,0 167 0020 30E0 ldi r19,0 168 0022 FE01 movw r30,r28 169 0024 E20F add r30,r18 170 0026 F31F adc r31,r19 171 0028 9181 ldd r25,Z+1 GAS LISTING /tmp/cc67azdq.s page 4 172 002a 8F70 andi r24,lo8(15) 173 002c 890F add r24,r25 174 002e 61E0 ldi r22,lo8(1) 175 0030 8068 ori r24,lo8(-128) 176 /* epilogue start */ 177 0032 0F90 pop __tmp_reg__ 178 0034 0F90 pop __tmp_reg__ 179 0036 0F90 pop __tmp_reg__ 180 0038 0F90 pop __tmp_reg__ 181 003a DF91 pop r29 182 003c CF91 pop r28 183 003e 0C94 0000 jmp LcdWriteCmd 184 .size LcdSetCursor, .-LcdSetCursor 185 .section .text.LcdClear,"ax",@progbits 186 .type LcdClear, @function 187 LcdClear: 188 /* prologue: function */ 189 /* frame size = 0 */ 190 /* stack size = 0 */ 191 .L__stack_usage = 0 192 0000 62E0 ldi r22,lo8(2) 193 0002 81E0 ldi r24,lo8(1) 194 0004 0C94 0000 jmp LcdWriteCmd 195 .size LcdClear, .-LcdClear 196 .section .text.LcdInit,"ax",@progbits 197 .type LcdInit, @function 198 LcdInit: 199 0000 CF93 push r28 200 0002 DF93 push r29 201 /* prologue: function */ 202 /* frame size = 0 */ 203 /* stack size = 2 */ 204 .L__stack_usage = 2 205 0004 EC01 movw r28,r24 206 0006 6A9A sbi 0xd,2 207 0008 6B9A sbi 0xd,3 208 000a 7298 cbi 0xe,2 209 000c 83E3 ldi r24,lo8(51) 210 000e 0E94 0000 call LcdSendNibble 211 0012 82E3 ldi r24,lo8(50) 212 0014 0E94 0000 call LcdDelay 213 0018 83E3 ldi r24,lo8(51) 214 001a 0E94 0000 call LcdSendNibble 215 001e 82E3 ldi r24,lo8(50) 216 0020 0E94 0000 call LcdDelay 217 0024 83E3 ldi r24,lo8(51) 218 0026 0E94 0000 call LcdSendNibble 219 002a 82E3 ldi r24,lo8(50) 220 002c 0E94 0000 call LcdDelay 221 0030 82E2 ldi r24,lo8(34) 222 0032 0E94 0000 call LcdSendNibble 223 0036 82E3 ldi r24,lo8(50) 224 0038 0E94 0000 call LcdDelay 225 003c E989 ldd r30,Y+17 226 003e FA89 ldd r31,Y+18 227 0040 8789 ldd r24,Z+23 228 0042 8230 cpi r24,lo8(2) GAS LISTING /tmp/cc67azdq.s page 5 229 0044 00F4 brsh .L18 230 0046 80E2 ldi r24,lo8(32) 231 0048 00C0 rjmp .L17 232 .L18: 233 004a 88E2 ldi r24,lo8(40) 234 .L17: 235 004c 61E0 ldi r22,lo8(1) 236 004e 0E94 0000 call LcdWriteCmd 237 0052 62E0 ldi r22,lo8(2) 238 0054 81E0 ldi r24,lo8(1) 239 0056 0E94 0000 call LcdWriteCmd 240 005a 62E0 ldi r22,lo8(2) 241 005c 86E0 ldi r24,lo8(6) 242 005e 0E94 0000 call LcdWriteCmd 243 0062 62E0 ldi r22,lo8(2) 244 0064 8CE0 ldi r24,lo8(12) 245 0066 0E94 0000 call LcdWriteCmd 246 006a 62E0 ldi r22,lo8(2) 247 006c 82E0 ldi r24,lo8(2) 248 006e 0E94 0000 call LcdWriteCmd 249 0072 62E0 ldi r22,lo8(2) 250 0074 80E8 ldi r24,lo8(-128) 251 0076 0E94 0000 call LcdWriteCmd 252 007a 1092 0000 sts during_init,__zero_reg__ 253 007e 80E0 ldi r24,0 254 0080 90E0 ldi r25,0 255 /* epilogue start */ 256 0082 DF91 pop r29 257 0084 CF91 pop r28 258 0086 0895 ret 259 .size LcdInit, .-LcdInit 260 .section .text.LcdWriteData,"ax",@progbits 261 .type LcdWriteData, @function 262 LcdWriteData: 263 0000 CF93 push r28 264 /* prologue: function */ 265 /* frame size = 0 */ 266 /* stack size = 1 */ 267 .L__stack_usage = 1 268 0002 C82F mov r28,r24 269 0004 6A9A sbi 0xd,2 270 0006 729A sbi 0xe,2 271 0008 0E94 0000 call LcdSendNibble 272 000c 81E0 ldi r24,lo8(1) 273 000e 0E94 0000 call LcdDelay 274 0012 8C2F mov r24,r28 275 0014 8295 swap r24 276 0016 807F andi r24,lo8(-16) 277 0018 0E94 0000 call LcdSendNibble 278 001c 81E0 ldi r24,lo8(1) 279 /* epilogue start */ 280 001e CF91 pop r28 281 0020 0C94 0000 jmp LcdDelay 282 .size LcdWriteData, .-LcdWriteData 283 .global devLcd 284 .data 285 .type devLcd, @object GAS LISTING /tmp/cc67azdq.s page 6 286 .size devLcd, 37 287 devLcd: 288 0000 0000 .word 0 289 0002 6C .byte 108 290 0003 63 .byte 99 291 0004 64 .byte 100 292 0005 00 .byte 0 293 0006 00 .byte 0 294 0007 00 .byte 0 295 0008 00 .byte 0 296 0009 00 .byte 0 297 000a 00 .byte 0 298 000b 02 .byte 2 299 000c 0000 .word 0 300 000e 00 .byte 0 301 000f 0000 .word 0 302 0011 0000 .word dcb_term 303 0013 0000 .word gs(TermInit) 304 0015 0000 .word gs(TermIOCtl) 305 0017 0000 .word 0 306 0019 0000 .word gs(TermWrite) 307 001b 0000 .word gs(TermWrite_P) 308 001d 0000 .word gs(TermOpen) 309 001f 0000 .word gs(TermClose) 310 0021 0000 .word 0 311 0023 0000 .word 0 312 .global dcb_term 313 .type dcb_term, @object 314 .size dcb_term, 32 315 dcb_term: 316 0025 0000 .word gs(LcdInit) 317 0027 0000 .word gs(LcdWriteData) 318 0029 0000 .word gs(LcdWriteCmd) 319 002b 0000 .word gs(LcdClear) 320 002d 0000 .word gs(LcdSetCursor) 321 002f 0000 .word gs(LcdCursorHome) 322 0031 0000 .word gs(LcdCursorLeft) 323 0033 0000 .word gs(LcdCursorRight) 324 0035 0000 .word gs(LcdCursorMode) 325 0037 00 .byte 0 326 0038 00 .byte 0 327 0039 00 .byte 0 328 003a 00 .byte 0 329 003b 00 .byte 0 330 003c 02 .byte 2 331 003d 10 .byte 16 332 003e 10 .byte 16 333 003f 00 .byte 0 334 0040 00 .byte 0 335 0041 0000 .word 0 336 0043 0000 .zero 2 337 .type during_init, @object 338 .size during_init, 1 339 during_init: 340 0045 01 .byte 1 341 .ident "GCC: (GNU) 5.3.0" 342 .global __do_copy_data GAS LISTING /tmp/cc67azdq.s page 7 GAS LISTING /tmp/cc67azdq.s page 8 DEFINED SYMBOLS *ABS*:0000000000000000 hd44780.c /tmp/cc67azdq.s:2 *ABS*:000000000000003e __SP_H__ /tmp/cc67azdq.s:3 *ABS*:000000000000003d __SP_L__ /tmp/cc67azdq.s:4 *ABS*:000000000000003f __SREG__ /tmp/cc67azdq.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/cc67azdq.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/cc67azdq.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/cc67azdq.s:10 .text.LcdSendNibble:0000000000000000 LcdSendNibble /tmp/cc67azdq.s:57 .text.LcdDelay:0000000000000000 LcdDelay /tmp/cc67azdq.s:66 .text.LcdWriteCmd:0000000000000000 LcdWriteCmd /tmp/cc67azdq.s:102 .text.LcdCursorMode:0000000000000000 LcdCursorMode /tmp/cc67azdq.s:113 .text.LcdCursorRight:0000000000000000 LcdCursorRight /tmp/cc67azdq.s:124 .text.LcdCursorLeft:0000000000000000 LcdCursorLeft /tmp/cc67azdq.s:135 .text.LcdCursorHome:0000000000000000 LcdCursorHome /tmp/cc67azdq.s:146 .text.LcdSetCursor:0000000000000000 LcdSetCursor /tmp/cc67azdq.s:187 .text.LcdClear:0000000000000000 LcdClear /tmp/cc67azdq.s:198 .text.LcdInit:0000000000000000 LcdInit /tmp/cc67azdq.s:339 .data:0000000000000045 during_init /tmp/cc67azdq.s:262 .text.LcdWriteData:0000000000000000 LcdWriteData /tmp/cc67azdq.s:287 .data:0000000000000000 devLcd /tmp/cc67azdq.s:315 .data:0000000000000025 dcb_term UNDEFINED SYMBOLS NutDelay TermInit TermIOCtl TermWrite TermWrite_P TermOpen TermClose __do_copy_data