// C-Programm zum testen for(;;) { P3_5 = 1; DatRW(); // Schreibt in den Speicher (Prog. oder Dat.), // je nach Schalterstellung bByte = ProgRD(); if(bByte != 0x5A) P3_5 = 0; } ------------------------------------------------------------------------ // Assemblerroutinen zum Speicherzugriff ;--- Schreib/Lesetest Datenspeicher-RAM ------------------------ DatRW: mov DPTR,#8005h ; Speicherzelle 8005h (Datenspeicher) mov A,#5Ah ; Speicherwert 01011010 ;mov A,#0ADh ; Speicherwert 101001101 movx @DPTR,A ; Im Datenspeicher speichern clr A ; Akku löschen movx A,@DPTR ; Datenspeicherzelle lesen mov R7,A ; Rückgabewert ret ;--- Lesetest Programmspeicher (RAM) --------------------------- ProgRD: mov DPTR,#8005h ; Speicherzelle 8005h (Programmspeicher) clr A ; Offset = 0 movc A,@A+DPTR ; Programmspeicherzelle lesen mov R7,A ; Rückgabewert ret