Sei sulla pagina 1di 7

ventajas y desventajas de CISC vs RIESC:

CISC:
Ventajas:
- Facilidad de programacion.
-Facilidad de implementacion del conjunto de instrucciones.
-Puede se rmenor la complejidad al cmpilar.

Descventajas:
-La complejidad del conjuntode instrucciones crece.
-Las instrucciones de longitud variable reducen el rendimiento del sistema.
-Inclusion de instrucciones que raramente se usan.

RISC:
Ventajas:
-Se incrementa la velocidad debio a un conjunto de instrucciones mas simple.
-HW mas simple debido a que instrucciones mas simples requieren menos espacio en el
chip.

Desventajas:
-Se incrementa el tama�o del codigo.
-La depuracion de los programas se hace mas dificil.

"Lenguajes de alto nivel vs lenguajes de bajo nivel"

�Visual basic, delphi, c#, cto:


Ventajas:
-Mejor presentacion.
-Buena relacion de tiempo invertido y resultado.

Desventajas:
-Se requieren "grandes maquinas".

�Fortran, Basic, Pascal, Cabol:


Ventajas:
-Balance adecuado entre complejidad y facilidad de usuario.
Desventajas:
-Dedicacion especial a ramas de la ciencia.

�Java, C:
Ventajas:
-Facilidad de crear nuevos comandos.
Desventajas:
-Requiere ser programador.

�Ensamblador:
Ventajas:
-Lenguaje corto y rapido.
-Todos los recursos del sistema estan disponibles.
Desventajas:
-No es transportable.

MODELO DE PROGRAMACION:
1-. Llega la instruccion.
2-. Se decofica.
3-. Lo que se va a almacenar o sacar se guarda en B.
4-. El monto almacenado o sacado se suma o resta del almacen A.
REGISTROS DISPONIBLES:

nuevo tema:

El modelo de programacion contiene registros de distintos tama�os(8, 16, 32, 64


bits).
Los registros de 8 bits AL, AH, BL, BH, CL, CH, DL y DH son referidos cuando una
instrucion usa una designacion de 2 letras, por ejemplo: ADD AL, AH ---> Suma AL y
AH y deja el resultado en AL.
En los registros de 16, 32 y 64 es el mismo principio, considerando que la peracion
sale es valida con registros del mismo tama�o.

REGISTROS DE PROPOSITOS MULTIPLES:

AX es usado por instrucciones como sumas, multiplicaciones, dividir


(Acumulador) y algunas instrucciones de ajuste.

BX Algunas veces contiene el offset de alguna direccion de memoria.


(Indice base)

CX LLeva la cuenta en ciclos o instrucciones de repeticion.


(Contador)

DX Guarda resultados de multiplicacio y division. en ciertos casos


contiene datos para
(Datos) ser usados por interrupciones.

BP Apunta a una direccion de memoria.


(Apuntador base)

DI Guarda el destino de una cadena (string).


(Indice destino)

SI como DI.
(Indice fuente)

RFLAG 15 14 13 12 11 10 9 8 7 6 5
4 3 2 1 0
(Registro banderas) -- -- -- -- 0 D I T S Z
-- A -- P -- C

c:\TASM>TASM heelo.asm
Ensambla y les crea hello.obj
c:\TASM>tlink /p hello.obj
Crea

selectores y descriptores:
existen dos tablas de descriptores utilizadas con los registros de segmento: una
contiene los descriptores globales y otra los descriptores locales.

CS= 0033h
hex= x33 bin= 00110011
0110 0 11
6 global priv=3

descriptor= 013FFDC8; privilegio= 3;

CS=002DH

hex= 2D bin= 00101101


00101 1 01
5 local 1

descriptor= 01D88F6; privilegio=1;

segmentos:

CS---> segmento de codigo


SS---> segmeto de pila
DS---> segmento de datos
ES---> segmento extra

MOV AX:[40h]
DS:[40h]

guia de examen:

diferencias entre CISC y RISC


Diferencias entre Harvard y Neuman
Cual es para intel CISC o Neumann
Tma�os y funciones de los registros y cual contiene a cual
Registros de segmentos(CS DS SS ES)
Significado de las banderas
Tama�o de direccion en memoria

ejercicios:
modo real: en este un ejemplo: MOV AL,CS:[BX+DI+3] BX= 200h, CS= 7000h, DI=05h,
DS=8000h.
CS= 70000 <---- se le agrega un cero al que este al lado
del AL que en este caso es el que se quiere sacar el resultado
entonces haces la suma de CS+BX+DI+3= 70000h + 200h + 05h +
03h= 70208h.

Modo protegido: MOV AL,CS:[BX+DI+3] CS=0023h -------> 0010 0011


de aqui se agarran los primeros dos bits del lado
derecho osea el 11. estos dos bits te dicen el privilegio
el tercer bit te dice si va a ser de la tabla global o
tabla local si es 0= tabla global y si es 1=tabla local.
y los bits que resten te diran que numero es en la
tabla que haya sido.
en este ejemplo es de privilegio 3, tabla global y es
el numero 4 de la tabla global.
013FF7A6 despues de sacar el valor de CS se le suma el
BX, DI, +3 que esto seria igual a: 013FF7A6 + 200+ 5+3= 0133FF9AE

diferencias entre el CISC y RISC:


el CISC es mas facil para programar, facilidad de implementacion del conjunto de
instrucciones.
RISC se incrementa la velocidad debido a un conjunto de instrucciones mas simples,
menos espacio en el chip.
el CISC reduce el rendimiento del sistema mientras el RISC se incrementa el tama�o
del codigo.

diferencias entre el harvard y el neuman


la arquitectura de neuman es el cpu manda a memoria y luego regresa la instruccion
de datos.
neuman esta muy limitado ya que tiene que meterse varias veces a la memoria para
buscar una instruccion compleja
el harvard esta conectado a dos memorias por 2 buses separados y los buses son
independientes y pueden ser de diferentes anchos.puede ejecutar mas de una
instruccion a la vez una desventaja es que las instriccuines especiales tienen que
ser indicadas especificamente.

cual es para intel CISC o Neuman:


intel utiliza neuman ya que tiene que captar mas instrucciones y con neuman puede
hacer varias a la vez.

tama�os y funciones de los registros y cual contiene a cual

registros de segmentos (CS, DS, SS, ES)

CS---> segmento de codigo


SS---> segmeto de pila
DS---> segmento de datos
ES---> segmento extra

significado de banderas
0=C C= carry
2=P P= paridad
4=A A= carry auxiliar
6=Z Z= Zero
7=S S=Sign
8=T T= trayecto
9=I I= Interrupt
10=D D= Direccion
11=O O= Overflow

"PARCIAL 2"

MUL ---> Multiplicacion sin signo

cuando el operando es de 1 byte


AX= AL* Operando
Cuando el operando es de Word
(DX AX) = AX * Operando

tipos de multiplicaciones:
8 bits byte B
16 bits Word W
32 bits Double Word D
64 bits Quad Word

ejemplos:
1-.
MOV AL, 0C8h
MOV BL, 4h
mul bl ; RESULTADO= AX= 0320h

2-.
MOV AX, 76C8h
MOV BX, 0004h
MUL BX

IMUL se usa para multiplicar con signos.

DIV: Division sin signo


Cuando el operando es de tama�o byte
AX*Operando
AX de 16 y Operando de 16.
AL= AX/Operando; AH=Residuo.
Cuando el operando es de tama�o word
AX=DX AX/ operando
DX= Residuo.
____AL______ ___AX_______
Operando 8 bits|AX Operando 16 bits|(DXAX)
AH DX

Escriba un programa en ensamblador que tome un numero de la localidad 200h y diga


si es par o impar

MOV AX, 0321h


MOV BL, 04h
DIV BL

AL= C8h
AH=1

LOOP= decrementa CX en 1 y brinca a ETIQUETA si no es 0

ejemplo:
MOV CX, 100
AQUI=ETIQUETA.
el codigo que se desea repetir va dentro de mov cx y LOOP etiqueta

LOOP ETIQUETA.

todo esto del loop es un ciclo lo que hace cada vez que termina el ciclo resta un 1
al valor de cx y luego vuelve a hacer el ciclo si y solo si el cx no queda en 0

ejercicio: Escriba un programa en ensamblador que obtenga el promedio de 10 numeros


en memoria.

procedimientos:
PROC ---> Es una instruccion que permite se�alar el inicio de un procedimiento o
subrutina.
ENDP----> Indica el final del procedimiento.

sintaxis:
nombreProcedimiento PROC atributo
.
.
.
RET
NombreProcedimiento ENDP

El atributo puede ser NEAR o FAR.

ejemplo:
.model small
.data
.stack 100h
.code
.startup
.
.
.
mov bx, offset EJEMPLO
call bx
mov ah, 4Ch
int 21h

EJEMPLO PROC NEAR


.
.
.
RET
EJEMPLO ENDP

END

Funciones logicas:
MOV AH, 10101100b
AND ---> AH, 00001111b --> AH= 00001100b ;/ HACE MULTIPLICACION CON MOV AH Y UN
CERO EN AND ES CERO DE SALIDA
OR ---> AH, 11110000b --> AH= 11111100b ;/DEJA LOS PRIMEROS 4 NUMEROS EN UNOS
Y LOS OTROS 4 LOS DEJA COMO LOS TRAIA MOV AH
NOT ---> AH, --> 01010011b ;/ INVIERTE LOS VALORES DE MOV AH

MODO VIDEO (PIXELES)


Para mandar llamar a este modo, se utilizan las instrucciones:
mov ah,0 /*Ah=0 Init VideoMode*/
mov al, 13h/*Modo 13h*/
int 10h/*llamada a int 10h*/

MACROS

Las macros son instalaciones complejas de instrucciones mas sencillas,


sirven cuando se quieren hacer procesos repetitivos (como los procesos)
Sirven para:
-ahorrar codigo en procesos repetitivos
-menos errores al realizar procesos repetitivos
-Permite hacer uso de variables que son pasados como parametros
Las macros se definen al principio del programa antes de .model
sintaxis

nombremacro MACRO [parametros] ;Los parametros son opcionales


instrucciones
ENDM ;fin de la macro

EJ:

inicio MACRO
movax,@data ;definicion de
mov ds, ax ;la macro
ENDM
.model small
.stack 100
.data
.code
.startup
inicio ;Uso de la macro
end

Potrebbero piacerti anche