[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Ваш пример
//****************************************
Программа:
#include "reg52.h"
main()
{
#pragma asm
mov 81H, #67 ;for example
LOOP: mov r0, #81H
mov @r0, #0
jmp LOOP ; endlose loop
#pragma endasm
}
//***********************************************
Листинг С:
C51 COMPILER V6.00i TEST 10/25/2001 23:57:40 PAGE 1
C51 COMPILER 6.00i, COMPILATION OF MODULE TEST
OBJECT MODULE PLACED IN .\test\test.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE .\test\test.c OBJECTEXTEND DEBUG PRINT(.\test.lst) SRC(.\test.SRC)
stmt level source
1 #include "reg52.h"
2
3 main()
4 {
5 1 #pragma asm
6 1 mov 81H, #67 ;for example
7 1 LOOP: mov r0, #81H
8 1 mov @r0, #0
9 1 jmp LOOP
10 1 #pragma endasm
11 1
12 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 13 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
//******************************************
Листинг SRC (выдержка):
87 ?PR?main?TEST SEGMENT CODE
88 EXTRN CODE (?C_STARTUP)
89 PUBLIC main
90 ; #include "reg52.h"
91 ;
92 ; main()
93
---- 94 RSEG ?PR?main?TEST
95 USING 0
0000 96 main:
97 ; SOURCE LINE # 3
98 ; {
99 ; SOURCE LINE # 4
100 ; #pragma asm
101 ; mov 81H, #67 ;for example
0000 758143 102 mov 81H, #67 ;for example
103 ; LOOP: mov r0, #81H
0003 7881 104 LOOP: mov r0, #81H
105 ; mov @r0, #0
0005 7600 106 mov @r0, #0
107 ; jmp LOOP
0007 80FA 108 jmp LOOP
109 ; #pragma endasm
110 ;
111 ; }
112 ; SOURCE LINE # 12
0009 22 113 RET
114 ; END OF main
115
116 END
A51 MACRO ASSEMBLER TEST
/******************************************
Результат работы в дебаггере:
Сколько ни гонять пошагово цикл LOOP, значение, введенное в стек, не меняется, т.к. к нему нет обращения из цикла.
Вывод - фирменное описание все же соответствует истине и области памяти IDATA и SFR - физически разные области.
Предлагаю пари на 10$, что я прав в этом вопросе.
P.S. И будьте осторожны на будущее со словом "глупости".
Cat_Thomas
E-mail: info@telesys.ru