[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Беня 01 ноября 2001 г. 11:34
В ответ на: Ответ: отправлено user 01 ноября 2001 г. 10:19

///// Программа номер 1 : ////////
char data *ptr;
char var1;

ptr = & var1 ;
*ptr = 0x11 ;

И Ride и Keil понимают одинаково :
; ptr = & var1 ;
MOV ptr,#var1


/////// Программа номер 2 //////////
Если объявить :
data char *ptr; // перед этим было "char data *ptr"

-------Keil :-------
;ptr = & var1 ;
MOV R3,#00H
MOV R2,#HIGH var1
MOV R1,#LOW var1
MOV ptr,R3
MOV ptr+01H,R2
MOV ptr+02H,R1
;*ptr = 0x11 ;
MOV R3,ptr
MOV R2,ptr+01H
MOV R1,ptr+02H
MOV A,#011H
LCALL ?C?CSTPTR

------ Ride - без изменения --------
; ptr = & var1 ;
MOV ptr,#var1
; *ptr = 0x11 ;
MOV R0,ptr
MOV @R0,#011H

Похоже, что все-таки Keil "поумнее" - в зависимости от того, где расположена директива data, он это интерпретирует 1) как указатель, указывающий на data 2) как указатель, расположенный в data
А Ride таких "тонкостей" не понимает.


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

Ответы



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

E-mail: info@telesys.ru