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

📄 rprintf.lst

📁 MMC/SD on Olimex Sam7-EX256
💻 LST
📖 第 1 页 / 共 2 页
字号:
 171 00b2 BDD1     		bne	.L56 172 00b4 19E0     		b	.L24 173              	.L30: 174 00b6 7528     		cmp	r0, #117 175 00b8 23D0     		beq	.L26 176 00ba 7828     		cmp	r0, #120 177 00bc 13D0     		beq	.L27 178 00be 7328     		cmp	r0, #115 179 00c0 B6D1     		bne	.L56 180 00c2 04E0     		b	.L25 181              	.L23: 146:usart/rprintf.c ****     {
 147:usart/rprintf.c **** #ifdef USE_CHAR
 148:usart/rprintf.c ****     case 'c':
 149:usart/rprintf.c **** #ifdef USE_UPPER
 150:usart/rprintf.c ****     case 'C':
 151:usart/rprintf.c **** #endif
 152:usart/rprintf.c ****       format_flag = va_arg(ap,int);
 182              		.loc 1 152 0 183 00c4 059A     		ldr	r2, [sp, #20] 184 00c6 1078     		ldrb	r0, [r2] 185 00c8 131D     		add	r3, r2, #4 186 00ca 0593     		str	r3, [sp, #20] 187 00cc B0E7     		b	.L56 188              	.LVL16: 189              	.L25: 153:usart/rprintf.c ****       // no break -> run into default
 154:usart/rprintf.c **** #endif
 155:usart/rprintf.c **** 
 156:usart/rprintf.c ****     default:
 157:usart/rprintf.c ****       myputchar(format_flag);
 158:usart/rprintf.c ****       continue;
 159:usart/rprintf.c **** 
 160:usart/rprintf.c **** #ifdef USE_STRING
 161:usart/rprintf.c **** #ifdef USE_UPPER
 162:usart/rprintf.c ****     case 'S':
 163:usart/rprintf.c **** #endif
 164:usart/rprintf.c ****     case 's':
 165:usart/rprintf.c ****       ptr = (unsigned char*)va_arg(ap,char *);
 190              		.loc 1 165 0 191 00ce 059A     		ldr	r2, [sp, #20] 192 00d0 1468     		ldr	r4, [r2] 193              	.LVL17: 194 00d2 131D     		add	r3, r2, #4 195 00d4 0593     		str	r3, [sp, #20] 196 00d6 02E0     		b	.L31 197              	.LVL18: 198              	.L32: 166:usart/rprintf.c ****       while(*ptr) { myputchar(*ptr); ptr++; }
 199              		.loc 1 166 0 200 00d8 FFF7FEFF 		bl	myputchar 201              	.LVL19: 202 00dc 0134     		add	r4, r4, #1 203              	.LVL20: 204              	.L31: 205 00de 2078     		ldrb	r0, [r4] 206              	.LVL21: 207 00e0 0028     		cmp	r0, #0 208 00e2 F9D1     		bne	.L32 209 00e4 A6E7     		b	.L10 210              	.LVL22: 211              	.L27: 212 00e6 1027     		mov	r7, #16 213 00e8 0CE0     		b	.L33 214              	.L24: 215 00ea 0598     		ldr	r0, [sp, #20] 216              	.LVL23: 167:usart/rprintf.c ****       continue;
 168:usart/rprintf.c **** #endif
 169:usart/rprintf.c **** 
 170:usart/rprintf.c **** #ifdef USE_OCTAL
 171:usart/rprintf.c ****     case 'o':
 172:usart/rprintf.c **** #ifdef USE_UPPER
 173:usart/rprintf.c ****     case 'O':
 174:usart/rprintf.c **** #endif
 175:usart/rprintf.c ****       base = 8;
 176:usart/rprintf.c ****       myputchar('0');
 177:usart/rprintf.c ****       goto CONVERSION_LOOP;
 178:usart/rprintf.c **** #endif
 179:usart/rprintf.c **** 
 180:usart/rprintf.c **** #ifdef USE_INTEGER //don't use %i, is same as %d
 181:usart/rprintf.c ****     case 'i':
 182:usart/rprintf.c **** #ifdef USE_UPPER
 183:usart/rprintf.c ****     case 'I':
 184:usart/rprintf.c **** #endif
 185:usart/rprintf.c **** #endif
 186:usart/rprintf.c ****     case 'd':
 187:usart/rprintf.c **** #ifdef USE_UPPER
 188:usart/rprintf.c ****     case 'D':
 189:usart/rprintf.c **** #endif
 190:usart/rprintf.c ****       issigned=1;
 191:usart/rprintf.c ****       // no break -> run into next case
 192:usart/rprintf.c ****     case 'u':
 193:usart/rprintf.c **** #ifdef USE_UPPER
 194:usart/rprintf.c ****     case 'U':
 195:usart/rprintf.c **** #endif
 196:usart/rprintf.c **** 
 197:usart/rprintf.c **** //don't insert some case below this if USE_HEX is undefined !
 198:usart/rprintf.c **** //or put       goto CONVERSION_LOOP;  before next case.
 199:usart/rprintf.c **** #ifdef USE_HEX
 200:usart/rprintf.c ****       goto CONVERSION_LOOP;
 201:usart/rprintf.c ****     case 'x':
 202:usart/rprintf.c **** #ifdef USE_UPPER
 203:usart/rprintf.c ****     case 'X':
 204:usart/rprintf.c **** #endif
 205:usart/rprintf.c ****       base = 16;
 206:usart/rprintf.c **** #endif
 207:usart/rprintf.c **** 
 208:usart/rprintf.c ****     CONVERSION_LOOP:
 209:usart/rprintf.c **** 
 210:usart/rprintf.c ****       if(issigned) //Signed types
 211:usart/rprintf.c ****        {
 212:usart/rprintf.c **** #ifdef USE_LONG
 213:usart/rprintf.c ****         if(islong) { s_val = va_arg(ap,long); }
 214:usart/rprintf.c ****         else { s_val = va_arg(ap,int); }
 217              		.loc 1 214 0 218 00ec 031D     		add	r3, r0, #4 219 00ee 0593     		str	r3, [sp, #20] 220 00f0 0468     		ldr	r4, [r0] 221              	.LVL24: 215:usart/rprintf.c **** #else
 216:usart/rprintf.c ****         s_val = va_arg(ap,int);
 217:usart/rprintf.c **** #endif
 218:usart/rprintf.c **** 
 219:usart/rprintf.c ****         if(s_val < 0) //Value negativ ?
 222              		.loc 1 219 0 223 00f2 002C     		cmp	r4, #0 224 00f4 03DA     		bge	.L37 225              	.LVL25: 220:usart/rprintf.c ****          {
 221:usart/rprintf.c ****           s_val = - s_val; //Make it positiv
 222:usart/rprintf.c ****           myputchar('-');    //Output sign
 226              		.loc 1 222 0 227 00f6 2D20     		mov	r0, #45 228              	.LVL26: 229              		.loc 1 221 0 230 00f8 6442     		neg	r4, r4 231              		.loc 1 222 0 232 00fa FFF7FEFF 		bl	myputchar 233              	.LVL27: 234              	.L37: 223:usart/rprintf.c ****          }
 224:usart/rprintf.c **** 
 225:usart/rprintf.c ****         u_val = (unsigned long)s_val;
 235              		.loc 1 225 0 236 00fe 0A27     		mov	r7, #10 237 0100 04E0     		b	.L39 238              	.LVL28: 239              	.L26: 240 0102 0A27     		mov	r7, #10 241              	.L33: 242 0104 0598     		ldr	r0, [sp, #20] 243              	.LVL29: 226:usart/rprintf.c ****        }
 227:usart/rprintf.c ****       else //Unsigned types
 228:usart/rprintf.c ****        {
 229:usart/rprintf.c **** #ifdef USE_LONG
 230:usart/rprintf.c ****         if(islong) { u_val = va_arg(ap,unsigned long); }
 231:usart/rprintf.c ****         else { u_val = va_arg(ap,unsigned int); }
 244              		.loc 1 231 0 245 0106 031D     		add	r3, r0, #4 246 0108 0593     		str	r3, [sp, #20] 247 010a 0468     		ldr	r4, [r0] 248              	.LVL30: 249              	.L39: 232:usart/rprintf.c **** #else
 233:usart/rprintf.c ****         u_val = va_arg(ap,unsigned int);
 234:usart/rprintf.c **** #endif
 235:usart/rprintf.c ****        }
 236:usart/rprintf.c ****     
 237:usart/rprintf.c ****       ptr = scratch + SCRATCH;
 238:usart/rprintf.c ****       *--ptr = 0;
 250              		.loc 1 238 0 251 010c 0022     		mov	r2, #0 252 010e 02AB     		add	r3, sp, #8 253 0110 6D46     		mov	r5, sp 254 0112 DA72     		strb	r2, [r3, #11] 255 0114 1335     		add	r5, r5, #19 256              	.LVL31: 257              	.L42: 258              	.LVL32: 259              	.LBB2: 239:usart/rprintf.c ****       do
 240:usart/rprintf.c ****        {
 241:usart/rprintf.c ****         char ch = u_val % base + '0';
 260              		.loc 1 241 0 261 0116 201C     		mov	r0, r4 262 0118 391C     		mov	r1, r7 263              	.LVL33: 264 011a FFF7FEFF 		bl	__umodsi3 265 011e 3030     		add	r0, r0, #48 266 0120 0006     		lsl	r0, r0, #24 267 0122 000E     		lsr	r0, r0, #24 268              	.LVL34: 242:usart/rprintf.c **** #ifdef USE_HEX
 243:usart/rprintf.c ****         if (ch > '9')
 269              		.loc 1 243 0 270 0124 3928     		cmp	r0, #57 271 0126 02D9     		bls	.L43 244:usart/rprintf.c ****          {
 245:usart/rprintf.c ****           ch += 'a' - '9' - 1;
 246:usart/rprintf.c **** #ifdef USE_UPPERHEX
 247:usart/rprintf.c ****           ch-=0x20;
 272              		.loc 1 247 0 273 0128 C31D     		add	r3, r0, #7 274 012a 1B06     		lsl	r3, r3, #24 275 012c 180E     		lsr	r0, r3, #24 276              	.L43: 248:usart/rprintf.c **** #endif
 249:usart/rprintf.c ****          }
 250:usart/rprintf.c **** #endif          
 251:usart/rprintf.c ****         *--ptr = ch;
 277              		.loc 1 251 0 278 012e 013D     		sub	r5, r5, #1 279 0130 2870     		strb	r0, [r5] 252:usart/rprintf.c ****         u_val /= base;
 280              		.loc 1 252 0 281 0132 391C     		mov	r1, r7 282 0134 201C     		mov	r0, r4 283              	.LVL35: 284 0136 FFF7FEFF 		bl	__udivsi3 253:usart/rprintf.c **** 
 254:usart/rprintf.c **** #ifdef PADDING
 255:usart/rprintf.c ****         if(width) width--; //calculate number of padding chars
 285              		.loc 1 255 0 286 013a 019A     		ldr	r2, [sp, #4] 287              		.loc 1 252 0 288 013c 041C     		mov	r4, r0 289              		.loc 1 255 0 290 013e 002A     		cmp	r2, #0 291 0140 04D0     		beq	.L45 292 0142 131C     		mov	r3, r2 293 0144 013B     		sub	r3, r3, #1 294 0146 1B06     		lsl	r3, r3, #24 295 0148 1B0E     		lsr	r3, r3, #24 296 014a 0193     		str	r3, [sp, #4] 297              	.L45: 298              	.LBE2: 256:usart/rprintf.c **** #endif
 257:usart/rprintf.c ****       } while (u_val);
 299              		.loc 1 257 0 300 014c 002C     		cmp	r4, #0 301 014e E2D1     		bne	.L42 302 0150 2C1C     		mov	r4, r5 303              	.LVL36: 304 0152 03E0     		b	.L48 305              	.L49: 258:usart/rprintf.c **** 
 259:usart/rprintf.c **** #ifdef PADDING
 260:usart/rprintf.c ****      while(width--) *--ptr = fill; //insert padding chars		      
 306              		.loc 1 260 0 307 0154 6B46     		mov	r3, sp 308 0156 1B78     		ldrb	r3, [r3] 309 0158 013C     		sub	r4, r4, #1 310 015a 2370     		strb	r3, [r4] 311              	.LVL37: 312              	.L48: 313 015c 019A     		ldr	r2, [sp, #4] 314 015e AB1A     		sub	r3, r5, r2 315 0160 9C42     		cmp	r4, r3 316 0162 F7D1     		bne	.L49 317              	.LVL38: 318 0164 02E0     		b	.L55 319              	.L51: 261:usart/rprintf.c **** #endif
 262:usart/rprintf.c **** 
 263:usart/rprintf.c ****       while(*ptr) { myputchar(*ptr); ptr++; }
 320              		.loc 1 263 0 321 0166 FFF7FEFF 		bl	myputchar 322 016a 0134     		add	r4, r4, #1 323              	.L55: 324 016c 2078     		ldrb	r0, [r4] 325 016e 0028     		cmp	r0, #0 326 0170 F9D1     		bne	.L51 327 0172 5FE7     		b	.L10 328              	.LVL39: 329              	.L52: 264:usart/rprintf.c ****     }
 265:usart/rprintf.c ****   }
 266:usart/rprintf.c **** }
 330              		.loc 1 266 0 331 0174 06B0     		add	sp, sp, #24 332              	.LVL40: 333              		@ sp needed for prologue 334              	.LVL41: 335              	.LVL42: 336              	.LVL43: 337              	.LVL44: 338 0176 F0BC     		pop	{r4, r5, r6, r7} 339 0178 08BC     		pop	{r3} 340 017a 04B0     		add	sp, sp, #16 341 017c 1847     		bx	r3 342              	.LFE3: 407              	.Letext0:DEFINED SYMBOLS                            *ABS*:00000000 rprintf.c/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccdxwprf.s:1      .text:00000000 $t/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccdxwprf.s:15     .text:00000000 myputchar/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccdxwprf.s:51     .text:0000001c rprintfUNDEFINED SYMBOLSuart0_putc__umodsi3__udivsi3

⌨️ 快捷键说明

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