Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2012
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.46 KB | None | 0 0
  1. var1_16 = pcpv_data->board.vout;
  2. var2_16 = -48;
  3. var3_16 = ((int32_t)var1_16 * (int32_t)var2_16) / 10;
  4. printf("WRONG: using casting : %d = ( %d * %d) / 10\n",var3_16, var1_16, var2_16);
  5. 133c: ed b7 in r30, 0x3d ; 61
  6. 133e: fe b7 in r31, 0x3e ; 62
  7. 1340: 38 97 sbiw r30, 0x08 ; 8
  8. 1342: ed bf out 0x3d, r30 ; 61
  9. 1344: fe bf out 0x3e, r31 ; 62
  10. 1346: ed b6 in r14, 0x3d ; 61
  11. 1348: fe b6 in r15, 0x3e ; 62
  12. 134a: 08 94 sec
  13. 134c: e1 1c adc r14, r1
  14. 134e: f1 1c adc r15, r1
  15. 1350: 87 e2 ldi r24, 0x27 ; 39
  16. 1352: 90 e2 ldi r25, 0x20 ; 32
  17. 1354: 81 83 std Z+1, r24 ; 0x01
  18. 1356: 92 83 std Z+2, r25 ; 0x02
  19. + pcpv_data->pwr_ch[1].pin1 + pcpv_data->pwr_ch[1].pin2;
  20. // pcpv_data->board.pout = (int16_t)(((int32_t)pcpv_data->board.vout * (int32_t)pcpv_data->board.iout) / 10);
  21.  
  22. var1_16 = pcpv_data->board.vout;
  23. var2_16 = -48;
  24. var3_16 = ((int32_t)var1_16 * (int32_t)var2_16) / 10;
  25. 1358: 00 ed ldi r16, 0xD0 ; 208
  26. 135a: 1f ef ldi r17, 0xFF ; 255
  27. 135c: 29 81 ldd r18, Y+1 ; 0x01
  28. 135e: 3a 81 ldd r19, Y+2 ; 0x02
  29. 1360: 40 ed ldi r20, 0xD0 ; 208
  30. 1362: 5f ef ldi r21, 0xFF ; 255
  31. 1364: 0e 94 96 16 call 0x2d2c ; 0x2d2c <__mulhisi3>
  32. 1368: 2a e0 ldi r18, 0x0A ; 10
  33. 136a: 42 2e mov r4, r18
  34. 136c: 51 2c mov r5, r1
  35. 136e: 61 2c mov r6, r1
  36. 1370: 71 2c mov r7, r1
  37. 1372: a3 01 movw r20, r6
  38. 1374: 92 01 movw r18, r4
  39. 1376: 0e 94 c4 16 call 0x2d88 ; 0x2d88 <__divmodsi4>
  40. 137a: d7 01 movw r26, r14
  41. 137c: 12 96 adiw r26, 0x02 ; 2
  42. 137e: 2d 93 st X+, r18
  43. 1380: 3c 93 st X, r19
  44. 1382: 13 97 sbiw r26, 0x03 ; 3
  45. printf("WRONG: using casting : %d = ( %d * %d) / 10\n",var3_16, var1_16, var2_16);
  46. 1384: e9 81 ldd r30, Y+1 ; 0x01
  47. 1386: fa 81 ldd r31, Y+2 ; 0x02
  48. 1388: 14 96 adiw r26, 0x04 ; 4
  49. 138a: ed 93 st X+, r30
  50. 138c: fc 93 st X, r31
  51. 138e: 15 97 sbiw r26, 0x05 ; 5
  52. 1390: 16 96 adiw r26, 0x06 ; 6
  53. 1392: 0d 93 st X+, r16
  54. 1394: 1c 93 st X, r17
  55. 1396: 17 97 sbiw r26, 0x07 ; 7
  56. 1398: 0e 94 01 17 call 0x2e02 ; 0x2e02 <printf>
  57.  
  58. var1_16 = -pcpv_data->board.vout;
  59. 139c: ad 89 ldd r26, Y+21 ; 0x15
  60. 139e: be 89 ldd r27, Y+22 ; 0x16
  61. 13a0: 5e 96 adiw r26, 0x1e ; 30
  62. 13a2: ed 90 ld r14, X+
  63. 13a4: fc 90 ld r15, X
  64. 13a6: 5f 97 sbiw r26, 0x1f ; 31
  65. 13a8: f0 94 com r15
  66. 13aa: e1 94 neg r14
  67. 13ac: f1 08 sbc r15, r1
  68. 13ae: f3 94 inc r15
  69. var2_16 = 48;
  70. var3_16 = ((int32_t)var1_16 * (int32_t)var2_16) / 10;
  71. printf("RIGHT: using casting, positive var2 : %d = ( %d * %d) / 10\n",var3_16, var1_16, var2_16);
  72. 13b0: 8d b6 in r8, 0x3d ; 61
  73. 13b2: 9e b6 in r9, 0x3e ; 62
  74. 13b4: 08 94 sec
  75. 13b6: 81 1c adc r8, r1
  76. 13b8: 91 1c adc r9, r1
  77. 13ba: 8b e6 ldi r24, 0x6B ; 107
  78. 13bc: 90 e2 ldi r25, 0x20 ; 32
  79. 13be: ed b7 in r30, 0x3d ; 61
  80. 13c0: fe b7 in r31, 0x3e ; 62
  81. 13c2: 81 83 std Z+1, r24 ; 0x01
  82. 13c4: 92 83 std Z+2, r25 ; 0x02
  83. var3_16 = ((int32_t)var1_16 * (int32_t)var2_16) / 10;
  84. printf("WRONG: using casting : %d = ( %d * %d) / 10\n",var3_16, var1_16, var2_16);
  85.  
  86. var1_16 = -pcpv_data->board.vout;
  87. var2_16 = 48;
  88. var3_16 = ((int32_t)var1_16 * (int32_t)var2_16) / 10;
  89. 13c6: 97 01 movw r18, r14
  90. 13c8: 40 e3 ldi r20, 0x30 ; 48
  91. 13ca: 50 e0 ldi r21, 0x00 ; 0
  92. 13cc: 0e 94 96 16 call 0x2d2c ; 0x2d2c <__mulhisi3>
  93. 13d0: a3 01 movw r20, r6
  94. 13d2: 92 01 movw r18, r4
  95. 13d4: 0e 94 c4 16 call 0x2d88 ; 0x2d88 <__divmodsi4>
  96. 13d8: d4 01 movw r26, r8
  97. 13da: 12 96 adiw r26, 0x02 ; 2
  98. 13dc: 2d 93 st X+, r18
  99. 13de: 3c 93 st X, r19
  100. 13e0: 13 97 sbiw r26, 0x03 ; 3
  101. printf("RIGHT: using casting, positive var2 : %d = ( %d * %d) / 10\n",var3_16, var1_16, var2_16);
  102. 13e2: 14 96 adiw r26, 0x04 ; 4
  103. 13e4: ed 92 st X+, r14
  104. 13e6: fc 92 st X, r15
  105. 13e8: 15 97 sbiw r26, 0x05 ; 5
  106. 13ea: 80 e3 ldi r24, 0x30 ; 48
  107. 13ec: 90 e0 ldi r25, 0x00 ; 0
  108. 13ee: 16 96 adiw r26, 0x06 ; 6
  109. 13f0: 8d 93 st X+, r24
  110. 13f2: 9c 93 st X, r25
  111. 13f4: 17 97 sbiw r26, 0x07 ; 7
  112. 13f6: 0e 94 01 17 call 0x2e02 ; 0x2e02 <printf>
  113.  
  114. var1_16 = pcpv_data->board.vout;
  115. 13fa: ed 89 ldd r30, Y+21 ; 0x15
  116. 13fc: fe 89 ldd r31, Y+22 ; 0x16
  117. 13fe: 86 8d ldd r24, Z+30 ; 0x1e
  118. 1400: 97 8d ldd r25, Z+31 ; 0x1f
  119. var2_16 = -48;
  120. var3_16 = ((int32_t)var1_16 * (int32_t)var2_16);
  121. printf("RIGHT: using casting, without the division : %d = ( %d * %d)\n",var3_16, var1_16, var2_16);
  122. 1402: ed b7 in r30, 0x3d ; 61
  123. 1404: fe b7 in r31, 0x3e ; 62
  124. 1406: 31 96 adiw r30, 0x01 ; 1
  125. 1408: 2f ea ldi r18, 0xAF ; 175
  126. 140a: 30 e2 ldi r19, 0x20 ; 32
  127. 140c: ad b7 in r26, 0x3d ; 61
  128. 140e: be b7 in r27, 0x3e ; 62
  129. 1410: 11 96 adiw r26, 0x01 ; 1
  130. 1412: 2d 93 st X+, r18
  131. 1414: 3c 93 st X, r19
  132. 1416: 12 97 sbiw r26, 0x02 ; 2
  133. var3_16 = ((int32_t)var1_16 * (int32_t)var2_16) / 10;
  134. printf("RIGHT: using casting, positive var2 : %d = ( %d * %d) / 10\n",var3_16, var1_16, var2_16);
  135.  
  136. var1_16 = pcpv_data->board.vout;
  137. var2_16 = -48;
  138. var3_16 = ((int32_t)var1_16 * (int32_t)var2_16);
  139. 1418: 80 9f mul r24, r16
  140. 141a: 90 01 movw r18, r0
  141. 141c: 81 9f mul r24, r17
  142. 141e: 30 0d add r19, r0
  143. 1420: 90 9f mul r25, r16
  144. 1422: 30 0d add r19, r0
  145. 1424: 11 24 eor r1, r1
  146. printf("RIGHT: using casting, without the division : %d = ( %d * %d)\n",var3_16, var1_16, var2_16);
  147. 1426: 22 83 std Z+2, r18 ; 0x02
  148. 1428: 33 83 std Z+3, r19 ; 0x03
  149. 142a: 84 83 std Z+4, r24 ; 0x04
  150. 142c: 95 83 std Z+5, r25 ; 0x05
  151. 142e: 06 83 std Z+6, r16 ; 0x06
  152. 1430: 17 83 std Z+7, r17 ; 0x07
  153. 1432: 0e 94 01 17 call 0x2e02 ; 0x2e02 <printf>
  154.  
  155. var1_16 = -32;
  156. var2_16 = -48;
  157. var3_16 = ((int32_t)var1_16 * (int32_t)var2_16) / 10;
  158. printf("RIGHT: using casting, assigned from constant: %d = ( %d * %d) / 10\n",var3_16, var1_16, var2_16);
  159. 1436: ed b7 in r30, 0x3d ; 61
  160. 1438: fe b7 in r31, 0x3e ; 62
  161. 143a: 31 96 adiw r30, 0x01 ; 1
  162. 143c: 8e ee ldi r24, 0xEE ; 238
  163. 143e: 90 e2 ldi r25, 0x20 ; 32
  164. 1440: ad b7 in r26, 0x3d ; 61
  165. 1442: be b7 in r27, 0x3e ; 62
  166. 1444: 11 96 adiw r26, 0x01 ; 1
  167. 1446: 8d 93 st X+, r24
  168. 1448: 9c 93 st X, r25
  169. 144a: 12 97 sbiw r26, 0x02 ; 2
  170. 144c: 89 e9 ldi r24, 0x99 ; 153
  171. 144e: 90 e0 ldi r25, 0x00 ; 0
  172. 1450: 82 83 std Z+2, r24 ; 0x02
  173. 1452: 93 83 std Z+3, r25 ; 0x03
  174. 1454: 80 ee ldi r24, 0xE0 ; 224
  175. 1456: 9f ef ldi r25, 0xFF ; 255
  176. 1458: 84 83 std Z+4, r24 ; 0x04
  177. 145a: 95 83 std Z+5, r25 ; 0x05
  178. 145c: 06 83 std Z+6, r16 ; 0x06
  179. 145e: 17 83 std Z+7, r17 ; 0x07
  180. 1460: 0e 94 01 17 call 0x2e02 ; 0x2e02 <printf>
  181.  
  182. var1_32 = pcpv_data->board.vout;
  183. 1464: ed 89 ldd r30, Y+21 ; 0x15
  184. 1466: fe 89 ldd r31, Y+22 ; 0x16
  185. 1468: e6 8c ldd r14, Z+30 ; 0x1e
  186. 146a: f7 8c ldd r15, Z+31 ; 0x1f
  187. 146c: 00 27 eor r16, r16
  188. 146e: f7 fc sbrc r15, 7
  189. 1470: 00 95 com r16
  190. 1472: 10 2f mov r17, r16
  191. var2_32 = -48;
  192. var3_16 = (var1_32 * var2_32) / 10;
  193. printf("RIGHT: using int32_t vars : %d = ( %ld * %ld) / 10\n",var3_16, var1_32, var2_32);
  194. 1474: 00 d0 rcall .+0 ; 0x1476 <adc_avg_calc+0x3d6>
  195. 1476: 00 d0 rcall .+0 ; 0x1478 <adc_avg_calc+0x3d8>
  196. 1478: 8d b6 in r8, 0x3d ; 61
  197. 147a: 9e b6 in r9, 0x3e ; 62
  198. 147c: 08 94 sec
  199. 147e: 81 1c adc r8, r1
  200. 1480: 91 1c adc r9, r1
  201. 1482: 82 e3 ldi r24, 0x32 ; 50
  202. 1484: 91 e2 ldi r25, 0x21 ; 33
  203. 1486: ad b7 in r26, 0x3d ; 61
  204. 1488: be b7 in r27, 0x3e ; 62
  205. 148a: 11 96 adiw r26, 0x01 ; 1
  206. 148c: 8d 93 st X+, r24
  207. 148e: 9c 93 st X, r25
  208. 1490: 12 97 sbiw r26, 0x02 ; 2
  209. var3_16 = ((int32_t)var1_16 * (int32_t)var2_16) / 10;
  210. printf("RIGHT: using casting, assigned from constant: %d = ( %d * %d) / 10\n",var3_16, var1_16, var2_16);
  211.  
  212. var1_32 = pcpv_data->board.vout;
  213. var2_32 = -48;
  214. var3_16 = (var1_32 * var2_32) / 10;
  215. 1492: c8 01 movw r24, r16
  216. 1494: b7 01 movw r22, r14
  217. 1496: 20 ed ldi r18, 0xD0 ; 208
  218. 1498: 3f ef ldi r19, 0xFF ; 255
  219. 149a: 4f ef ldi r20, 0xFF ; 255
  220. 149c: 5f ef ldi r21, 0xFF ; 255
  221. 149e: 0e 94 a5 16 call 0x2d4a ; 0x2d4a <__mulsi3>
  222. 14a2: a3 01 movw r20, r6
  223. 14a4: 92 01 movw r18, r4
  224. 14a6: 0e 94 c4 16 call 0x2d88 ; 0x2d88 <__divmodsi4>
  225. 14aa: f4 01 movw r30, r8
  226. 14ac: 22 83 std Z+2, r18 ; 0x02
  227. 14ae: 33 83 std Z+3, r19 ; 0x03
  228. printf("RIGHT: using int32_t vars : %d = ( %ld * %ld) / 10\n",var3_16, var1_32, var2_32);
  229. 14b0: d4 01 movw r26, r8
  230. 14b2: 14 96 adiw r26, 0x04 ; 4
  231. 14b4: ed 92 st X+, r14
  232. 14b6: fd 92 st X+, r15
  233. 14b8: 0d 93 st X+, r16
  234. 14ba: 1c 93 st X, r17
  235. 14bc: 17 97 sbiw r26, 0x07 ; 7
  236. 14be: 80 ed ldi r24, 0xD0 ; 208
  237. 14c0: 9f ef ldi r25, 0xFF ; 255
  238. 14c2: af ef ldi r26, 0xFF ; 255
  239. 14c4: bf ef ldi r27, 0xFF ; 255
  240. 14c6: 80 87 std Z+8, r24 ; 0x08
  241. 14c8: 91 87 std Z+9, r25 ; 0x09
  242. 14ca: a2 87 std Z+10, r26 ; 0x0a
  243. 14cc: b3 87 std Z+11, r27 ; 0x0b
  244. 14ce: 0e 94 01 17 call 0x2e02 ; 0x2e02 <printf>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement