для кейла тест с указателями ввобще не совсем оптимален. хотелось бы знать - что вы хотите увидеть?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено bialix 18 августа 2004 г. 16:16
В ответ на: Пожалуйста, откомпилируйте кто чем может( С для МК ) файл по ссылке и покажите листинг, в картинке листинг для HT-PICC отправлено patton 18 августа 2004 г. 13:13


C51 COMPILER V7.05 PATTON_TEST 08/18/2004 15:17:00 PAGE 1


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

stmt level source

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

ASSEMBLY LISTING OF GENERATED OBJECT CODE


; FUNCTION _test (BEGIN)
; SOURCE LINE # 1
;---- Variable 'src' assigned to Register 'R1/R2/R3' ----
; SOURCE LINE # 2
; SOURCE LINE # 3
0000 120000 E LCALL ?C?ILDPTR
0003 FF MOV R7,A
0004 AEF0 MOV R6,B
;---- Variable 'result' assigned to Register 'R6/R7' ----
; SOURCE LINE # 4
; SOURCE LINE # 5
0006 ?C0001:
0006 22 RET
; FUNCTION _test (END)

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

; FUNCTION main (BEGIN)
; SOURCE LINE # 11
; SOURCE LINE # 12
; SOURCE LINE # 15
0000 750012 R MOV buf,#012H
0003 750034 R MOV buf+01H,#034H
0006 ?C0003:
; SOURCE LINE # 16
; SOURCE LINE # 17
; SOURCE LINE # 18
0006 7B00 MOV R3,#00H
0008 7A00 R MOV R2,#HIGH buf
000A 7900 R MOV R1,#LOW buf
000C 120000 R LCALL _test
000F 8E00 R MOV result,R6
0011 8F00 R MOV result+01H,R7
; SOURCE LINE # 19
0013 120000 R LCALL _badtest
;---- Variable 'badresult' assigned to Register 'R6/R7' ----
C51 COMPILER V7.05 PATTON_TEST 08/18/2004 15:17:00 PAGE 3

; SOURCE LINE # 20
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 # 21
; SOURCE LINE # 22
; SOURCE LINE # 23
0020 error:
; SOURCE LINE # 24
0020 80FE SJMP error
; FUNCTION main (END)

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


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


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

Ответы



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

E-mail: info@telesys.ru