📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile F:\全物理仿真\mega128\uart_0\main.c
0000 .dbfunc e main _main fV
0000 ; out2 -> R22
0000 ; out1 -> R10
0000 ; rc -> R12
0000 ; i -> R14
.even
0000 _main::
0000 .dbline -1
0000 .dbline 6
0000 ; #include "includes.h"
0000 ;
0000 ;
0000 ; /*main function of USART communication */
0000 ; void main()
0000 ; {
0000 .dbline 9
0000 ; U8 i,rc,out1,out2;
0000 ;
0000 ; port_init();
0000 0E940000 xcall _port_init
0004 .dbline 10
0004 ; uart0_init();
0004 0E940000 xcall _uart0_init
0008 .dbline 12
0008 ;
0008 ; printf("Main running ...");
0008 00E0 ldi R16,<L2
000A 10E0 ldi R17,>L2
000C 0E940000 xcall _printf
0010 64C0 xjmp L4
0012 L3:
0012 .dbline 15
0012 ;
0012 ; while(1)
0012 ; {
0012 .dbline 16
0012 ; uart0_putchar('a');
0012 01E6 ldi R16,97
0014 0E940000 xcall _uart0_putchar
0018 .dbline 17
0018 ; uart0_putchar(0xd);uart0_putchar(0xa);
0018 0DE0 ldi R16,13
001A 0E940000 xcall _uart0_putchar
001E .dbline 17
001E 0AE0 ldi R16,10
0020 0E940000 xcall _uart0_putchar
0024 .dbline 18
0024 ; rc=uart0_waitchar();
0024 0E940000 xcall _uart0_waitchar
0028 C02E mov R12,R16
002A .dbline 20
002A ;
002A ; switch(rc)
002A 4C2D mov R20,R12
002C 5527 clr R21
002E 4033 cpi R20,48
0030 E0E0 ldi R30,0
0032 5E07 cpc R21,R30
0034 C1F0 breq L13
0036 4133 cpi R20,49
0038 E0E0 ldi R30,0
003A 5E07 cpc R21,R30
003C 39F1 breq L18
003E 4233 cpi R20,50
0040 E0E0 ldi R30,0
0042 5E07 cpc R21,R30
0044 09F4 brne X3
0046 36C0 xjmp L23
0048 X3:
0048 4033 cpi R20,48
004A E0E0 ldi R30,0
004C 5E07 cpc R21,R30
004E 0CF4 brge X4
0050 44C0 xjmp L6
0052 X4:
0052 L28:
0052 4837 cpi R20,120
0054 E0E0 ldi R30,0
0056 5E07 cpc R21,R30
0058 09F0 breq L9
005A 3FC0 xjmp L6
005C X0:
005C .dbline 21
005C ; {
005C L9:
005C .dbline 23
005C ; case 'x':
005C ; WDR();
005C A895 wdr
005E .dbline 24
005E ; WDTCR = 0x0E;
005E 8EE0 ldi R24,14
0060 81BD out 0x21,R24
0062 L10:
0062 .dbline 25
0062 L11:
0062 .dbline 25
0062 ; while(1);
0062 FFCF xjmp L10
0064 X1:
0064 .dbline 26
0064 ; break;
0064 3AC0 xjmp L7
0066 L13:
0066 .dbline 29
0066 ;
0066 ; case '0':
0066 ; for(i=0;i<5;i++)
0066 EE24 clr R14
0068 05C0 xjmp L17
006A L14:
006A .dbline 30
006A .dbline 31
006A 0E2D mov R16,R14
006C 005D subi R16,208 ; addi 48
006E 0E940000 xcall _uart0_putchar
0072 .dbline 32
0072 L15:
0072 .dbline 29
0072 E394 inc R14
0074 L17:
0074 .dbline 29
0074 8E2D mov R24,R14
0076 8530 cpi R24,5
0078 C0F3 brlo L14
007A .dbline 33
007A ; {
007A ; uart0_putchar('0'+i);
007A ; }
007A ; delay_ms(100);
007A 04E6 ldi R16,100
007C 10E0 ldi R17,0
007E 0E940000 xcall _delay_ms
0082 .dbline 34
0082 ; port_init0();
0082 0E940000 xcall _port_init0
0086 .dbline 35
0086 ; out1 = PINA;
0086 A9B2 in R10,0x19
0088 .dbline 36
0088 ; out2 = PINC;
0088 63B3 in R22,0x13
008A .dbline 37
008A ; break;
008A 27C0 xjmp L7
008C L18:
008C .dbline 40
008C ;
008C ; case '1':
008C ; for(i=5;i<10;i++)
008C 85E0 ldi R24,5
008E E82E mov R14,R24
0090 05C0 xjmp L22
0092 L19:
0092 .dbline 41
0092 .dbline 42
0092 0E2D mov R16,R14
0094 005D subi R16,208 ; addi 48
0096 0E940000 xcall _uart0_putchar
009A .dbline 43
009A L20:
009A .dbline 40
009A E394 inc R14
009C L22:
009C .dbline 40
009C 8E2D mov R24,R14
009E 8A30 cpi R24,10
00A0 C0F3 brlo L19
00A2 .dbline 44
00A2 ; {
00A2 ; uart0_putchar('0'+i);
00A2 ; }
00A2 ; delay_ms(100);
00A2 04E6 ldi R16,100
00A4 10E0 ldi R17,0
00A6 0E940000 xcall _delay_ms
00AA .dbline 45
00AA ; port_init1();
00AA 0E940000 xcall _port_init1
00AE .dbline 46
00AE ; out1 = PINA;
00AE A9B2 in R10,0x19
00B0 .dbline 47
00B0 ; out2 = PINC;
00B0 63B3 in R22,0x13
00B2 .dbline 48
00B2 ; break;
00B2 13C0 xjmp L7
00B4 L23:
00B4 .dbline 51
00B4 ;
00B4 ; case '2':
00B4 ; for(i='a';i<='z';i++)
00B4 81E6 ldi R24,97
00B6 E82E mov R14,R24
00B8 05C0 xjmp L27
00BA L24:
00BA .dbline 52
00BA .dbline 53
00BA 0E2D mov R16,R14
00BC 0F59 subi R16,159 ; addi 97
00BE 0E940000 xcall _uart0_putchar
00C2 .dbline 54
00C2 L25:
00C2 .dbline 51
00C2 E394 inc R14
00C4 L27:
00C4 .dbline 51
00C4 8AE7 ldi R24,122
00C6 8E15 cp R24,R14
00C8 C0F7 brsh L24
00CA .dbline 55
00CA ; {
00CA ; uart0_putchar('a'+i);
00CA ; }
00CA ; delay_ms(100);
00CA 04E6 ldi R16,100
00CC 10E0 ldi R17,0
00CE 0E940000 xcall _delay_ms
00D2 .dbline 56
00D2 ; port_init2();
00D2 0E940000 xcall _port_init2
00D6 .dbline 57
00D6 ; out1 = PINA;
00D6 A9B2 in R10,0x19
00D8 .dbline 58
00D8 ; out2 = PINC;
00D8 63B3 in R22,0x13
00DA .dbline 59
00DA ; break;
00DA L6:
00DA L7:
00DA .dbline 62
00DA L4:
00DA .dbline 14
00DA 9BCF xjmp L3
00DC X2:
00DC .dbline -2
00DC L1:
00DC .dbline 0 ; func end
00DC 0895 ret
00DE .dbsym r out2 22 c
00DE .dbsym r out1 10 c
00DE .dbsym r rc 12 c
00DE .dbsym r i 14 c
00DE .dbend
.area data(ram, con, rel)
0000 .dbfile F:\全物理仿真\mega128\uart_0\main.c
0000 L2:
0000 .blkb 18
.area idata
0000 4D61696E2072756E6E696E6720202E2E .byte 'M,'a,'i,'n,32,'r,'u,'n,'n,'i,'n,'g,32,32,46,46
0010 2E00 .byte 46,0
.area data(ram, con, rel)
0012 .dbfile F:\全物理仿真\mega128\uart_0\main.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -