[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
///// Программа номер 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