📄 main.lst
字号:
__start:
__text_start:
0129 E5CF LDI R28,0x5F
012A E0D4 LDI R29,4
012B BFCD OUT 0x3D,R28
012C BFDE OUT 0x3E,R29
012D 51C0 SUBI R28,0x10
012E 40D0 SBCI R29,0
012F EA0A LDI R16,0xAA
0130 8308 STD Y+0,R16
0131 2400 CLR R0
0132 E4EA LDI R30,0x4A
0133 E0F1 LDI R31,1
0134 E011 LDI R17,1
0135 36E8 CPI R30,0x68
0136 07F1 CPC R31,R17
0137 F011 BEQ 0x013A
0138 9201 ST R0,Z+
0139 CFFB RJMP 0x0135
013A 8300 STD Z+0,R16
013B E6E7 LDI R30,0x67
013C E0F1 LDI R31,1
013D E6A0 LDI R26,0x60
013E E0B0 LDI R27,0
013F E012 LDI R17,2
0140 35E1 CPI R30,0x51
0141 07F1 CPC R31,R17
0142 F021 BEQ 0x0147
0143 95C8 LPM
0144 9631 ADIW R30,1
0145 920D ST R0,X+
0146 CFF9 RJMP 0x0140
0147 940E0162 CALL _main
_exit:
0149 CFFF RJMP _exit
FILE: E:\avr\2.5.4\main.c
(0001) // ICC-AVR application builder : 2007-5-25 21:35:24
(0002) // Target : M16
(0003) // Crystal: 7.3728Mhz
(0004) // 用途:演示getchar(),getchar(),printf()等函数的使用。
(0005) // 作者:古欣
(0006) // AVR与虚拟仪器 http://www.avrvi.com
(0007) // 使用7.3728M外部晶振,注意:请短接跳线JP2的1和2,电源跳线连接3.3V或者5V
(0008) // 串口使用JP4的连接方法:1和2短接,使用RS232,请注意查看跳线旁边的示意图
(0009) // 开发板连接:无连线
(0010)
(0011) #include <iom16v.h>
(0012) #include <macros.h>
(0013) #include <stdio.h>
(0014)
(0015) //UART0 initialize
(0016) // desired baud rate: 9600
(0017) // actual: baud rate:9600 (0.0%)
(0018) // char size: 8 bit
(0019) // parity: Disabled
(0020) void uart0_init(void)
(0021) {
(0022) UCSRB = 0x00; //disable while setting baud rate
_uart0_init:
014A 2422 CLR R2
014B B82A OUT 0x0A,R2
(0023) UCSRA = 0x00;
014C B82B OUT 0x0B,R2
(0024) UCSRC = BIT(URSEL) | 0x06;
014D E886 LDI R24,0x86
014E BD80 OUT 0x20,R24
(0025) UBRRL = 0x2F; //set baud rate lo
014F E28F LDI R24,0x2F
0150 B989 OUT 0x09,R24
(0026) UBRRH = 0x00; //set baud rate hi
0151 BC20 OUT 0x20,R2
(0027) UCSRB = 0x18;
0152 E188 LDI R24,0x18
0153 B98A OUT 0x0A,R24
0154 9508 RET
(0028) }
(0029)
(0030) void delay(void)
(0031) {
(0032) unsigned char i=0,j=0;
_delay:
i --> R16
j --> R18
0155 2700 CLR R16
0156 2722 CLR R18
(0033) for(i=1;i!=0;i++)
0157 E001 LDI R16,1
0158 C006 RJMP 0x015F
(0034) {
(0035) for(j=1;j!=0;j++)
0159 E021 LDI R18,1
015A C001 RJMP 0x015C
015B 9523 INC R18
015C 2322 TST R18
015D F7E9 BNE 0x015B
015E 9503 INC R16
015F 2300 TST R16
0160 F7C1 BNE 0x0159
0161 9508 RET
_main:
i --> Y+1
c --> R20
b --> R20
temp --> Y+1
a --> Y+0
0162 972D SBIW R28,0xD
(0036) ;
(0037) }
(0038) }
(0039)
(0040) void main(void)
(0041) {
(0042) unsigned char i;
(0043) unsigned char temp[]=" ";
0163 E58A LDI R24,0x5A
0164 E090 LDI R25,0
0165 01FE MOVW R30,R28
0166 9631 ADIW R30,1
0167 E00C LDI R16,0xC
0168 E010 LDI R17,0
0169 93FA ST R31,-Y
016A 93EA ST R30,-Y
016B 939A ST R25,-Y
016C 938A ST R24,-Y
016D 940E03F6 CALL asgncblk
(0044) unsigned char a=0,b=0,c=0;
016F 2422 CLR R2
0170 8228 STD Y+0,R2
0171 2744 CLR R20
(0045) uart0_init(); //初始化串口
0172 DFD7 RCALL _uart0_init
(0046) printf("www.avrvi.com\r\n"); //输出字符串
0173 E608 LDI R16,0x68
0174 E010 LDI R17,0
0175 940E09FE CALL _printf
0177 C00C RJMP 0x0184
(0047) /*
(0048) while(1)
(0049) {
(0050) i=getchar(); //读入一个字符
(0051) putchar((signed char)i); //输出字符
(0052) if(i=='a') printf("OK\r\n");//如果输入的是a,输出OK,加回车换行。
(0053) if(i=='A') printf("GOOD\t");//如果输入的是A,输出GOOD,加一个TAB符号。
(0054) }
(0055) */
(0056) while(1)
(0057) {
(0058) delay();
0178 DFDC RCALL _delay
(0059) scanf("%d",&a);
0179 019E MOVW R18,R28
017A E605 LDI R16,0x65
017B E010 LDI R17,0
017C 940E0A31 CALL _scanf
(0060) printf("%d\r\n",a);
FILE: <library>
017E 8128 LDD R18,Y+0
017F 2733 CLR R19
0180 E600 LDI R16,0x60
0181 E010 LDI R17,0
0182 940E09FE CALL _printf
0184 CFF3 RJMP 0x0178
0185 962D ADIW R28,0xD
0186 9508 RET
__print:
0187 940E0336 CALL push_arg4
0189 940E037E CALL push_gset5
018B 972A SBIW R28,0xA
018C 2400 CLR R0
018D 2411 CLR R1
018E 821F STD Y+7,R1
018F 820E STD Y+6,R0
0190 C18F RJMP 0x0320
0191 89EE LDD R30,Y+22
0192 89FF LDD R31,Y+23
0193 8180 LDD R24,Z+0
0194 3285 CPI R24,0x25
0195 F059 BEQ 0x01A1
0196 8100 LDD R16,Z+0
0197 89EC LDD R30,Y+20
0198 89FD LDD R31,Y+21
0199 940E039D CALL xicall
019B 818E LDD R24,Y+6
019C 819F LDD R25,Y+7
019D 9601 ADIW R24,1
019E 839F STD Y+7,R25
019F 838E STD Y+6,R24
01A0 C17A RJMP 0x031B
01A1 24EE CLR R14
01A2 24FF CLR R15
01A3 E44A LDI R20,0x4A
01A4 E051 LDI R21,1
01A5 E260 LDI R22,0x20
01A6 898E LDD R24,Y+22
01A7 899F LDD R25,Y+23
01A8 9601 ADIW R24,1
01A9 8B9F STD Y+23,R25
01AA 8B8E STD Y+22,R24
01AB 2FE8 MOV R30,R24
01AC 2FF9 MOV R31,R25
01AD 8020 LDD R2,Z+0
01AE 2433 CLR R3
01AF 823D STD Y+5,R3
01B0 822C STD Y+4,R2
01B1 2D82 MOV R24,R2
01B2 2D93 MOV R25,R3
01B3 3588 CPI R24,0x58
01B4 E0E0 LDI R30,0
01B5 079E CPC R25,R30
01B6 F409 BNE 0x01B8
01B7 C08B RJMP 0x0243
01B8 E588 LDI R24,0x58
01B9 1582 CP R24,R2
01BA 0593 CPC R25,R3
01BB F0A4 BLT 0x01D0
01BC 818C LDD R24,Y+4
01BD 819D LDD R25,Y+5
01BE 3485 CPI R24,0x45
01BF E0E0 LDI R30,0
01C0 079E CPC R25,R30
01C1 F409 BNE 0x01C3
01C2 C153 RJMP 0x0316
01C3 3485 CPI R24,0x45
01C4 E0E0 LDI R30,0
01C5 079E CPC R25,R30
01C6 F40C BGE 0x01C8
01C7 C043 RJMP 0x020B
01C8 818C LDD R24,Y+4
01C9 819D LDD R25,Y+5
01CA 3583 CPI R24,0x53
01CB E0E0 LDI R30,0
01CC 079E CPC R25,R30
01CD F409 BNE 0x01CF
01CE C0E2 RJMP 0x02B1
01CF C03B RJMP 0x020B
01D0 818C LDD R24,Y+4
01D1 819D LDD R25,Y+5
01D2 368F CPI R24,0x6F
01D3 E0E0 LDI R30,0
01D4 079E CPC R25,R30
01D5 F409 BNE 0x01D7
01D6 C06C RJMP 0x0243
01D7 E68F LDI R24,0x6F
01D8 E090 LDI R25,0
01D9 802C LDD R2,Y+4
01DA 803D LDD R3,Y+5
01DB 1582 CP R24,R2
01DC 0593 CPC R25,R3
01DD F0DC BLT 0x01F9
01DE 818C LDD R24,Y+4
01DF 819D LDD R25,Y+5
01E0 3683 CPI R24,0x63
01E1 E0E0 LDI R30,0
01E2 079E CPC R25,R30
01E3 F409 BNE 0x01E5
01E4 C0B6 RJMP 0x029B
01E5 3684 CPI R24,0x64
01E6 E0E0 LDI R30,0
01E7 079E CPC R25,R30
01E8 F409 BNE 0x01EA
01E9 C02E RJMP 0x0218
01EA 3685 CPI R24,0x65
01EB E0E0 LDI R30,0
01EC 079E CPC R25,R30
01ED F409 BNE 0x01EF
01EE C127 RJMP 0x0316
01EF 3686 CPI R24,0x66
01F0 E0E0 LDI R30,0
01F1 079E CPC R25,R30
01F2 F409 BNE 0x01F4
01F3 C122 RJMP 0x0316
01F4 3689 CPI R24,0x69
01F5 E0E0 LDI R30,0
01F6 079E CPC R25,R30
01F7 F101 BEQ 0x0218
01F8 C012 RJMP 0x020B
01F9 818C LDD R24,Y+4
01FA 819D LDD R25,Y+5
01FB 3783 CPI R24,0x73
01FC E0E0 LDI R30,0
01FD 079E CPC R25,R30
01FE F409 BNE 0x0200
01FF C0E0 RJMP 0x02E0
0200 3785 CPI R24,0x75
0201 E0E0 LDI R30,0
0202 079E CPC R25,R30
0203 F409 BNE 0x0205
0204 C03E RJMP 0x0243
0205 3788 CPI R24,0x78
0206 E0E0 LDI R30,0
0207 079E CPC R25,R30
0208 F409 BNE 0x020A
0209 C039 RJMP 0x0243
020A C000 RJMP 0x020B
020B 89EE LDD R30,Y+22
020C 89FF LDD R31,Y+23
020D 8100 LDD R16,Z+0
020E 89EC LDD R30,Y+20
020F 89FD LDD R31,Y+21
0210 940E039D CALL xicall
0212 818E LDD R24,Y+6
0213 819F LDD R25,Y+7
0214 9601 ADIW R24,1
0215 839F STD Y+7,R25
0216 838E STD Y+6,R24
0217 C103 RJMP 0x031B
0218 8D88 LDD R24,Y+24
0219 8D99 LDD R25,Y+25
021A 9602 ADIW R24,2
021B 8F99 STD Y+25,R25
021C 8F88 STD Y+24,R24
021D 2FE8 MOV R30,R24
021E 2FF9 MOV R31,R25
021F 9732 SBIW R30,2
0220 8020 LDD R2,Z+0
0221 8031 LDD R3,Z+1
0222 8639 STD Y+9,R3
0223 8628 STD Y+8,R2
0224 2D82 MOV R24,R2
0225 2D93 MOV R25,R3
0226 3080 CPI R24,0
0227 E0E0 LDI R30,0
0228 079E CPC R25,R30
0229 F474 BGE 0x0238
022A 2D8E MOV R24,R14
022B 2D9F MOV R25,R15
022C 6088 ORI R24,0x8
022D 2EE8 MOV R14,R24
022E 2EF9 MOV R15,R25
022F E26D LDI R22,0x2D
0230 2D82 MOV R24,R2
0231 2D93 MOV R25,R3
0232 9580 COM R24
0233 9590 COM R25
0234 5F8F SUBI R24,0xFF
0235 4F9F SBCI R25,0xFF
0236 8799 STD Y+9,R25
0237 8788 STD Y+8,R24
0238 E08A LDI R24,0xA
0239 E090 LDI R25,0
023A 8399 STD Y+1,R25
023B 8388 STD Y+0,R24
023C 8528 LDD R18,Y+8
023D 8539 LDD R19,Y+9
023E 2F04 MOV R16,R20
023F 2F15 MOV R17,R21
0240 940E0434 CALL _itoa
0242 C053 RJMP 0x0296
0243 8D88 LDD R24,Y+24
0244 8D99 LDD R25,Y+25
0245 9602 ADIW R24,2
0246 8F99 STD Y+25,R25
0247 8F88 STD Y+24,R24
0248 2FE8 MOV R30,R24
0249 2FF9 MOV R31,R25
024A 9732 SBIW R30,2
024B 8020 LDD R2,Z+0
024C 8031 LDD R3,Z+1
024D 8639 STD Y+9,R3
024E 8628 STD Y+8,R2
024F 89EE LDD R30,Y+22
0250 89FF LDD R31,Y+23
0251 8180 LDD R24,Z+0
0252 3785 CPI R24,0x75
0253 F459 BNE 0x025F
0254 E08A LDI R24,0xA
0255 E090 LDI R25,0
0256 8399 STD Y+1,R25
0257 8388 STD Y+0,R24
0258 2D22 MOV R18,R2
0259 2D33 MOV R19,R3
025A 2F04 MOV R16,R20
025B 2F15 MOV R17,R21
025C 940E078A CALL _utoa
025E C037 RJMP 0x0296
025F 89EE LDD R30,Y+22
0260 89FF LDD R31,Y+23
0261 8180 LDD R24,Z+0
0262 368F CPI R24,0x6F
0263 F459 BNE 0x026F
0264 E088 LDI R24,0x8
0265 E090 LDI R25,0
0266 8399 STD Y+1,R25
0267 8388 STD Y+0,R24
0268 8528 LDD R18,Y+8
0269 8539 LDD R19,Y+9
026A 2F04 MOV R16,R20
026B 2F15 MOV R17,R21
026C 940E078A CALL _utoa
026E C027 RJMP 0x0296
026F E180 LDI R24,0x10
0270 E090 LDI R25,0
0271 8399 STD Y+1,R25
0272 8388 STD Y+0,R24
0273 8528 LDD R18,Y+8
0274 8539 LDD R19,Y+9
0275 2F04 MOV R16,R20
0276 2F15 MOV R17,R21
0277 940E078A CALL _utoa
0279 89EE LDD R30,Y+22
027A 89FF LDD R31,Y+23
027B 8180 LDD R24,Z+0
027C 3588 CPI R24,0x58
027D F4C1 BNE 0x0296
027E E48A LDI R24,0x4A
027F E091 LDI R25,1
0280 2EC8 MOV R12,R24
0281 2ED9 MOV R13,R25
0282 C00E RJMP 0x0291
0283 2DEC MOV R30,R12
0284 2DFD MOV R31,R13
0285 8100 LDD R16,Z+0
0286 2711 CLR R17
0287 940E080C CALL _toupper
0289 2DEC MOV R30,R12
028A 2DFD MOV R31,R13
028B 8300 STD Z+0,R16
028C 2D8C MOV R24,R12
028D 2D9D MOV R25,R13
028E 9601 ADIW R24,1
028F 2EC8 MOV R12,R24
0290 2ED9 MOV R13,R25
0291 2DEC MOV R30,R12
0292 2DFD MOV R31,R13
0293 8020 LDD R2,Z+0
0294 2022 TST R2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -