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.