вот результат для этого исходника
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено bialix 18 августа 2004 г. 17:44
В ответ на: Да, сорри, но результат тот же, счас подитожу отправлено patton 18 августа 2004 г. 17:16


C51 COMPILER V7.05 PATTON_TEST2 08/18/2004 16:45:45 PAGE 1


C51 COMPILER V7.05, COMPILATION OF MODULE PATTON_TEST2
OBJECT MODULE PLACED IN patton_test2.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE patton_test2.c BROWSE DEBUG OBJECTEXTEND CODE

stmt level source

1 short testb( char* src )
2 {
3 1 short result = *(src+1);
4 1 *(((char*)&result)+1) = *src;
5 1 return result;
6 1 }
7 short badtestb( char* packet )
8 {
9 1 short result = packet[1] | (((signed char)packet[0])<<8);
10 1 return result;
11 1 }
12 void main()
13 {
14 1 char buf[ 2 ];
15 1 short result, badresult;
16 1 *(short*)buf = 0x1234;
17 1 while( 1 )
18 1 {
19 2 result = testb( buf );
20 2 badresult = badtestb( buf );
21 2 if( result != badresult )
22 2 break;
23 2 }
24 1 error:
25 1 goto error;
26 1 }
27
C51 COMPILER V7.05 PATTON_TEST2 08/18/2004 16:45:45 PAGE 2

ASSEMBLY LISTING OF GENERATED OBJECT CODE


; FUNCTION _testb (BEGIN)
; SOURCE LINE # 1
;---- Variable 'src' assigned to Register 'R1/R2/R3' ----
; SOURCE LINE # 2
; SOURCE LINE # 3
0000 900001 MOV DPTR,#01H
0003 120000 E LCALL ?C?CLDOPTR
0006 FF MOV R7,A
0007 33 RLC A
0008 95E0 SUBB A,ACC
000A F500 R MOV result,A
000C 8F00 R MOV result+01H,R7
; SOURCE LINE # 4
000E 120000 E LCALL ?C?CLDPTR
0011 F500 R MOV result+01H,A
; SOURCE LINE # 5
0013 AE00 R MOV R6,result
0015 FF MOV R7,A
; SOURCE LINE # 6
0016 ?C0001:
0016 22 RET
; FUNCTION _testb (END)

; FUNCTION _badtestb (BEGIN)
; SOURCE LINE # 7
;---- Variable 'packet' assigned to Register 'R1/R2/R3' ----
; SOURCE LINE # 8
; SOURCE LINE # 9
0000 900001 MOV DPTR,#01H
0003 120000 E LCALL ?C?CLDOPTR
0006 FD MOV R5,A
0007 33 RLC A
0008 95E0 SUBB A,ACC
000A FC MOV R4,A
000B 120000 E LCALL ?C?CLDPTR
000E FF MOV R7,A
000F EF MOV A,R7
0010 4C ORL A,R4
0011 FE MOV R6,A
0012 ED MOV A,R5
0013 FF MOV R7,A
;---- Variable 'result' assigned to Register 'R6/R7' ----
; SOURCE LINE # 10
; SOURCE LINE # 11
0014 ?C0002:
0014 22 RET
; FUNCTION _badtestb (END)

; FUNCTION main (BEGIN)
; SOURCE LINE # 12
; SOURCE LINE # 13
; SOURCE LINE # 16
0000 750012 R MOV buf,#012H
0003 750034 R MOV buf+01H,#034H
0006 ?C0003:
; SOURCE LINE # 17
; SOURCE LINE # 18
; SOURCE LINE # 19
0006 7B00 MOV R3,#00H
C51 COMPILER V7.05 PATTON_TEST2 08/18/2004 16:45:45 PAGE 3

0008 7A00 R MOV R2,#HIGH buf
000A 7900 R MOV R1,#LOW buf
000C 120000 R LCALL _testb
000F 8E00 R MOV result,R6
0011 8F00 R MOV result+01H,R7
; SOURCE LINE # 20
0013 120000 R LCALL _badtestb
;---- Variable 'badresult' assigned to Register 'R6/R7' ----
; SOURCE LINE # 21
0016 E500 R MOV A,result+01H
0018 6F XRL A,R7
0019 7003 JNZ ?C0008
001B E500 R MOV A,result
001D 6E XRL A,R6
001E ?C0008:
001E 60E6 JZ ?C0003
; SOURCE LINE # 22
; SOURCE LINE # 23
; SOURCE LINE # 24
0020 error:
; SOURCE LINE # 25
0020 80FE SJMP error
; FUNCTION main (END)

MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 78 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 6
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)

как бы разница есть

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru