You are on page 1of 7

Modelo de Programacin

Bus de direcciones de 24bits y bus de datos de 16bits, bus de control conformado por las
lneas WR para las operaciones de escritura y RD para las operaciones de lectura, ambas
son bajo activas.
Registros:
Acumulador (AC) de 16bits.
Registro Auxiliar (AR) de 16 bits. Registro que almacena la parte alta del producto, pero que
puede usarse como un acumulador de repuesto.
Puntero de Pila (SP) de16bits.
Contador de programa (PC) de 24bits.
Puntero X (IX) de 16bits.
Puntero Y (IY) de 16bits.
Registro de Estado (SR) 8bits (No es propiamente un registro).
Bits de estado: Z = resultado cero; N = resultado negativo; C = acarreo de salida;
V = desbordamiento; I = bandera de interrupcin;
Puntero de Pginas:
HSP[8] = Pgina de la pila.
HPC[8] = Pgina del programa.
HDS[8] = Pgina de datos.
Registros transparentes
DT, DM, IR, MPR y SC
MPR es un registro de 32 bits usado por la instruccin MAC.
SC es un registro de 16 bits para uso genrico.

Data[0:15]

uSIT2.0
RST
IRQ

~WR
~RD

ADDRS[0:23]

Instrucciones de Memoria
0 1
1

5 6
OP

11 12
AM

15
reg

Patrn 1

Las instrucciones son de una o dos palabras dependiendo del modo de direccionamiento. Los
modos donde se especifique una direccin de memoria o un valor inmediato sern de dos
palabras.
El campo reg indica el registro de trabajo. Con cuatro bits se pueden direccionar 16 registros .
El bit 0 indica el tipo de instruccin. Si es 1 entonces la instruccin es de memoria tal como se
indica en el patrn 1; si es 0 entonces la instruccin tendr otro patrn y depender del tipo.

El patrn 1 respalda las siguientes instrucciones:


Nemnico

Ecuacin

Descripcin

Cdigo

ADD reg, DATO


ADC reg, DATO
SUB reg, DATO
SBC reg, DATO
CMP reg, DATO
LD reg, DATO
AND reg, DATO
OR reg, DATO
XOR reg, DATO
ST reg, DATO
NOT DATO
NEG DATO
INC DATO
DEC DATO
JMP DATO
CALL DATO
XCHG reg,DATO
MUL DATO
DIV DATO
SHR DATO
ASR DATO
SHL DATO
ROR DATO
ROL DATO

reg = reg + DATO


reg = reg + DATO + C
reg = reg DATO
reg = reg DATO C
flags f(reg DATO)
reg = DATO
reg = reg AND DATO
reg = reg OR DATO
reg = reg XOR DATO
DATO = reg
DATO = ~DATO
DATO = -DATO
DATO = DATO + 1
DATO = DATO 1
PC = HPC:DATO
M(-SP) = PC | PC = HPC:DATO
reg
DATO
A:AR = A * DATO
A = A/DATO | AR=residuo
DATO = 0 DATO
DATO = b15 DATO
DATO =
DATO 0
DATO = b0 DATO
DATO =
DATO B15

Suma.
Suma con acarreo.
Resta.
Resta con acarreo.
Comparacin.
Carga registro.
AND lgico.
OR lgico.
XOR.
Guarda registro.
Complemento a 1.
Complemento a 2.
Incremento.
Decremento.
Salto incondicionado.
Llama a subrutina.
Intercambio.
Multiplicacin.
Divisin.
Traslacin a la derecha.
Traslacin arit a derecha.
Traslacin a la izquierda.
Rotacin a la derecha.
Rotacin a la izquierda.

00000
00001
00011
00010
00111
00110
00101
00100
01100
01101
01111
01110
01010
01011
01001
01000
11000
11001
11011
11010
11110
11111
11101
11100

Modos De Direccionamiento
0 1
1

IR[6:11]
000xxx
001xxx
010000
010001
010101
010011
010111
011000
011001
011101
011011
011111
100xxx
110000
110001
110101
110011
110111
111000
111001
111101
111011
111111

5 6
OP

modo de direcc.
inmediato
directo
indexado X
indexado X+
indexado +X
indexado Xindexado -X
indexado Y
indexado Y+
indexado +Y
indexado Yindexado -Y
indirecto
indirecto indexado X
indirecto indexado X+
indirecto indexado +X
indirecto indexado Xindirecto indexado -X
indirecto indexado Y
indirecto indexado Y+
indirecto indexado +Y
indirecto indexado Yindirecto indexado -Y

11 12
AM

Mnemnico
DATO = #ADDR
DATO = ADDR
DATO = ADDR,X
DATO = ADDR,X+
DATO = ADDR,+X
DATO = ADDR,XDATO = ADDR,-X
DATO = ADDR,Y
DATO = ADDR,Y+
DATO = ADDR,+Y
DATO = ADDR,YDATO = ADDR,-Y
DATO = (ADDR)
DATO = (ADDR),X
DATO = (ADDR),X+
DATO = (ADDR),+X
DATO = (ADDR),XDATO = (ADDR),-X
DATO = (ADDR),Y
DATO = (ADDR),Y+
DATO = (ADDR),+Y
DATO = (ADDR),YDATO = (ADDR),-Y

15
reg

Patrn 1

Descripcin
Inmediato
Directo
Indexado por X
Indexado por X con post-incremento.
Indexado por X con pre-incremento.
Indexado por X con post-decremento.
Indexado por X con pre-decremento.
Indexado por Y.
Indexado por Y con post-incremento.
Indexado por Y con pre-incremento.
Indexado por y con post-decremento.
Indexado por Y con pre-decremento.
Indirecto.
Indirecto indexado por X.
Indirecto indexado por X con post-incremento.
Indirecto indexado por X con pre-incremento.
Indirecto indexado por X con post-decremento.
Indirecto indexado por X con pre-decremento.
Indirecto indexado por Y.
Indirecto indexado por Y con post-incremento.
Indirecto indexado por Y con pre-incremento.
Indirecto indexado por Y con post-decremento.
Indirecto indexado por Y con pre-decremento.

0 1

3 4

0 0 0 0

7 8
OP

11 12
RegD

Nemnico

Ecuacin

ADD regd, regf


ADC regd, regf
SUB regd, regf
SBC regd, regf
CMP regd, regf
AND regd, regf
OR regd, regf
XOR regd, regf
MOV regd, regf
XCHG regd, regf
MAC regd, regf

regd = regd + regf


regd = regd + regf + C
regd = regd regf
regd = regd regf C
flags f(regd regf)
regd = regd AND regf
regd = regd OR regf
regd = regd XOR regf
regd = regf
regd
regf
A:AR = A:AR + regd*regf

15
RegF

Descripcin
Suma.
Suma con acarreo.
Resta.
Resta con acarreo.
Comparacin.
AND lgico.
OR lgico.
XOR.
Carga registro.
Intercambio.
Multiplica y acumula

OP
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111

regd y regf representan cualquiera de los registros menos el registro de estado

Registro
Acumulador
Acumulador Auxiliar
Indicador X
Indicador Y
Puntero de Pila
Contador de Programa
Pgina de datos
Alta del PC
Alta del SP
Registro de Estado

Id. Binaria
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001

Instrucciones estructura (2 palabras)


0 1

3 4

14

0 0 0 1

Condicin

14

sbr f C C N N Z Z V V N@V
sbr = 0 ramificacin condicionada
sbr = 1 ramificacin a subrutina
f = 0 salto con la condicin normal
f = 1 salto con la condicin negada

15
Modo

Modo
Directo
Indirecto

0
1

Instrucciones de Registro
0 1

3 4

0 0 1 1

7 8
OP

11
Reg

15

Nemnico

Ecuacin

Descripcin

OP

CLR reg
INC reg
DEC reg
NEG reg
NOT reg
SHR reg,n
ASR reg,n
SHL reg,n
ROR reg,n
ROL reg,n
PUSH reg
POP reg
CLC
SEC
CLI
SEI

reg = 0
reg = reg + 1
reg = reg 1
reg = -reg
reg = ~reg
reg = 0 DATO(n veces)
reg = b15 reg(n veces)
reg =
DATO(n veces) 0
reg = b0 reg(n veces)
reg =
DATO(n veces) B15
M(-SP) = reg
reg = M(SP+)
C = 0
C = 1
I = 0
I = 1

borra registro
Incremento.
Decremento.
Complemento a 2.
Complemento a 1.
Traslacin a la derecha.
Traslacin arit a derecha.
Traslacin a la izquierda.
Rotacin a la derecha.
Rotacin a la izquierda.
Deposita registro en la pila
Extrae registro de la pila
Borra Acarreo
Alza Acarreo
Borra Bandera I
Alza Bandera I

0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000

Instrucciones Miscelaneas

0 1

15

0 0 1 0
Nemnico

Ecuacin

Descripcin

NOP
RET
RTI

NA
PC = M(SP+)
PC = M(SP+)| SR = M(SP+)

NO OPERA
Recupera PC de la Pila
Recupera PC y SR de la Pila

OP

Tarea No 3
Ej. 1
Traduzca las siguientes instrucciones a lenguaje de mquina la h indica que el nmero es
hexadecimal:
a.
b.
c.
d
e
f
g

ld ix #2045h
st ac fde3h
add ac ix
inc fed4h,x
dec (fed4),x+
dec ix
call 2345,-y

Ej.2
Se requiere medir el largo de una frase que termina en 00. La frase est almacenada en la direccin
FraseDir tal como se ejemplifica a continuacin:
FraseDir
db Hola Mundo,0
Haga una subrutina que realice lo propio y que entregue el resultado en el acumulador.
Ej.3
Se requiere copiar de una frase de una posicin origen a otra posicin destino tal como se ilustra:
FraseOrDir: db Hola Mundo,0
FraseDeDir:
Ej.4
Se requiere implementar un convertidor de paralelo a serie para transmisin en serie, realice la
interfaz asumiendo que:
El dato a convertir reside en el registro A,
Que la conversin se da a travs del registro de corrimiento ubicado en la posicin RegCorrDir
Que la transmisin se efectuar por el bit menos significativo de este registro
Que entre cada bit transmitido se deber ejecutar una subrutina de retardo Bdrte para calibrar
el baudrate.
Realizar el programa de transmisin. La rutina de calibracin se muestra a continuacin.
Bdrte:
ld ix #BAUDRATE
begin0:
dec ix
bne begin0
ret

Ej5
Se requiere realizar la suma de dos nmeros de 32 bits cada uno est almacenado en dos
posiciones de memoria consecutivas tal que la parte mas significativa ocupa la posicin cuya
direccin es mayor por ejemplo si se requiere sumar NUM2 = NUM1 + NUM2 y NUM1 = $01004530
y NUM2 = $00A00200.
NUM1 dw $4530 ; parte menos significativa de NUM1.
dw $0100 ; parte mas significativa.
NUM2 dw $0200 ; parte menos significativo de NUM2
dw $00A0 ; parte mas significativa.
El resultado de la suma debe reemplazar al NUM2.

You might also like