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

📄 utils.lst

📁 Working with DS1820 temperature sensor on SAM7 mC. Watch for timings!
💻 LST
字号:
   1              		.code	16   2              		.file	"utils.c"  10              	.Ltext0:  11              		.global	__modsi3  12              		.global	__divsi3  13              		.align	2  14              		.global	ITOA  15              		.code 16  16              		.thumb_func  18              	ITOA:  19              	.LFB290:  20              		.file 1 "utils.c"   1:utils.c       **** #include "include/includes.h"
   2:utils.c       **** 
   3:utils.c       **** void ITOA(long n, char r[]) {
  21              		.loc 1 3 0  22 0000 90B5     		push	{r4, r7, lr}  23              	.LCFI0:  24 0002 6F46     		mov	r7, sp  25              	.LCFI1:  26 0004 89B0     		sub	sp, sp, #36  27              	.LCFI2:  28 0006 3B1C     		mov	r3, r7  29 0008 203B     		sub	r3, r3, #32  30 000a 1860     		str	r0, [r3]  31 000c 3B1C     		mov	r3, r7  32 000e 243B     		sub	r3, r3, #36  33 0010 1960     		str	r1, [r3]   4:utils.c       **** 	int i=0;
  34              		.loc 1 4 0  35 0012 3A1C     		mov	r2, r7  36 0014 103A     		sub	r2, r2, #16  37 0016 0023     		mov	r3, #0  38 0018 1360     		str	r3, [r2]   5:utils.c       **** 	int j=0;
  39              		.loc 1 5 0  40 001a 3A1C     		mov	r2, r7  41 001c 0C3A     		sub	r2, r2, #12  42 001e 0023     		mov	r3, #0  43 0020 1360     		str	r3, [r2]   6:utils.c       **** 	int c=0;
  44              		.loc 1 6 0  45 0022 3A1C     		mov	r2, r7  46 0024 083A     		sub	r2, r2, #8  47 0026 0023     		mov	r3, #0  48 0028 1360     		str	r3, [r2]   7:utils.c       **** 	int sign = 0;
  49              		.loc 1 7 0  50 002a 3A1F     		sub	r2, r7, #4  51 002c 0023     		mov	r3, #0  52 002e 1360     		str	r3, [r2]   8:utils.c       **** 	char s[10];
   9:utils.c       **** 	
  10:utils.c       **** 
  11:utils.c       **** if ((sign = n) < 0)   /* RECORD SIGN */
  53              		.loc 1 11 0  54 0030 3A1F     		sub	r2, r7, #4  55 0032 3B1C     		mov	r3, r7  56 0034 203B     		sub	r3, r3, #32  57 0036 1B68     		ldr	r3, [r3]  58 0038 1360     		str	r3, [r2]  59 003a 3B1F     		sub	r3, r7, #4  60 003c 1B68     		ldr	r3, [r3]  61 003e 002B     		cmp	r3, #0  62 0040 06DA     		bge	.L2  12:utils.c       ****  	n = -n;     /* MAKE N POSITIVE */
  63              		.loc 1 12 0  64 0042 3A1C     		mov	r2, r7  65 0044 203A     		sub	r2, r2, #32  66 0046 3B1C     		mov	r3, r7  67 0048 203B     		sub	r3, r3, #32  68 004a 1B68     		ldr	r3, [r3]  69 004c 5B42     		neg	r3, r3  70 004e 1360     		str	r3, [r2]  71              	.L2:  13:utils.c       **** 
  14:utils.c       **** 	i = 0;
  72              		.loc 1 14 0  73 0050 3A1C     		mov	r2, r7  74 0052 103A     		sub	r2, r2, #16  75 0054 0023     		mov	r3, #0  76 0056 1360     		str	r3, [r2]  77              	.L4:  15:utils.c       **** do {    /* GENERATE DIGITS IN REVERSE ORDER */
  16:utils.c       **** 	s[i++] = n % 10 + '0'; /* GET NEXT DIGIT */
  78              		.loc 1 16 0  79 0058 3B1C     		mov	r3, r7  80 005a 103B     		sub	r3, r3, #16  81 005c 1C68     		ldr	r4, [r3]  82 005e 3B1C     		mov	r3, r7  83 0060 203B     		sub	r3, r3, #32  84 0062 1B68     		ldr	r3, [r3]  85 0064 181C     		mov	r0, r3  86 0066 0A21     		mov	r1, #10  87 0068 FFF7FEFF 		bl	__modsi3  88 006c 031C     		mov	r3, r0  89 006e 1B06     		lsl	r3, r3, #24  90 0070 1B0E     		lsr	r3, r3, #24  91 0072 3033     		add	r3, r3, #48  92 0074 1B06     		lsl	r3, r3, #24  93 0076 1B0E     		lsr	r3, r3, #24  94 0078 1B06     		lsl	r3, r3, #24  95 007a 1B0E     		lsr	r3, r3, #24  96 007c 3A1C     		mov	r2, r7  97 007e 1A3A     		sub	r2, r2, #26  98 0080 1355     		strb	r3, [r2, r4]  99 0082 3A1C     		mov	r2, r7 100 0084 103A     		sub	r2, r2, #16 101 0086 3B1C     		mov	r3, r7 102 0088 103B     		sub	r3, r3, #16 103 008a 1B68     		ldr	r3, [r3] 104 008c 0133     		add	r3, r3, #1 105 008e 1360     		str	r3, [r2]  17:utils.c       **** }   while ((n /=10) > 0); /* DELETE IT */
 106              		.loc 1 17 0 107 0090 3C1C     		mov	r4, r7 108 0092 203C     		sub	r4, r4, #32 109 0094 3B1C     		mov	r3, r7 110 0096 203B     		sub	r3, r3, #32 111 0098 1B68     		ldr	r3, [r3] 112 009a 181C     		mov	r0, r3 113 009c 0A21     		mov	r1, #10 114 009e FFF7FEFF 		bl	__divsi3 115 00a2 031C     		mov	r3, r0 116 00a4 2360     		str	r3, [r4] 117 00a6 3B1C     		mov	r3, r7 118 00a8 203B     		sub	r3, r3, #32 119 00aa 1B68     		ldr	r3, [r3] 120 00ac 002B     		cmp	r3, #0 121 00ae D3DC     		bgt	.L4  18:utils.c       **** if (sign < 0)
 122              		.loc 1 18 0 123 00b0 3B1F     		sub	r3, r7, #4 124 00b2 1B68     		ldr	r3, [r3] 125 00b4 002B     		cmp	r3, #0 126 00b6 0DDA     		bge	.L6  19:utils.c       **** 	s[i++] = '-';
 127              		.loc 1 19 0 128 00b8 3B1C     		mov	r3, r7 129 00ba 103B     		sub	r3, r3, #16 130 00bc 1968     		ldr	r1, [r3] 131 00be 3A1C     		mov	r2, r7 132 00c0 1A3A     		sub	r2, r2, #26 133 00c2 2D23     		mov	r3, #45 134 00c4 5354     		strb	r3, [r2, r1] 135 00c6 3A1C     		mov	r2, r7 136 00c8 103A     		sub	r2, r2, #16 137 00ca 3B1C     		mov	r3, r7 138 00cc 103B     		sub	r3, r3, #16 139 00ce 1B68     		ldr	r3, [r3] 140 00d0 0133     		add	r3, r3, #1 141 00d2 1360     		str	r3, [r2] 142              	.L6:  20:utils.c       **** 	s[i] = '\0';
 143              		.loc 1 20 0 144 00d4 3B1C     		mov	r3, r7 145 00d6 103B     		sub	r3, r3, #16 146 00d8 1968     		ldr	r1, [r3] 147 00da 3A1C     		mov	r2, r7 148 00dc 1A3A     		sub	r2, r2, #26 149 00de 0023     		mov	r3, #0 150 00e0 5354     		strb	r3, [r2, r1]  21:utils.c       **** 	c = i;
 151              		.loc 1 21 0 152 00e2 3A1C     		mov	r2, r7 153 00e4 083A     		sub	r2, r2, #8 154 00e6 3B1C     		mov	r3, r7 155 00e8 103B     		sub	r3, r3, #16 156 00ea 1B68     		ldr	r3, [r3] 157 00ec 1360     		str	r3, [r2]  22:utils.c       **** 
  23:utils.c       **** 	j=0;
 158              		.loc 1 23 0 159 00ee 3A1C     		mov	r2, r7 160 00f0 0C3A     		sub	r2, r2, #12 161 00f2 0023     		mov	r3, #0 162 00f4 1360     		str	r3, [r2]  24:utils.c       **** for (i = c-1; i >= 0; i-- ) {
 163              		.loc 1 24 0 164 00f6 3A1C     		mov	r2, r7 165 00f8 103A     		sub	r2, r2, #16 166 00fa 3B1C     		mov	r3, r7 167 00fc 083B     		sub	r3, r3, #8 168 00fe 1B68     		ldr	r3, [r3] 169 0100 013B     		sub	r3, r3, #1 170 0102 1360     		str	r3, [r2] 171 0104 1CE0     		b	.L8 172              	.L9:  25:utils.c       **** 	r[j] = s[i];
 173              		.loc 1 25 0 174 0106 3B1C     		mov	r3, r7 175 0108 0C3B     		sub	r3, r3, #12 176 010a 1B68     		ldr	r3, [r3] 177 010c 1A1C     		mov	r2, r3 178 010e 3B1C     		mov	r3, r7 179 0110 243B     		sub	r3, r3, #36 180 0112 1B68     		ldr	r3, [r3] 181 0114 D118     		add	r1, r2, r3 182 0116 3B1C     		mov	r3, r7 183 0118 103B     		sub	r3, r3, #16 184 011a 1A68     		ldr	r2, [r3] 185 011c 3B1C     		mov	r3, r7 186 011e 1A3B     		sub	r3, r3, #26 187 0120 9B5C     		ldrb	r3, [r3, r2] 188 0122 0B70     		strb	r3, [r1]  26:utils.c       **** 	j++; 
 189              		.loc 1 26 0 190 0124 3A1C     		mov	r2, r7 191 0126 0C3A     		sub	r2, r2, #12 192 0128 3B1C     		mov	r3, r7 193 012a 0C3B     		sub	r3, r3, #12 194 012c 1B68     		ldr	r3, [r3] 195 012e 0133     		add	r3, r3, #1 196 0130 1360     		str	r3, [r2] 197              		.loc 1 24 0 198 0132 3A1C     		mov	r2, r7 199 0134 103A     		sub	r2, r2, #16 200 0136 3B1C     		mov	r3, r7 201 0138 103B     		sub	r3, r3, #16 202 013a 1B68     		ldr	r3, [r3] 203 013c 013B     		sub	r3, r3, #1 204 013e 1360     		str	r3, [r2] 205              	.L8: 206 0140 3B1C     		mov	r3, r7 207 0142 103B     		sub	r3, r3, #16 208 0144 1B68     		ldr	r3, [r3] 209 0146 002B     		cmp	r3, #0 210 0148 DDDA     		bge	.L9  27:utils.c       **** }
  28:utils.c       **** return;
  29:utils.c       **** }
 211              		.loc 1 29 0 212 014a BD46     		mov	sp, r7 213              		@ sp needed for prologue 214 014c 90BC     		pop	{r4, r7} 215 014e 01BC     		pop	{r0} 216 0150 0047     		bx	r0 217              	.LFE290: 219 0152 0000     		.align	2 220              		.global	delay 221              		.code 16 222              		.thumb_func 224              	delay: 225              	.LFB291:  30:utils.c       **** 
  31:utils.c       **** void delay(unsigned long ms) {
 226              		.loc 1 31 0 227 0154 80B5     		push	{r7, lr} 228              	.LCFI3: 229 0156 6F46     		mov	r7, sp 230              	.LCFI4: 231 0158 82B0     		sub	sp, sp, #8 232              	.LCFI5: 233 015a 3B1C     		mov	r3, r7 234 015c 083B     		sub	r3, r3, #8 235 015e 1860     		str	r0, [r3]  32:utils.c       **** 		unsigned long	j;
  33:utils.c       **** 		
  34:utils.c       **** 		for (j = 2825*ms; j != 0; j-- );		
 236              		.loc 1 34 0 237 0160 391F     		sub	r1, r7, #4 238 0162 3B1C     		mov	r3, r7 239 0164 083B     		sub	r3, r3, #8 240 0166 1A68     		ldr	r2, [r3] 241 0168 084B     		ldr	r3, .L17 242 016a 5343     		mul	r3, r3, r2 243 016c 0B60     		str	r3, [r1] 244 016e 04E0     		b	.L13 245              	.L14: 246 0170 3A1F     		sub	r2, r7, #4 247 0172 3B1F     		sub	r3, r7, #4 248 0174 1B68     		ldr	r3, [r3] 249 0176 013B     		sub	r3, r3, #1 250 0178 1360     		str	r3, [r2] 251              	.L13: 252 017a 3B1F     		sub	r3, r7, #4 253 017c 1B68     		ldr	r3, [r3] 254 017e 002B     		cmp	r3, #0 255 0180 F6D1     		bne	.L14  35:utils.c       **** };
 256              		.loc 1 35 0 257 0182 BD46     		mov	sp, r7 258              		@ sp needed for prologue 259 0184 80BC     		pop	{r7} 260 0186 01BC     		pop	{r0} 261 0188 0047     		bx	r0 262              	.L18: 263 018a 0000     		.align	2 264              	.L17: 265 018c 090B0000 		.word	2825 266              	.LFE291: 268              		.global	__udivsi3 269              		.align	2 270              		.global	undelay 271              		.code 16 272              		.thumb_func 274              	undelay: 275              	.LFB292:  36:utils.c       **** 
  37:utils.c       **** void undelay(unsigned long un) {
 276              		.loc 1 37 0 277 0190 90B5     		push	{r4, r7, lr} 278              	.LCFI6: 279 0192 6F46     		mov	r7, sp 280              	.LCFI7: 281 0194 82B0     		sub	sp, sp, #8 282              	.LCFI8: 283 0196 3B1C     		mov	r3, r7 284 0198 083B     		sub	r3, r3, #8 285 019a 1860     		str	r0, [r3]  38:utils.c       **** 		unsigned long	j;
  39:utils.c       **** 		
  40:utils.c       **** 		for (j = 2825*un/1000; j != 0; j-- );				
 286              		.loc 1 40 0 287 019c 3B1C     		mov	r3, r7 288 019e 083B     		sub	r3, r3, #8 289 01a0 1A68     		ldr	r2, [r3] 290 01a2 0C4B     		ldr	r3, .L24 291 01a4 5343     		mul	r3, r3, r2 292 01a6 3C1F     		sub	r4, r7, #4 293 01a8 181C     		mov	r0, r3 294 01aa FA21     		mov	r1, #250 295 01ac 8900     		lsl	r1, r1, #2 296 01ae FFF7FEFF 		bl	__udivsi3 297 01b2 031C     		mov	r3, r0 298 01b4 2360     		str	r3, [r4] 299 01b6 04E0     		b	.L20 300              	.L21: 301 01b8 3A1F     		sub	r2, r7, #4 302 01ba 3B1F     		sub	r3, r7, #4 303 01bc 1B68     		ldr	r3, [r3] 304 01be 013B     		sub	r3, r3, #1 305 01c0 1360     		str	r3, [r2] 306              	.L20: 307 01c2 3B1F     		sub	r3, r7, #4 308 01c4 1B68     		ldr	r3, [r3] 309 01c6 002B     		cmp	r3, #0 310 01c8 F6D1     		bne	.L21  41:utils.c       **** };
 311              		.loc 1 41 0 312 01ca BD46     		mov	sp, r7 313              		@ sp needed for prologue 314 01cc 90BC     		pop	{r4, r7} 315 01ce 01BC     		pop	{r0} 316 01d0 0047     		bx	r0 317              	.L25: 318 01d2 0000     		.align	2 319              	.L24: 320 01d4 090B0000 		.word	2825 321              	.LFE292: 403              	.Letext0:DEFINED SYMBOLS                            *ABS*:00000000 utils.c/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccktjM1q.s:1      .text:00000000 $t/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccktjM1q.s:18     .text:00000000 ITOA/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccktjM1q.s:224    .text:00000154 delay/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccktjM1q.s:265    .text:0000018c $d/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccktjM1q.s:274    .text:00000190 undelay/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccktjM1q.s:271    .text:00000190 $t/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccktjM1q.s:320    .text:000001d4 $dUNDEFINED SYMBOLS__modsi3__divsi3__udivsi3

⌨️ 快捷键说明

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