📄 runtime.lis
字号:
.module runtime.c
.text
0000 .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
.area vector(abs)
.org 56
0038 0C941200 jmp _RuntimeInterrupt
.area text
0000 .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
0000 .dbfunc s RuntimeInitialise _RuntimeInitialise fI
.even
0000 _RuntimeInitialise::
0000 .dbline 15{
; /* ATmega103 runtime.c file
;
; Author : Robert Stuart
; Company : PDL Industries
; Date of Creation : 21 July 1999
; Tested : not yet
;
; Function :
; */
;
; /* include */
; #include "runtime.h"
;
; void RuntimeInitialise( void )
; {
0000 .dbline 16
; TCCR1B = 0; /* Stop T1 */
0000 2224 clr R2
0002 2EBC out 0x2e,R2
0004 .dbline 17
; TCNT1 = 0; /* Clear T1 */
0004 3324 clr R3
0006 30924D00 sts 76+1,R3
000A 20924C00 sts 76,R2
000E .dbline 18
; OCR1A = _1MS_INTERRUPT; /* Set Compare A - 1ms for a 6MHz clock */
000E 80E7 ldi R24,112
0010 97E1 ldi R25,23
0012 90934B00 sts 74+1,R25
0016 80934A00 sts 74,R24
001A .dbline 19
; TIMSK = BIT(OCIE1A); /* Compare A interrupt enabled */
001A 80E1 ldi R24,16
001C 87BF out 0x37,R24
001E .dbline 20
; TCCR1B = BIT(CS10) | BIT(CTC1);
001E 89E0 ldi R24,9
0020 8EBD out 0x2e,R24
0022 .dbline 21}
; }
0022 L1:
0022 0895 ret
.area bss
0000 .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
0000 L3:
0000 .blkb 2
0002 L4:
0002 .blkb 1
.area text
0024 .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
0024 .dbfunc s RuntimeInterrupt _RuntimeInterrupt fI
0024 .dbsym s seconds L4 c
0024 .dbsym s delay L3 I
; str -> y+2
.even
0024 _RuntimeInterrupt::
0024 0E940000 call push_lset
0028 6397 sbiw R28,19
002A .dbline 24{
;
; void RuntimeInterrupt( void )
; {
002A .dbline 29
; static int delay;
; static char seconds;
; char str[17];
;
; if ( ++delay == _1000MS )
002A 90910100 lds R25,L3+1
002E 80910000 lds R24,L3
0032 0196 adiw R24,1
0034 282E mov R2,R24
0036 392E mov R3,R25
0038 30920100 sts L3+1,R3
003C 20920000 sts L3,R2
0040 822D mov R24,R2
0042 932D mov R25,R3
0044 883E cpi R24,232
0046 83E0 ldi R24,3
0048 9807 cpc R25,R24
004A 49F5 brne L5
004C .dbline 30
; {
004C .dbline 31
; if ( ++seconds == 60 )
004C 80910200 lds R24,L4
0050 8F5F subi R24,255 ; addi 1
0052 282E mov R2,R24
0054 20920200 sts L4,R2
0058 822D mov R24,R2
005A 8C33 cpi R24,60
005C 19F4 brne L7
005E .dbline 32
; seconds = 0;
005E 2224 clr R2
0060 20920200 sts L4,R2
0064 L7:
0064 .dbline 33
; sprintf( str, "Seconds %d", seconds);
0064 20900200 lds R2,L4
0068 3324 clr R3
006A 2882 std y+0,R2
006C 3982 std y+1,R3
006E 20E0 ldi R18,<L9
0070 30E0 ldi R19,>L9
0072 8C2F mov R24,R28
0074 9D2F mov R25,R29
0076 0296 adiw R24,2
0078 082F mov R16,R24
007A 192F mov R17,R25
007C 0E940000 call _sprintf
0080 .dbline 34
; LCDPrintf( str, "ATmega103" );
0080 20E0 ldi R18,<L10
0082 30E0 ldi R19,>L10
0084 8C2F mov R24,R28
0086 9D2F mov R25,R29
0088 0296 adiw R24,2
008A 082F mov R16,R24
008C 192F mov R17,R25
008E 0E940000 call _LCDPrintf
0092 .dbline 35
; delay = 0;
0092 2224 clr R2
0094 3324 clr R3
0096 30920100 sts L3+1,R3
009A 20920000 sts L3,R2
009E .dbline 36
; }
009E L5:
009E .dbline 38
;
; DelayLCDStartup();
009E 0E940000 call _DelayLCDStartup
00A2 .dbline 40
;
; WDR;
00A2 A895 WDR
00A4 .dbline 41}
; }
00A4 L2:
00A4 6396 adiw R28,19
00A6 0E940000 call pop_lset
00AA 1895 reti
00AC .dbsym l str 2 Ac[17:17]
.area data
0000 .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
0000 L10:
0000 .blkb 10
.area idata
0000 41546D65676131303300 .byte 'A,'T,'m,'e,'g,'a,49,48,51,0
.area data
000A .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
000A L9:
000A .blkb 11
.area idata
000A 5365636F6E647320256400 .byte 'S,'e,'c,'o,'n,'d,'s,32,37,'d,0
.area data
0015 .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -