Vistas de página en total

sábado, 25 de enero de 2014

EMULADOR 8051 (3B/12) (RUTINA INSERTADA POR "REGISTROS")

   En la entrada de la rutina que recogía e imprimía en pantalla el valor de los registros, aparecía en código máquina del 8051, en la data, la rutina que debería copiarlos a memoria para que el proceso pudiera pasarlo al pc.
   Dado que el código máquina no es muy claro, pongo hoy la rutina escrita en ensamblador 8051. Esta rutina saca el valor de los registros a la memoria, de donde los recoge el programa.

   Por supuesto, esta rutina debe de ser compilada con un compilador de ensamblador para el 8051.


EXTRACCIÓN DE REGISTRO


; Copyright (C) 2013  José Ángel Moneo Fernández

;    This program is free software: you can redistribute it and/or modify
;    it under the terms of the GNU General Public License as published by
;    the Free Software Foundation, either version 3 of the License, or
;   (at your option) any later version.

;    This program is distributed in the hope that it will be useful,
;    but WITHOUT ANY WARRANTY; without even the implied warranty of
;    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;    GNU General Public License for more details.

;    You should have received a copy of the GNU General Public License
;    along with this program.  If not, see <http://www.gnu.org/licenses/

     ;RUTINA DE EXTRACCIÓN DE REGISTROS
       ; MICROPROCESADOR 8051
       
       DEFSEG CERO,START=0

       SEG CERO

        MOV DPTR,#70H   ;P0
        MOV A,80H
        MOVX @DPTR,A
        INC DPTR
        MOV A,81H
        MOVX @DPTR,A   ;SP
        INC DPTR
        MOV A,88H      ;TCON
        MOVX @DPTR,A
        INC DPTR
        MOV A,89H      ;TMOD
        MOVX @DPTR,A
        INC DPTR
        MOV A,8AH      ;TL0
        MOVX @DPTR,A
        INC DPTR
        MOV A,8BH      ;TL1
        MOVX @DPTR,A
        INC DPTR
        MOV A,8CH      ;TH0
        MOVX @DPTR,A
        INC DPTR
        MOV A,8DH      ;TH1
        MOVX @DPTR,A
        INC DPTR
        MOV A,90H      ;P1
        MOVX @DPTR,A
        INC DPTR
        MOV A,98H      ;SCON
        MOVX @DPTR,A
        INC DPTR
        MOV A,89H      ;SBUF
        MOVX @DPTR,A
        INC DPTR
        MOV A,0A0H      ;P2
        MOVX @DPTR,A
        INC DPTR
        MOV A,0A8H      ;IE
        MOVX @DPTR,A
        INC DPTR
        MOV A,0B0H      ;P3
        MOVX @DPTR,A
        INC DPTR
        MOV A,0B8H      ;IP
        MOVX @DPTR,A
        INC DPTR
        MOV A,0D0H      ;PSW
        MOVX @DPTR,A
        INC DPTR
        MOV A,0E0H      ;ACC
        MOVX @DPTR,A
        INC DPTR
        MOV A,0F0H      ;B
        MOVX @DPTR,A
        INC DPTR
        MOV A,R0      ;R0
        MOVX @DPTR,A
        INC DPTR
        MOV A,R1      ;R1
        MOVX @DPTR,A
        INC DPTR
        MOV A,R2      ;R2
        MOVX @DPTR,A
        INC DPTR
        MOV A,R3      ;R3
        MOVX @DPTR,A
        INC DPTR
        MOV A,R4      ;R4
        MOVX @DPTR,A
        INC DPTR
        MOV A,R5      ;R5
        MOVX @DPTR,A
        INC DPTR
        MOV A,R6      ;R6
        MOVX @DPTR,A
        INC DPTR
        MOV A,R7      ;R7
        MOVX @DPTR,A


        END

No hay comentarios:

Publicar un comentario

Si tienes algún comentario, duda o sugerencia, o si quieres aportar algún código creado a partir de las librerías expuestas aquí, por favor, indícamelo.