El Computador Simple
El Computador Simple
(EdC-IC)
Tema 3
El computador simple
-------------------------------------------------------------------------
Usted es libre de copiar, distribuir y comunicar públicamente la obra y de hacer obras derivadas siempre que se cite la fuente y se respeten las condiciones
de la licencia Attribution-Share alike de Creative Commons.
--------------------------------------------------------------------------
Índice
R0 R1
R0 R0+R1
R0 R0+R1
R0 R0–R2
Índice
D2-0
F2-0
código de
registro destino registro fuente
operación
8 8
AB OP1 OP0 RESULT
IA IB
MEMORIA 00 IA+IB
DE CÓDIGO OP1-0 2
(MEMCOD) 01 IA
RESULT 10 IA-IB
28x8
DB 8 11 IB
8
DB=MEMCOD[AB]
Diseño de la Unidad de Control del
Computador Simple CS1
Controla la ejecución automática del programa almacenado en la memoria
PARADA
STOP
START
BÚSQUEDA EJECUCIÓN
(FETCH) (EXECUTE)
Carta ASM del CS1
STOP
S0
0
START
FETCH: S1
1
EXECUTE: S2
CL PC PC ← 0
W IR IR←MEMCOD(PC) S1
I PC PC ←PC+1
S2
OP1 OP0 RESULT
00 IA+IB 11 IR7 IR6 01
01 IA
00 10
10 IA-IB
11 IB
RdRd+Rf Rd←Rd-Rf Rd←Rf
I5-3=D2-0
I2-0=F2-0
7 6 5 4 3 2 1 0
código de
registro destino registro fuente
operación
Ejemplo de programación del CS1
Ejemplo:
Escribir un programa que realice la siguiente operación:
R6←3R4-2R1
R6←3R4-2R1
Programa R1 R4 R6
$19 $22 $43
MOV R6,R4
SUB R6,R1
ADD R6,R6
ADD R6,R4
STOP
Ejemplos de programación del CS1
Ejemplo 2:
Si inicialmente los contenidos de los registros son:
R1=$19, R4= $22 y R6=$43, indique sus contenidos tras cara instrucción
R6←3R4-2R1
Programa R1 R4 R6
$19 $22 $43
MOV R6,R4 $19 $22 $22
SUB R6,R1
ADD R6,R6
ADD R6,R4
STOP
Ejemplos de programación del CS1
Ejemplo 2:
Si inicialmente los contenidos de los registros son:
R1=$19, R4= $22 y R6=$43, indique sus contenidos tras cara instrucción
R6←3R4-2R1
Programa R1 R4 R6
$19 $22 $43
MOV R6,R4 $19 $22 $22
SUB R6,R1 $19 $22 $09
ADD R6,R6
ADD R6,R4
STOP
Ejemplos de programación del CS1
Ejemplo 2:
Si inicialmente los contenidos de los registros son:
R1=$19, R4= $22 y R6=$43, indique sus contenidos tras cara instrucción
R6←3R4-2R1
Programa R1 R4 R6
$19 $22 $43
MOV R6,R4 $19 $22 $22
SUB R6,R1 $19 $22 $09
ADD R6,R6 $19 $22 $12
ADD R6,R4
STOP
Ejemplos de programación del CS1
Ejemplo 2:
Si inicialmente los contenidos de los registros son:
R1=$19, R4= $22 y R6=$43, indique sus contenidos tras cara instrucción
R6←3R4-2R1
Programa R1 R4 R6
$19 $22 $43
MOV R6,R4 $19 $22 $22
SUB R6,R1 $19 $22 $09
ADD R6,R6 $19 $22 $12
ADD R6,R4 $19 $22 $34
STOP
Ejemplos de programación del CS1
Ejemplo 2:
Si inicialmente los contenidos de los registros son:
R1=$19, R4= $22 y R6=$43, indique sus contenidos tras cara instrucción
R6←3R4-2R1
Programa R1 R4 R6
$19 $22 $43
MOV R6,R4 $19 $22 $22
SUB R6,R1 $19 $22 $09
ADD R6,R6 $19 $22 $12
ADD R6,R4 $19 $22 $34
STOP $19 $22 $34
Ejemplos de programación del CS1
Ejemplo 3:
Si inicialmente los contenidos de los registros son:
R1=$22, R4= $19 y R6=$43, indique sus contenidos tras cara instrucción
R6←3R4-2R1
Programa R1 R4 R6
$22 $19 $43
MOV R6,R4
SUB R6,R1
ADD R6,R6
ADD R6,R4
STOP
Índice
1. Limitaciones de la calculadora simple
2. El Computador Simple 1 (CS1)
(concepto de Programa almacenado en memoria)
23
Limitaciones y evolución del CS1
• El CS1 sólo opera con datos almacenados en el banco
de registros.
• Es necesario aumentar la capacidad de almacenamiento
• Se propone una nueva arquitectura (CS2: Computador
Simple 2), con los datos almacenados en una RAM
• Existen dos opciones para dotar al sistema de
almacenamiento de datos:
– Utilizar un único sistema de memoria para datos e
instrucciones (Arquitectura von Neumann).
– Utilizar sistemas de memoria distintos para datos e
instrucciones (Arquitectura Harvard).
Arquitectura
von Neumann vs Harvard
• En la arquitectura Harvard, las características de las memorias y
los buses de interconexión de las mismas pueden diferir.
Normalmente los datos requieren memoria de lectura y escritura
• En la arquitectura de von Neuman el sistema de memoria es único
y, por lo tanto, tanto memoria como buses son únicos.
• El disponer de dos sistemas de memoria separados dota de
eficiencia al sistema ya que normalmente es el acceso a memoria lo
que enlentece su funcionamiento y en este caso se puede estar
accediendo a instrucciones y datos simultáneamente.
• Las CPU modernas incorporan aspectos de ambas arquitecturas. La
memoria cache interna a la CPU se separa en dos (datos e
instrucciones), pero la memoria principal es única. Desde el punto de
vista del programador se trata de una arquitectura de Von Neumann,
pero desde el punto de vista del hardware es Harvard.
Arquitectura del CS2
CO SINTAXIS FUNCIÓN
000 ST (Rb),Rf MEMDAT(Rb)←Rf
001 LD Rd, (Rb) Rd←MEMDAT(Rb)
010 STS dir, Rf MEMDAT(dir)←Rf
011 LDS Rd,dir Rd←MEMDAT(dir)
100 ADD Rd,Rf Rd←Rd+Rf
110 SUB Rd,Rf Rd←Rd-Rf
101 MOV Rd,Rf Rd←Rf
111 STOP NOP
formato 13 12 11 10 9 8 7 6 5 4 3 2 1 0
A registro fuente
instrucción con - - - - - (registro base en
operando ST/LD)
registro código de registro destino
operación (fuente en ST)
B
instrucción con dirección del dato
operando
memoria
A registro fuente
instrucción con - - - - - (registro base
operando en ST/LD)
registro código de registro destino
operación (fuente en ST)
B
instrucción con dirección del dato
operando
memoria
Arquitectura del CS2
Arquitectura del computador CS1
CS1
Arquitectura del CS2
Nuevo
Arquitectura del CS2
Modificaciones en la arquitectura del CS2 (todo lo
que se ha añadido es para dotar al sistema de
almacenamiento de datos en memoria).
• Sistema de memoria de datos.
• Registro de datos de la memoria (MDR).
• Registro de direcciones de la memoria (MAR).
• Acumulador (AC). Se ha añadido este registro a la salida
de la ALU porque esta debe compartir el bus.
• Multiplexor a la entrada de la ALU porque esta debe
transferir datos tanto de los registros como de los 8 bits
menos significativos del registro IR a MAR en el caso de
direccionamiento absoluto.
Descripción RT de los nuevos
componentes del CS2
WR MEMDAT[A7-0]← D7-0:=
W R
SISTEMA DE MEMORIA DE DATOS 00 MEMDAT[A7-0] H.I.
(MEMDAT) 01 MEMDAT[A7-0] MEMDAT[A7-0]
D7-0 A7-0 10 D7-0 DATA
11 PROHIBIDO ----
8 8
8
8 W I/O* MDR← IB:= EB:=
W MAR ← OUT:=
IN I/O* EB 00 MDR H.I. MDR
W MAR 0 MAR MAR MDR 01 MDR MDR H.I.
OUT 1 IN MAR W IB 10 IB IB H.I.
8 11 EB H.I. EB
8
8 WR AC ← OUT:=
R IN
AC 00 AC H.I.
W OUT 01 AC AC
8
10 IN H.I.
11 IN AC
Ejemplo de ejecución de instrucciones: ST(Rb),Rf
( MEMDAT(Rb) Rf )
: Registro visible
: Registro oculto
COMANDOS A LA UNIDAD DE DATOS START
UNIDAD DE CONTROL
STOP I15-8
IR 1 3 -10
IR 13-11 83
B 8 8
SB IR2-0 IR7- 0
FICHERO 3
0 1S INM
DE 8
A
REGISTROS S BUS A BUS B 8 WMEM RMEM
A IR1 0 - 8 IR W WIR
3
W Sw IN
A B CODE W R
ALU OP OP 14
2 SISTEMA DE MEMORIA DE DATOS
3 8 D13-0
RESULT (MEMDAT)
MEMORIA DE CÓDIGO A7-0
WREGIR1 0 - 8 D7-0
(MEMCOD)
8 A7-0
DATA 8 DATA_ADD 8
CODE_ADD
8 EB
I/O*MDR I/O*
CLPC MDR
CL WMAR W MAR
IPC I PC WMDR W IB
WAC W AC R RAC R
8 8 8
BUS COMPARTIDO
: Registro visible
: Registro oculto
COMANDOS A LA UNIDAD DE DATOS START
UNIDAD DE CONTROL
STOP I15-8
IR 1 3 -10
IR 13-11 83
B 8 8
SB IR2-0 IR7- 0
FICHERO 3
0 1S INM
DE 8
A
REGISTROS S BUS A BUS B 8 WMEM RMEM
A IR1 0 - 8 IR W WIR
3
W Sw IN
A B CODE W R
ALU OP OP 14
2 SISTEMA DE MEMORIA DE DATOS
3 8 D13-0
RESULT (MEMDAT)
MEMORIA DE CÓDIGO A7-0
WREGIR1 0 - 8 D7-0
(MEMCOD)
8 A7-0
DATA 8 DATA_ADD 8
CODE_ADD
8 EB
I/O*MDR I/O*
CLPC MDR
CL WMAR W MAR
IPC I PC WMDR W IB
WAC W AC R RAC R
8 8 8
BUS COMPARTIDO
: Registro visible
: Registro oculto
COMANDOS A LA UNIDAD DE DATOS START
UNIDAD DE CONTROL
STOP I15-8
IR 1 3 -10
IR 13-11 83
B 8 8
SB IR2-0 IR7- 0
FICHERO 3
0 1S INM
DE 8
A
REGISTROS S BUS A BUS B 8 WMEM RMEM
A IR1 0 - 8 IR W WIR
3
W Sw IN
A B CODE W R
ALU OP OP 14
2 SISTEMA DE MEMORIA DE DATOS
3 8 D13-0
RESULT (MEMDAT)
MEMORIA DE CÓDIGO A7-0
WREGIR1 0 - 8 D7-0
(MEMCOD)
8 A7-0
DATA 8 DATA_ADD 8
CODE_ADD
8 EB
I/O*MDR I/O*
CLPC MDR
CL WMAR W MAR
IPC I PC WMDR W IB
WAC W AC R RAC R
8 8 8
BUS COMPARTIDO
8 8 8
BUS COMPARTIDO
8 8 8
BUS COMPARTIDO
: Registro visible
: Registro oculto
COMANDOS A LA UNIDAD DE DATOS START
UNIDAD DE CONTROL
STOP I15-8
IR 1 3 -10
IR 13-11 83
B 8 8
SB IR2-0 IR7- 0
FICHERO 3
0 1S INM
DE 8
A
REGISTROS S BUS A BUS B 8 WMEM RMEM
A IR1 0 - 8 IR W WIR
3
W Sw IN
A B CODE W R
ALU OP OP 14
2 SISTEMA DE MEMORIA DE DATOS
3 8 D13-0
RESULT (MEMDAT)
MEMORIA DE CÓDIGO A7-0
WREGIR1 0 - 8 D7-0
(MEMCOD)
8 A7-0
DATA 8 DATA_ADD 8
CODE_ADD
8 EB
I/O*MDR I/O*
CLPC MDR
CL WMAR W MAR
IPC I PC WMDR W IB
WAC W AC R RAC R
8 8 8
BUS COMPARTIDO
formato 13 12 11 10 9 8 7 6 5 4 3 2 1 0
A
instrucción con código de operación registro destino Dirección del dato
operando registro
Ejemplo de ejecución de instrucciones: LDS Rd,dir
1. AC←REG[IR7-0] OP1OP0WAC INM (Rd MEMDAT(dir))
: Registro visible
: Registro oculto
COMANDOS A LA UNIDAD DE DATOS START
UNIDAD DE CONTROL
STOP I15-8
IR 1 3 -10
IR 13-11 83
B 8 8
SB IR2-0 IR7- 0
FICHERO 3
0 1S INM
DE 8
A
REGISTROS S BUS A BUS B 8 WMEM RMEM
A IR1 0 - 8 IR W WIR
3
W Sw IN
A B CODE W R
ALU OP OP 14
2 SISTEMA DE MEMORIA DE DATOS
3 8 D13-0
RESULT (MEMDAT)
MEMORIA DE CÓDIGO A7-0
WREGIR1 0 - 8 D7-0
(MEMCOD)
8 A7-0
DATA 8 DATA_ADD 8
CODE_ADD
8 EB
I/O*MDR I/O*
CLPC MDR
CL WMAR W MAR
IPC I PC WMDR W IB
WAC W AC R RAC R
8 8 8
BUS COMPARTIDO
: Registro visible
: Registro oculto
COMANDOS A LA UNIDAD DE DATOS START
UNIDAD DE CONTROL
STOP I15-8
IR 1 3 -10
IR 13-11 83
B 8 8
SB IR2-0 IR7- 0
FICHERO 3
0 1S INM
DE 8
A
REGISTROS S BUS A BUS B 8 WMEM RMEM
A IR1 0 - 8 IR W WIR
3
W Sw IN
A B CODE W R
ALU OP OP 14
2 SISTEMA DE MEMORIA DE DATOS
3 8 D13-0
RESULT (MEMDAT)
MEMORIA DE CÓDIGO A7-0
WREGIR1 0 - 8 D7-0
(MEMCOD)
8 A7-0
DATA 8 DATA_ADD 8
CODE_ADD
8 EB
I/O*MDR I/O*
CLPC MDR
CL WMAR W MAR
IPC I PC WMDR W IB
WAC W AC R RAC R
8 8 8
BUS COMPARTIDO
8 8 8
BUS COMPARTIDO
8 8 8
BUS COMPARTIDO
MEMORIA DE DATOS
Programa LD R3,(R0) Pos contenido
MEMORIA DE CÓDIGO
LD R3,(R0) LD R4,(R1)
$00 .....
LD R4,(R1) ST (R1),R3 $Posición contenido .....
ST (R1),R3 ST (R0),R4
$00 001 011-----000 R0 DATO1TABLA1
ST (R0),R4 ADD R0,R2
$01 001 100-----001 R0+1 DATO2TABLA1
ADD R0,R2 ADD R1,R2
$02 000 011-----001 R0+2 DATO3TABLA1
ADD R1,R2 LD R3,(R0)
$03 000 100-----000 R0+3 DATO4TABLA1
LD R3,(R0) LD R4,(R1)
$04 100 000-----010 … ...
LD R4,(R1) ST (R1),R3
$05 100 001-----010 R1 DATO1TABLA2
ST (R1),R3 ST (R0),R4
… ... R1+1 DATO2TABLA2
ST (R0),R4 ADD R0,R2
$18 11 --- --- R1+2 DATO3TABLA2
ADD R0,R2 ADD R1,R2
R1+3 DATO4TABLA2
ADD R1,R2 STOP
...
Índice
1. Limitaciones de la calculadora simple
2. El Computador Simple 1 (CS1)
(concepto de Programa almacenado en memoria)
51
Limitaciones del computador CS2
• El computador simple 2 presenta muchas limitaciones:
Imposibilidad de realizar saltos en la ejecución del programa
Ausencia de variables de estado que informen del resultado de
las operaciones,
No permite direccionamiento inmediato
etc
• Se propone una nueva arquitectura pensada para
solventar estas deficiencias: el CS2010.
– SR (Status Register):
Dan información sobre el tipo de resultado de la última operación realizada
en la ALU: Z (cero), V (desbordamiento), N (negativo) y C (carry/borrow).
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
código de operación
Formato de instrucciones del CS2010
A registro fuente
instrucción - - - - - (registro base
con operando en ST/LD)
registro
registro destino
B (fuente en ST)
instrucción código de operación
con operando dato inmediato / dirección del dato
memoria o
inmediato
C condición de
instrucción dirección de salto
salto
de salto
Códigos de operación CS2010
Bits del código
de operación NEMÓNICO FORMATO TIPO SINTAXIS EFECTO1 VCNZ2
15 14 13 12 11
0 0 0 0 0 ST A memoria ST (Rbase),Rfuente MEM[Rbase]←Rfuente ----
0 0 0 0 1 LD A memoria LD Rdestino,(Rbase) Rfuente←MEM[Rbase] ----
0 0 0 1 0 STS B memoria STS dirección,Rfuente MEM[dirección]←Rfuente ----
0 0 0 1 1 LDS B memoria LDS Rdestino,dirección Rfuente←MEM[dirección] ----
0 0 1 0 0 CALL C salto CALL dirección MEM[SP]←PC,SP←SP-1, PC←dirección ----
0 0 1 0 1 RET - salto RET PC←MEM[SP+1],SP←SP+1 ----
0 0 1 1 0 BRxx C salto BRxx dirección xx:PC←dirección ----
0 0 1 1 1 JMP C salto JMP dirección PC←dirección ----
0 1 0 0 0 ADD A aritmético/lógica ADD Rdestino,Rfuente Rdestino←Rdestino+Rfuente ****
0 1 0 0 1 - - - - no documentado UUUU
0 1 0 1 0 SUB A aritmético/lógica SUB Rdestino,Rfuente Rdestino←Rdestino-Rfuente ****
0 1 0 1 1 CP A estado CP Rdestino,Rfuente NOP ****
0 1 1 0 0 - - - - no documentado UUUU
0 1 1 0 1 - - - - no documentado UUUU
0 1 1 1 0 - - - - no documentado UUUU
0 1 1 1 1 MOV A movimiento de datos MOV Rdestino,Rfuente Rdestino←Rdestino ----
1 0 0 0 0 - - - - no documentado UUUU
1 0 0 0 1 - - - - no documentado UUUU
1 0 0 1 0 CLC - estado CLC NOP ---*
1 0 0 1 1 SEC - estado SEC NOP ---*
1 0 1 0 0 ROR AoB desplazamiento ROR Rdestino Rdestino←SHR(Rdestino,C) ****
1 0 1 0 1 ROL AoB desplazamiento ROL Rdestino Rdestino←SHL(Rdestino,C) ****
1 0 1 1 0 - - - - no documentado UUUU
1 0 1 1 1 STOP - especial STOP lleva el procesador a espera ----
1 1 0 0 0 ADDI B aritmético/lógica ADDI Rdestino,dato Rdestino←Rdestino+dato ****
1 1 0 0 1 - - - - no documentado UUUU
1 1 0 1 0 SUBI B aritmético/lógica SUBI Rdestino,dato Rdestino←Rdestino-dato ****
1 1 0 1 1 CPI B estado CPI Rdestino,dato NOP ****
1 1 1 0 0 - - - - no documentado UUUU
1 1 1 0 1 - - - - no documentado UUUU
1 1 1 1 0 - - - - no documentado UUUU
1 1 1 1 1 LDI B movimiento de datos LDI Rdestino,dato Rdestino←dato ----
1
(sin tener en cuenta el registro de estado y el incremento del PC)
2
El caracter '-' denota “no modificado”, '*' denota “modificado de forma definida”, 'U' denota “no documentado”
Códigos de operación CS2010
Bits del código
de operación NEMÓNICO FORMATO TIPO SINTAXIS EFECTO1 VCNZ2
15 14 13 12 11
0 0 0 0 0 ST A memoria ST (Rbase),Rfuente MEM[Rbase]←Rfuente ----
0 0 0 0 1 LD A memoria LD Rdestino,(Rbase) Rfuente←MEM[Rbase] ----
0 0 0 1 0 STS B memoria STS dirección,Rfuente MEM[dirección]←Rfuente ----
0 0 0 1 1 LDS B memoria LDS Rdestino,dirección Rfuente←MEM[dirección] ----
0 0 1 0 0 CALL C salto CALL dirección MEM[SP]←PC,SP←SP-1, PC←dirección ----
0 0 1 0 1 RET - salto RET PC←MEM[SP+1],SP←SP+1 ----
0 0 1 1 0 BRxx C salto BRxx dirección xx:PC←dirección ----
0 0 1 1 1 JMP C salto JMP dirección PC←dirección ----
0 1 0 0 0 ADD A aritmético/lógica ADD Rdestino,Rfuente Rdestino←Rdestino+Rfuente ****
0 1 0 0 1 - - - - no documentado UUUU
0 1 0 1 0 SUB A aritmético/lógica SUB Rdestino,Rfuente Rdestino←Rdestino-Rfuente ****
0 1 0 1 1 CP A estado CP Rdestino,Rfuente NOP ****
0 1 1 0 0 - - - - no documentado UUUU
0 1 1 0 1 - - - - no documentado UUUU
0 1 1 1 0 - - - - no documentado UUUU
0 1 1 1 1 MOV A movimiento de datos MOV Rdestino,Rfuente Rdestino←Rdestino ----
1 0 0 0 0 - - - - no documentado UUUU
1 0 0 0 1 - - - - no documentado UUUU
1 0 0 1 0 CLC - estado CLC NOP ---*
1 0 0 1 1 SEC - estado SEC NOP ---*
1 0 1 0 0 ROR AoB desplazamiento ROR Rdestino Rdestino←SHR(Rdestino,C) ****
1 0 1 0 1 ROL AoB desplazamiento ROL Rdestino Rdestino←SHL(Rdestino,C) ****
1 0 1 1 0 - - - - no documentado UUUU
1 0 1 1 1 STOP - especial STOP lleva el procesador a espera ----
1 1 0 0 0 ADDI B aritmético/lógica ADDI Rdestino,dato Rdestino←Rdestino+dato ****
1 1 0 0 1 - - - - no documentado UUUU
1 1 0 1 0 SUBI B aritmético/lógica SUBI Rdestino,dato Rdestino←Rdestino-dato ****
1 1 0 1 1 CPI B estado CPI Rdestino,dato NOP ****
1 1 1 0 0 - - - - no documentado UUUU
1 1 1 0 1 - - - - no documentado UUUU
1 1 1 1 0 - - - - no documentado UUUU
1 1 1 1 1 LDI B movimiento de datos LDI Rdestino,dato Rdestino←dato ----
1
(sin tener en cuenta el registro de estado y el incremento del PC)
2
El caracter '-' denota “no modificado”, '*' denota “modificado de forma definida”, 'U' denota “no documentado”
Códigos de condición de la instrucción de
salto condicional BRXX (Branch if)
nmónico(s)
I10 I9 I8 CONDICIÓN de la condición notas
0 0 0 Z ZS, EQ será cierta justo tras realizar la resta A-B si y solo si A=B
será cierta justo tras realizar la resta A-B si y solo si A<B
0 0 1 C CS, LO asumiendo notación base 2 sin signo
será cierta si y solo si el dato recién calculado no es
0 1 0 V VS representable en notación base 2 sin signo
será cierta justo tras realizar la resta A-B si y solo si A<B
0 1 1 N xor V LT asumiendo notación complemento a 2
1 - - ? - estas condiciones no están definidas y no deben utilizarse
NOTAS:
• La condición Z con el mnemónico “ZS” no existe en AVR, por lo que BRZS no podrá ser
ensamblada en AVR
• La condición V con el mnemónico “VS” es para números CON signo
Arquitectura propuesta para el CS2010
V N Z C
8 8 8 8 8
BUS COMPARTIDO
CS2
Arquitectura del CS2
Arquitectura propuesta para el CS2010
Nuevo
V N Z C
8 8 8 8 8
BUS COMPARTIDO
Registros “ocultos al programador”
de la arquitectura del CS2010
A B
4 SIN ALU OP
4
SOUT RESULT Cin XOR A7
8
V N Z C
IDCR SP ← OUT:=
I SP C 0000 SP HI
D OUT R 0001 SP SP
8
0010 0 HI
0100 SP-1 HI
1000 SP+1 HI
OTRAS PROHIBIDAS
8 8 8 8 8
BUS COMPARTIDO
Ejemplo de secuencia de microoperaciones de
la instrucción CALL dirección (Llamada a subrutina)
CICLO MEM(SP) PC; SP SP-1; PC dirección
8 8 8 8 8
BUS COMPARTIDO
Nota
67
Ejemplo de programación en ensamblador del
CS2010
Ejemplo 1. Escriba una subrutina para el cálculo de la
multiplicación mediante el algoritmo de sumas sucesivas.
; Ejemplo 1:
; multiplica los datos de los registros R1 y R2
; y devuelve el resultado en R0 (truncando a 8 bits)
; sumo el dato de R1 tantas veces como diga R2
; Ejemplo 2:
; devuelve en R0 el mayor de los datos almacenados
; en los registros R1 y R2
; Ejemplo 3:
; Rellena una tabla en orden descendente, del 100 a 1
; la tabla empieza en la dirección 123
71
Cartas ASM del CS2010
Cartas ASM del CS2010 (ii)
Cartas ASM del CS2010 (iii)
Cartas ASM del CS2010 (iv)
Cartas ASM del CS2010 (v)