⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rprintf.lst

📁 AVRMEG32编写的一个项目代码,里面包含一般应用的模块.
💻 LST
📖 第 1 页 / 共 4 页
字号:
   1               		.file	"rprintf.c"
   2               		.arch atmega32
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  17               	.Ltext0:
  18               		.section	.progmem.data,"a",@progbits
  21               	HexChars:
  22 0000 3031 3233 		.string	"0123456789ABCDEF"
  22      3435 3637 
  22      3839 4142 
  22      4344 4546 
  22      00
  23               		.text
  24               	.global	rprintfInit
  26               	rprintfInit:
  27               	.LFB2:
  28               	.LM1:
  29               	/* prologue: frame size=0 */
  30               	/* prologue end (size=0) */
  31               	.LM2:
  32 0000 9093 0000 		sts (rputchar)+1,r25
  33 0004 8093 0000 		sts rputchar,r24
  34               	/* epilogue: frame size=0 */
  35 0008 0895      		ret
  36               	/* epilogue end (size=1) */
  37               	/* function rprintfInit size 5 (4) */
  38               	.LFE2:
  40               	.global	rprintfChar
  42               	rprintfChar:
  43               	.LFB3:
  44               	.LM3:
  45               	/* prologue: frame size=0 */
  46               	/* prologue end (size=0) */
  47               	.LM4:
  48 000a E091 0000 		lds r30,rputchar
  49 000e F091 0000 		lds r31,(rputchar)+1
  50 0012 0995      		icall
  51               	/* epilogue: frame size=0 */
  52 0014 0895      		ret
  53               	/* epilogue end (size=1) */
  54               	/* function rprintfChar size 6 (5) */
  55               	.LFE3:
  57               	.global	rprintfStr
  59               	rprintfStr:
  60               	.LFB4:
  61               	.LM5:
  62               	/* prologue: frame size=0 */
  63 0016 CF93      		push r28
  64 0018 DF93      		push r29
  65               	/* prologue end (size=2) */
  66 001a EC01      		movw r28,r24
  67               	.LM6:
  68 001c 892B      		or r24,r25
  69 001e 61F0      		breq .L3
  70               	.LM7:
  71 0020 8881      		ld r24,Y
  72 0022 8823      		tst r24
  73 0024 49F0      		breq .L3
  74               	.L8:
  75               	.LBB2:
  76               	.LBB3:
  77 0026 E091 0000 		lds r30,rputchar
  78 002a F091 0000 		lds r31,(rputchar)+1
  79 002e 8991      		ld r24,Y+
  80 0030 0995      		icall
  81               	.LBE3:
  82               	.LBE2:
  83 0032 8881      		ld r24,Y
  84 0034 8823      		tst r24
  85 0036 B9F7      		brne .L8
  86               	.L3:
  87               	/* epilogue: frame size=0 */
  88 0038 DF91      		pop r29
  89 003a CF91      		pop r28
  90 003c 0895      		ret
  91               	/* epilogue end (size=3) */
  92               	/* function rprintfStr size 20 (15) */
  93               	.LFE4:
  95               	.global	rprintfStrLen
  97               	rprintfStrLen:
  98               	.LFB5:
  99               	.LM8:
 100               	/* prologue: frame size=0 */
 101 003e EF92      		push r14
 102 0040 FF92      		push r15
 103 0042 0F93      		push r16
 104 0044 1F93      		push r17
 105 0046 CF93      		push r28
 106 0048 DF93      		push r29
 107               	/* prologue end (size=6) */
 108 004a 8C01      		movw r16,r24
 109 004c 7A01      		movw r14,r20
 110               	.LM9:
 111 004e C0E0      		ldi r28,lo8(0)
 112 0050 D0E0      		ldi r29,hi8(0)
 113               	.LM10:
 114 0052 892B      		or r24,r25
 115 0054 01F1      		breq .L10
 116               	.L12:
 117               	.LM11:
 118 0056 CE01      		movw r24,r28
 119 0058 2196      		adiw r28,1
 120 005a 8617      		cp r24,r22
 121 005c 9707      		cpc r25,r23
 122 005e 28F4      		brsh .L13
 123 0060 F801      		movw r30,r16
 124 0062 8191      		ld r24,Z+
 125 0064 8F01      		movw r16,r30
 126 0066 8823      		tst r24
 127 0068 B1F7      		brne .L12
 128               	.L13:
 129               	.LM12:
 130 006a C0E0      		ldi r28,lo8(0)
 131 006c D0E0      		ldi r29,hi8(0)
 132 006e CE15      		cp r28,r14
 133 0070 DF05      		cpc r29,r15
 134 0072 88F4      		brsh .L10
 135               	.L22:
 136               	.LM13:
 137 0074 F801      		movw r30,r16
 138 0076 8081      		ld r24,Z
 139 0078 E091 0000 		lds r30,rputchar
 140 007c F091 0000 		lds r31,(rputchar)+1
 141 0080 8823      		tst r24
 142 0082 19F0      		breq .L18
 143               	.LBB4:
 144               	.LM14:
 145 0084 0F5F      		subi r16,lo8(-(1))
 146 0086 1F4F      		sbci r17,hi8(-(1))
 147 0088 01C0      		rjmp .L24
 148               	.L18:
 149               	.LBE4:
 150               	.LBB5:
 151               	.LBB6:
 152               	.LM15:
 153 008a 80E2      		ldi r24,lo8(32)
 154               	.L24:
 155 008c 0995      		icall
 156               	.LBE6:
 157               	.LBE5:
 158               	.LM16:
 159 008e 2196      		adiw r28,1
 160 0090 CE15      		cp r28,r14
 161 0092 DF05      		cpc r29,r15
 162 0094 78F3      		brlo .L22
 163               	.L10:
 164               	/* epilogue: frame size=0 */
 165 0096 DF91      		pop r29
 166 0098 CF91      		pop r28
 167 009a 1F91      		pop r17
 168 009c 0F91      		pop r16
 169 009e FF90      		pop r15
 170 00a0 EF90      		pop r14
 171 00a2 0895      		ret
 172               	/* epilogue end (size=7) */
 173               	/* function rprintfStrLen size 51 (38) */
 174               	.LFE5:
 176               	.global	rprintfProgStr
 178               	rprintfProgStr:
 179               	.LFB6:
 180               	.LM17:
 181               	/* prologue: frame size=0 */
 182 00a4 CF93      		push r28
 183 00a6 DF93      		push r29
 184               	/* prologue end (size=2) */
 185 00a8 EC01      		movw r28,r24
 186               	.LM18:
 187 00aa 0097      		sbiw r24,0
 188 00ac 79F0      		breq .L25
 189               	.LBB7:
 190               	.LM19:
 191 00ae FC01      		movw r30,r24
 192 00b0 2196      		adiw r28,1
 193               	/* #APP */
 194 00b2 8491      		lpm r24, Z
 195               		
 196               	/* #NOAPP */
 197               	.LBE7:
 198 00b4 8823      		tst r24
 199 00b6 51F0      		breq .L25
 200               	.L30:
 201               	.LBB8:
 202               	.LBB9:
 203 00b8 E091 0000 		lds r30,rputchar
 204 00bc F091 0000 		lds r31,(rputchar)+1
 205 00c0 0995      		icall
 206               	.LBE9:
 207               	.LBE8:
 208               	.LBB10:
 209 00c2 FE01      		movw r30,r28
 210 00c4 2196      		adiw r28,1
 211               	/* #APP */
 212 00c6 8491      		lpm r24, Z
 213               		
 214               	/* #NOAPP */
 215               	.LBE10:
 216 00c8 8823      		tst r24
 217 00ca B1F7      		brne .L30
 218               	.L25:
 219               	/* epilogue: frame size=0 */
 220 00cc DF91      		pop r29
 221 00ce CF91      		pop r28
 222 00d0 0895      		ret
 223               	/* epilogue end (size=3) */
 224               	/* function rprintfProgStr size 29 (24) */
 225               	.LFE6:
 227               	.global	rprintfCRLF
 229               	rprintfCRLF:
 230               	.LFB7:
 231               	.LM20:
 232               	/* prologue: frame size=0 */
 233               	/* prologue end (size=0) */
 234               	.LBB11:
 235               	.LBB12:
 236               	.LM21:
 237 00d2 E091 0000 		lds r30,rputchar
 238 00d6 F091 0000 		lds r31,(rputchar)+1
 239 00da 8DE0      		ldi r24,lo8(13)
 240 00dc 0995      		icall
 241               	.LBE12:
 242               	.LBE11:
 243               	.LBB13:
 244               	.LBB14:
 245 00de E091 0000 		lds r30,rputchar
 246 00e2 F091 0000 		lds r31,(rputchar)+1
 247 00e6 8AE0      		ldi r24,lo8(10)
 248 00e8 0995      		icall
 249               	.LBE14:
 250               	.LBE13:
 251               	/* epilogue: frame size=0 */
 252 00ea 0895      		ret
 253               	/* epilogue end (size=1) */
 254               	/* function rprintfCRLF size 13 (12) */
 255               	.LFE7:
 257               	.global	rprintfu04
 259               	rprintfu04:
 260               	.LFB8:
 261               	.LM22:
 262               	/* prologue: frame size=0 */
 263               	/* prologue end (size=0) */
 264               	.LBB15:
 265               	.LBB16:
 266               	.LM23:
 267 00ec E82F      		mov r30,r24
 268 00ee FF27      		clr r31
 269 00f0 EF70      		andi r30,lo8(15)
 270 00f2 F070      		andi r31,hi8(15)
 271 00f4 E050      		subi r30,lo8(-(HexChars))
 272 00f6 F040      		sbci r31,hi8(-(HexChars))
 273               	/* #APP */
 274 00f8 8491      		lpm r24, Z
 275               		
 276               	/* #NOAPP */
 277               	.LBE16:
 278               	.LBB17:
 279               	.LM24:
 280 00fa E091 0000 		lds r30,rputchar
 281 00fe F091 0000 		lds r31,(rputchar)+1
 282 0102 0995      		icall
 283               	.LBE17:
 284               	.LBE15:
 285               	/* epilogue: frame size=0 */
 286 0104 0895      		ret
 287               	/* epilogue end (size=1) */
 288               	/* function rprintfu04 size 16 (15) */
 289               	.LFE8:
 291               	.global	rprintfu08
 293               	rprintfu08:
 294               	.LFB9:
 295               	.LM25:
 296               	/* prologue: frame size=0 */
 297 0106 1F93      		push r17
 298               	/* prologue end (size=1) */
 299 0108 182F      		mov r17,r24
 300               	.LM26:
 301 010a 8295      		swap r24
 302 010c 8F70      		andi r24,0x0f
 303 010e 0E94 0000 		call rprintfu04
 304               	.LM27:
 305 0112 812F      		mov r24,r17
 306 0114 0E94 0000 		call rprintfu04
 307               	/* epilogue: frame size=0 */
 308 0118 1F91      		pop r17
 309 011a 0895      		ret
 310               	/* epilogue end (size=2) */
 311               	/* function rprintfu08 size 11 (8) */
 312               	.LFE9:
 314               	.global	rprintfu16
 316               	rprintfu16:
 317               	.LFB10:
 318               	.LM28:
 319               	/* prologue: frame size=0 */
 320 011c 0F93      		push r16
 321 011e 1F93      		push r17
 322               	/* prologue end (size=2) */
 323 0120 8C01      		movw r16,r24
 324               	.LM29:
 325 0122 812F      		mov r24,r17
 326 0124 9927      		clr r25
 327 0126 0E94 0000 		call rprintfu08
 328               	.LM30:
 329 012a 802F      		mov r24,r16
 330 012c 0E94 0000 		call rprintfu08
 331               	/* epilogue: frame size=0 */
 332 0130 1F91      		pop r17
 333 0132 0F91      		pop r16
 334 0134 0895      		ret
 335               	/* epilogue end (size=3) */
 336               	/* function rprintfu16 size 13 (8) */
 337               	.LFE10:
 339               	.global	rprintfu32
 341               	rprintfu32:
 342               	.LFB11:
 343               	.LM31:
 344               	/* prologue: frame size=0 */
 345 0136 EF92      		push r14
 346 0138 FF92      		push r15
 347 013a 0F93      		push r16
 348 013c 1F93      		push r17
 349               	/* prologue end (size=4) */
 350 013e 7B01      		movw r14,r22
 351 0140 8C01      		movw r16,r24
 352               	.LM32:
 353 0142 C801      		movw r24,r16
 354 0144 AA27      		clr r26
 355 0146 BB27      		clr r27
 356 0148 0E94 0000 		call rprintfu16
 357               	.LM33:
 358 014c C701      		movw r24,r14
 359 014e 0E94 0000 		call rprintfu16
 360               	/* epilogue: frame size=0 */
 361 0152 1F91      		pop r17
 362 0154 0F91      		pop r16
 363 0156 FF90      		pop r15
 364 0158 EF90      		pop r14
 365 015a 0895      		ret
 366               	/* epilogue end (size=5) */
 367               	/* function rprintfu32 size 19 (10) */
 368               	.LFE11:
 370               	.global	Isdigit
 372               	Isdigit:
 373               	.LFB13:
 374               	.LM34:
 375               	/* prologue: frame size=0 */
 376               	/* prologue end (size=0) */
 377               	.LM35:
 378 015c 8053      		subi r24,lo8(-(-48))
 379 015e 8A30      		cpi r24,lo8(10)
 380 0160 18F4      		brsh .L41
 381               	.LM36:
 382 0162 8FEF      		ldi r24,lo8(255)
 383 0164 90E0      		ldi r25,hi8(255)
 384 0166 0895      		ret
 385               	.L41:
 386               	.LM37:
 387 0168 80E0      		ldi r24,lo8(0)
 388 016a 90E0      		ldi r25,hi8(0)
 389               	.LM38:
 390 016c 0895      		ret
 391               	/* epilogue: frame size=0 */
 392               	/* epilogue: noreturn */
 393               	/* epilogue end (size=0) */
 394               	/* function Isdigit size 9 (9) */
 395               	.LFE13:
 397               	.global	atoiRamRom
 399               	atoiRamRom:
 400               	.LFB14:
 401               	.LM39:
 402               	/* prologue: frame size=0 */
 403 016e FF92      		push r15
 404 0170 0F93      		push r16
 405 0172 1F93      		push r17
 406 0174 CF93      		push r28
 407 0176 DF93      		push r29
 408               	/* prologue end (size=5) */
 409 0178 F82E      		mov r15,r24
 410 017a EB01      		movw r28,r22
 411               	.LM40:
 412 017c 00E0      		ldi r16,lo8(0)
 413 017e 10E0      		ldi r17,hi8(0)
 414               	.LM41:
 415 0180 1EC0      		rjmp .L44
 416               	.L50:
 417               	.LM42:
 418 0182 C801      		movw r24,r16
 419 0184 23E0      		ldi r18,3
 420 0186 880F      	1:	lsl r24
 421 0188 991F      		rol r25
 422 018a 2A95      		dec r18
 423 018c E1F7      		brne 1b
 424 018e 800F      		add r24,r16
 425 0190 911F      		adc r25,r17
 426 0192 080F      		add r16,r24
 427 0194 191F      		adc r17,r25
 428 0196 9E01      		movw r18,r28
 429 0198 2F5F      		subi r18,lo8(-(1))
 430 019a 3F4F      		sbci r19,hi8(-(1))
 431               	.LM43:
 432 019c FF20      		tst r15
 433 019e 41F0      		breq .L48

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -