📄 shiyan.lst
字号:
__start:
__text_start:
0102 E5CF LDI R28,0x5F
0103 E0D4 LDI R29,4
0104 BFCD OUT 0x3D,R28
0105 BFDE OUT 0x3E,R29
0106 51C0 SUBI R28,0x10
0107 40D0 SBCI R29,0
0108 EA0A LDI R16,0xAA
0109 8308 STD Y+0,R16
010A 2400 CLR R0
010B E3EB LDI R30,0x3B
010C E0F1 LDI R31,1
010D E011 LDI R17,1
010E 35E6 CPI R30,0x56
010F 07F1 CPC R31,R17
0110 F011 BEQ 0x0113
0111 9201 ST R0,Z+
0112 CFFB RJMP 0x010E
0113 8300 STD Z+0,R16
0114 E2E9 LDI R30,0x29
0115 E0F1 LDI R31,1
0116 E6A0 LDI R26,0x60
0117 E0B0 LDI R27,0
0118 E012 LDI R17,2
0119 30E4 CPI R30,4
011A 07F1 CPC R31,R17
011B F021 BEQ 0x0120
011C 95C8 LPM
011D 9631 ADIW R30,1
011E 920D ST R0,X+
011F CFF9 RJMP 0x0119
0120 D00C RCALL _main
_exit:
0121 CFFF RJMP _exit
FILE: C:\icc\examples.avr\chengxu\shiyan\shiyan.c
(0001) //ICC-AVR application builder : 2007-5-25 21:35:24
(0002) // Target : M8
(0003) // Crystal: 7.3728Mhz
(0004) // 用途:演示getchar(),getchar(),printf()等函数的使用。
(0005) // 作者:XX
(0006) // AVR与虚拟仪器 http://www.avrvi.com
(0007) // 使用7.3728M外部晶振,注意:请短接跳线JP2的1和2,电源跳线连接3.3V或者5V
(0008) // 串口使用JP4的连接方法:1和2短接,使用RS232,请注意查看跳线旁边的示意图
(0009) // 开发板连接:无连线
(0010)
(0011) #include <iom8v.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:
0122 2422 CLR R2
0123 B82A OUT 0x0A,R2
(0023) UCSRA = 0x00;
0124 B82B OUT 0x0B,R2
(0024) UCSRC = BIT(URSEL) | 0x06;
0125 E886 LDI R24,0x86
0126 BD80 OUT 0x20,R24
(0025) UBRRL = 0x5F; //set baud rate lo
0127 E58F LDI R24,0x5F
0128 B989 OUT 0x09,R24
(0026) UBRRH = 0x00; //set baud rate hi
0129 BC20 OUT 0x20,R2
(0027) UCSRB = 0x18;
012A E188 LDI R24,0x18
012B B98A OUT 0x0A,R24
012C 9508 RET
(0028) }
(0029)
(0030) void main(void)
(0031) {
(0032) unsigned char i;
(0033) uart0_init(); //初始化串口
_main:
i --> R20
012D DFF4 RCALL _uart0_init
(0034) //printf("[url]www.avrvi.com[/url]\r\n"); //输出字符串
(0035) printf("www.avrvi.com\r\n"); //输出字符串
012E E60C LDI R16,0x6C
012F E010 LDI R17,0
0130 D251 RCALL _printf
0131 C00D RJMP 0x013F
(0036) while(1)
(0037) {
(0038) i=getchar(); //读入一个字符
0132 D1B9 RCALL _getchar
0133 2F40 MOV R20,R16
(0039) putchar((signed char)i); //输出字符
0134 D1A2 RCALL _putchar
(0040) if(i=='a') printf("OK\r\n");//如果输入的是a,输出OK,加回车换行。
0135 3641 CPI R20,0x61
0136 F419 BNE 0x013A
0137 E607 LDI R16,0x67
0138 E010 LDI R17,0
0139 D248 RCALL _printf
(0041) if(i=='A') printf("GOOD\r\n");//如果输入的是A,输出GOOD,加回车换行。
FILE: <library>
013A 3441 CPI R20,0x41
013B F419 BNE 0x013F
013C E600 LDI R16,0x60
013D E010 LDI R17,0
013E D243 RCALL _printf
013F CFF2 RJMP 0x0132
0140 9508 RET
__print:
0141 D131 RCALL push_arg4
0142 D16C RCALL push_gset5
0143 972A SBIW R28,0xA
0144 2400 CLR R0
0145 2411 CLR R1
0146 821F STD Y+7,R1
0147 820E STD Y+6,R0
0148 C115 RJMP 0x025E
0149 89EE LDD R30,Y+22
014A 89FF LDD R31,Y+23
014B 8180 LDD R24,Z+0
014C 3285 CPI R24,0x25
014D F031 BEQ 0x0154
014E 8100 LDD R16,Z+0
014F 89EC LDD R30,Y+20
0150 89FD LDD R31,Y+21
0151 D17C RCALL xicall
0152 D251 RCALL 0x03A4
0153 C109 RJMP 0x025D
0154 24EE CLR R14
0155 24FF CLR R15
0156 E34B LDI R20,0x3B
0157 E051 LDI R21,1
0158 E260 LDI R22,0x20
0159 D267 RCALL 0x03C1
015A 2FE8 MOV R30,R24
015B 2FF9 MOV R31,R25
015C 8020 LDD R2,Z+0
015D 2433 CLR R3
015E 823D STD Y+5,R3
015F 822C STD Y+4,R2
0160 2D82 MOV R24,R2
0161 2D93 MOV R25,R3
0162 3588 CPI R24,0x58
0163 E0E0 LDI R30,0
0164 079E CPC R25,R30
0165 F409 BNE 0x0167
0166 C072 RJMP 0x01D9
0167 E588 LDI R24,0x58
0168 1582 CP R24,R2
0169 0593 CPC R25,R3
016A F0A4 BLT 0x017F
016B 818C LDD R24,Y+4
016C 819D LDD R25,Y+5
016D 3485 CPI R24,0x45
016E E0E0 LDI R30,0
016F 079E CPC R25,R30
0170 F409 BNE 0x0172
0171 C0E6 RJMP 0x0258
0172 3485 CPI R24,0x45
0173 E0E0 LDI R30,0
0174 079E CPC R25,R30
0175 F40C BGE 0x0177
0176 C043 RJMP 0x01BA
0177 818C LDD R24,Y+4
0178 819D LDD R25,Y+5
0179 3583 CPI R24,0x53
017A E0E0 LDI R30,0
017B 079E CPC R25,R30
017C F409 BNE 0x017E
017D C09A RJMP 0x0218
017E C03B RJMP 0x01BA
017F 818C LDD R24,Y+4
0180 819D LDD R25,Y+5
0181 368F CPI R24,0x6F
0182 E0E0 LDI R30,0
0183 079E CPC R25,R30
0184 F409 BNE 0x0186
0185 C053 RJMP 0x01D9
0186 E68F LDI R24,0x6F
0187 E090 LDI R25,0
0188 802C LDD R2,Y+4
0189 803D LDD R3,Y+5
018A 1582 CP R24,R2
018B 0593 CPC R25,R3
018C F0DC BLT 0x01A8
018D 818C LDD R24,Y+4
018E 819D LDD R25,Y+5
018F 3683 CPI R24,0x63
0190 E0E0 LDI R30,0
0191 079E CPC R25,R30
0192 F409 BNE 0x0194
0193 C07A RJMP 0x020E
0194 3684 CPI R24,0x64
0195 E0E0 LDI R30,0
0196 079E CPC R25,R30
0197 F409 BNE 0x0199
0198 C029 RJMP 0x01C2
0199 3685 CPI R24,0x65
019A E0E0 LDI R30,0
019B 079E CPC R25,R30
019C F409 BNE 0x019E
019D C0BA RJMP 0x0258
019E 3686 CPI R24,0x66
019F E0E0 LDI R30,0
01A0 079E CPC R25,R30
01A1 F409 BNE 0x01A3
01A2 C0B5 RJMP 0x0258
01A3 3689 CPI R24,0x69
01A4 E0E0 LDI R30,0
01A5 079E CPC R25,R30
01A6 F0D9 BEQ 0x01C2
01A7 C012 RJMP 0x01BA
01A8 818C LDD R24,Y+4
01A9 819D LDD R25,Y+5
01AA 3783 CPI R24,0x73
01AB E0E0 LDI R30,0
01AC 079E CPC R25,R30
01AD F409 BNE 0x01AF
01AE C087 RJMP 0x0236
01AF 3785 CPI R24,0x75
01B0 E0E0 LDI R30,0
01B1 079E CPC R25,R30
01B2 F409 BNE 0x01B4
01B3 C025 RJMP 0x01D9
01B4 3788 CPI R24,0x78
01B5 E0E0 LDI R30,0
01B6 079E CPC R25,R30
01B7 F409 BNE 0x01B9
01B8 C020 RJMP 0x01D9
01B9 C000 RJMP 0x01BA
01BA 89EE LDD R30,Y+22
01BB 89FF LDD R31,Y+23
01BC 8100 LDD R16,Z+0
01BD 89EC LDD R30,Y+20
01BE 89FD LDD R31,Y+21
01BF D10E RCALL xicall
01C0 D1E3 RCALL 0x03A4
01C1 C09B RJMP 0x025D
01C2 D1D8 RCALL <created procedures>
01C3 D208 RCALL 0x03CC
01C4 2D82 MOV R24,R2
01C5 2D93 MOV R25,R3
01C6 3080 CPI R24,0
01C7 E0E0 LDI R30,0
01C8 079E CPC R25,R30
01C9 F45C BGE 0x01D5
01CA 2D8E MOV R24,R14
01CB 2D9F MOV R25,R15
01CC 6088 ORI R24,0x8
01CD 2EE8 MOV R14,R24
01CE 2EF9 MOV R15,R25
01CF E26D LDI R22,0x2D
01D0 2D82 MOV R24,R2
01D1 2D93 MOV R25,R3
01D2 D203 RCALL 0x03D6
01D3 8799 STD Y+9,R25
01D4 8788 STD Y+8,R24
01D5 E08A LDI R24,0xA
01D6 D1D3 RCALL 0x03AA
01D7 D122 RCALL _itoa
01D8 C033 RJMP 0x020C
01D9 D1C1 RCALL <created procedures>
01DA D1F1 RCALL 0x03CC
01DB 89EE LDD R30,Y+22
01DC 89FF LDD R31,Y+23
01DD 8180 LDD R24,Z+0
01DE 3785 CPI R24,0x75
01DF F451 BNE 0x01EA
01E0 E08A LDI R24,0xA
01E1 E090 LDI R25,0
01E2 8399 STD Y+1,R25
01E3 8388 STD Y+0,R24
01E4 2D22 MOV R18,R2
01E5 2D33 MOV R19,R3
01E6 2F04 MOV R16,R20
01E7 2F15 MOV R17,R21
01E8 D14B RCALL _utoa
01E9 C022 RJMP 0x020C
01EA 89EE LDD R30,Y+22
01EB 89FF LDD R31,Y+23
01EC 8180 LDD R24,Z+0
01ED 368F CPI R24,0x6F
01EE F421 BNE 0x01F3
01EF E088 LDI R24,0x8
01F0 D1B9 RCALL 0x03AA
01F1 D142 RCALL _utoa
01F2 C019 RJMP 0x020C
01F3 E180 LDI R24,0x10
01F4 D1B5 RCALL 0x03AA
01F5 D13E RCALL _utoa
01F6 89EE LDD R30,Y+22
01F7 89FF LDD R31,Y+23
01F8 8180 LDD R24,Z+0
01F9 3588 CPI R24,0x58
01FA F489 BNE 0x020C
01FB D1CB RCALL 0x03C7
01FC C00D RJMP 0x020A
01FD 2DEC MOV R30,R12
01FE 2DFD MOV R31,R13
01FF 8100 LDD R16,Z+0
0200 2711 CLR R17
0201 D16C RCALL _toupper
0202 2DEC MOV R30,R12
0203 2DFD MOV R31,R13
0204 8300 STD Z+0,R16
0205 2D8C MOV R24,R12
0206 2D9D MOV R25,R13
0207 9601 ADIW R24,1
0208 2EC8 MOV R12,R24
0209 2ED9 MOV R13,R25
020A D1D0 RCALL 0x03DB
020B F789 BNE 0x01FD
020C D1BA RCALL 0x03C7
020D C033 RJMP 0x0241
020E D18C RCALL <created procedures>
020F 8020 LDD R2,Z+0
0210 8031 LDD R3,Z+1
0211 822A STD Y+2,R2
0212 2D02 MOV R16,R2
0213 89EC LDD R30,Y+20
0214 89FD LDD R31,Y+21
0215 D0B8 RCALL xicall
0216 D18D RCALL 0x03A4
0217 C045 RJMP 0x025D
0218 D182 RCALL <created procedures>
0219 80A0 LDD R10,Z+0
021A 80B1 LDD R11,Z+1
021B 326D CPI R22,0x2D
021C F499 BNE 0x0230
021D E20D LDI R16,0x2D
021E 89EC LDD R30,Y+20
021F 89FD LDD R31,Y+21
0220 D0AD RCALL xicall
0221 D182 RCALL 0x03A4
0222 C00D RJMP 0x0230
0223 2DEA MOV R30,R10
0224 2DFB MOV R31,R11
0225 95C8 LPM
0226 2D00 MOV R16,R0
0227 89EC LDD R30,Y+20
0228 89FD LDD R31,Y+21
0229 D0A4 RCALL xicall
022A D179 RCALL 0x03A4
022B 2D8A MOV R24,R10
022C 2D9B MOV R25,R11
022D 9601 ADIW R24,1
022E 2EA8 MOV R10,R24
022F 2EB9 MOV R11,R25
0230 2DEA MOV R30,R10
0231 2DFB MOV R31,R11
0232 95C8 LPM
0233 2000 TST R0
0234 F771 BNE 0x0223
0235 C027 RJMP 0x025D
0236 D164 RCALL <created procedures>
0237 80C0 LDD R12,Z+0
0238 80D1 LDD R13,Z+1
0239 20CC TST R12
023A F431 BNE 0x0241
023B 20DD TST R13
023C F421 BNE 0x0241
023D ED8F LDI R24,0xDF
023E E090 LDI R25,0
023F 2EC8 MOV R12,R24
0240 2ED9 MOV R13,R25
0241 326D CPI R22,0x2D
0242 F491 BNE 0x0255
0243 E20D LDI R16,0x2D
0244 89EC LDD R30,Y+20
0245 89FD LDD R31,Y+21
0246 D087 RCALL xicall
0247 D15C RCALL 0x03A4
0248 C00C RJMP 0x0255
0249 2DEC MOV R30,R12
024A 2DFD MOV R31,R13
024B 8100 LDD R16,Z+0
024C 89EC LDD R30,Y+20
024D 89FD LDD R31,Y+21
024E D07F RCALL xicall
024F D154 RCALL 0x03A4
0250 2D8C MOV R24,R12
0251 2D9D MOV R25,R13
0252 9601 ADIW R24,1
0253 2EC8 MOV R12,R24
0254 2ED9 MOV R13,R25
0255 D185 RCALL 0x03DB
0256 F791 BNE 0x0249
0257 C005 RJMP 0x025D
0258 E78C LDI R24,0x7C
0259 E090 LDI R25,0
025A 2EC8 MOV R12,R24
025B 2ED9 MOV R13,R25
025C CFE4 RJMP 0x0241
025D D163 RCALL 0x03C1
025E 89EE LDD R30,Y+22
025F 89FF LDD R31,Y+23
0260 8020 LDD R2,Z+0
0261 2022 TST R2
0262 F009 BEQ 0x0264
0263 CEE5 RJMP 0x0149
0264 810E LDD R16,Y+6
0265 811F LDD R17,Y+7
0266 962A ADIW R28,0xA
0267 D045 RCALL pop_gset5
0268 9624 ADIW R28,4
0269 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -