Sie sind auf Seite 1von 12

Arquitectura De Computadores

Repertorio de Instrucciones

Tutor:

Anyelo Gerley Quintero

Estudiante:

Fabio Fernando Ziga Lpez -16070833

Universidad Nacional Abierta y a Distancia


Escuela de Ciencias Bsicas Tecnologa e Ingeniera
Ingeniera De Sistemas

Bogota Dc.
Mayo
2017
2

Introduccin

En este trabajo se presenta los conceptos de la unidad 3 sobre lenguaje de

maquina (modos de direccionamiento, instrucciones tpicas y lenguaje assembler), el

paralelismo donde se explican los sistemas multicore, los clusters y la computacin

vectorial, a travs de representacin grfica y evidencias del cdigo desarrollado.


3

Objetivos

Explicar por medio de un grfico las instrucciones tipo salto

Conocer las sentencias utilizadas en el cdigo ensamblador

Desarrollar cdigo en lenguaje ensamblador para la ejecucin de dos programas

que realicen determinadas funciones algebraicas.


4

Contenido

Desarrollo de la actividad. .......................................................................................................... 5


Grafico Instrucciones tipo salto ....................................................................................... 5
Cdigo en lenguaje ensamblador Lectura de un nmero ........................................ 7
Cdigo en lenguaje ensamblador Multiplicacin de dos nmeros ......................... 9
Conclusiones............................................................................................................................... 11
Referencias bibliogrficas ......................................................................................................... 12
5

Desarrollo de la actividad.

Para el inicio del desarrollo de esta actividad se realiza una representacin grfica

donde se explica en que consiste las instrucciones tipo salto del Lenguaje Ensamblador

(Direcciones corta, cercana y lejana, etiquetas, saltos incondicionales, saltos

condicionales, instrucciones de testeo, decisiones y bucles)

Grafico Instrucciones tipo salto


6

Ejemplo de salto condicional: Saltos con base en datos y sin signo: Registro de Banderas: 16 bits, barias
JE/JZ salta si es igual o salta si es igual a cero JNE/JNZ salta si instrucciones ponen a 1 para indicar el
Una Operacin de salto alcanza una MOV AX, 1111h no es igual o salta si no es igual a cero
La instruccin de salto condicional transfiere el control dependiendo de las estado de una operacin
direccin cercana por medio de un MOV BX, 1112h JA/JNBE bifurca si es mayor o salta si no es menor o igual
configuraciones en el registro de banderas:
desplazamiento de una palabra, CMP AX, BX; AX es menor que BX JAE/JNB salta si es mayor o igual o salta si no es menor JB/JNAE
limitado a una distancia de -32768 a 0C Acarreo
Etiqueta: Jnnn (direccin corta) JB tirapalante; Saltar a tirapalante salta si es menor o salta si no es mayor o igual JBE/JNA salta si es
32767 bytes. 1
Compara los valores de 2 banderas y luego salta dependiendo de estos HLT; Esta orden bloquea el ordenador, halt menor o igual o salta si no es mayor
2P Paridad
tirapalante: DEC BX; Ahora BX valdr 3
1111h Saltos con base en datos con signo:
JE/JZ salta si es igual o salta si es igual a cero JNE/JNZ 4A Acarreo auxiliar
CMP AX, BX; Ahora valen igual 5
JNE Acaba; No saltar, ya que son iguales salta si no es igual o salta si no es igual a cero JG/JNLE
6 Z Cero
Una Operacin de salto alcanza salta si es mayor o salta si no es menor o igual
Ejemplo: NEAR y JE Continua; Esta vez si 7 S Signo
una direccin corta por medio de JGE/JNL salta si es mayor o igual o salta si no es menor
FAR: Continua: DEC BX; Ahora BX vale 1110h 8T Trampa
un desplazamiento de un Byte, JL/JNGE salta si es menor o salta si no es mayor o igual
Corta y BEGIN PROC CMP AX, BX 9 I Interrupcin

Lejana
JLE/JNG salta si es menor o igual o salta si no es mayor

Cercana
limitado a una distancia de - 128 cercana FAR JE Acaba; No son iguales, por tanto no 10 D Direccin
a 127 bytes. posterior a CALL B10 saltar 11 O Desbordamiento
80386 JB Acaba; No es menor, tampoco salta 12
Saltos con base en condiciones especiales:
La instruccin MOV AX, 4C00H JG Acaba; Es mayor, ahora SI saltar 13
JS salta si el signo es negativo
CALL es un salto INT 21H Acaba: XOR AX, AX 14
JNS salta si el signo es positivo
condicional que MOVBEGIN
AX, 01ENDP XOR BX, BX; AX y BX valen ahora cero. 15
Una direccin lejana puede estar en Corta JC salta si hay acarreo (igual que JB)
va acompaado ;********
otro segmento y es alcanzada por Corta, JNC salta si no hay acarreo
de RET el cual B10 PROC NEAR
medio de una direccin de segmento cercana y JO salta si hay desbordamiento JNO
regresa al CALL C10

Corta
y un desplazamiento lejana salta si no hay desbordamiento
procedimiento de
JP/JPE salta si hay paridad o salta si la paridad es par JNP/JPO
donde fue RET
salta si no hay paridad o salta si la paridad es impar
llamado, es una B10 ENDP
instruccin ;*******
cercana y lejana, C10 PROC NEAR
de esto depender Reglas de etiquetas:
al Cadena de caracteres donde los 15 primeros son significativos. CMP compara si dos valores son iguales o
cdigo objeto Puede ser cualquier cdigo ASCII mayor de 32 (espacio), salvo diferentes contenidos en un registro. Su
que se genere. caracteres especiales. funcionamiento es similar al de la instruccin
JMP A90
Direcciones El primer carcter no puede ser nmero o smbolo. Mayscula y SUB (restar), slo que no modifica el operando
minscula se consideran diferentes. Tiene que estar en la primer de destino, solamente modifica las banderas de
columna de texto, salvo que termine :
A90: MOV AH, 00 . signo (AF), (OF), (PF), (SF), (ZF) y (CF).
Corta, Corta Ejemplo: etiquetas validas: Ejemplo:
Realiza el programa en un
cercana Salto, inicio, regresa.Bucle_1, LAZO3 Ejemplo: CMP BX, 00, compara a BX con
bucle infinito. Los dos (:)
etiquetas no validas: cero JZ B50; si es cero salta a B50
Es para darle el atributo de lejana 1salto, inicio/, 1const_&3.
cercana, dentro de un
Etiquetas de
instrucciones MOV BX, 01 B50: destino del salto si BX es cero
procedimiento en el mismo MOV DX, 01
segmento de cdigo MOV CX, 10
A90: INC AX TEST realiza la operacin AND de los
Etiqueta de LOOP ADD BX, AX operandos especificados sin que el
JMP (salto (Bucle) SHL DX, 01
incondicional)
instrucciones LOOP A20 Realiza
resultado se almacene en algn registro,
Ejemplo modificando nicamente ciertas banderas.
Ejemplo el programa en solo 10 La etiqueta es un nombre dado por el Su aplicacin ms comn es la de probar si
vueltas ya que programador, la cual define posiciones algn bit es cero.
el loop utiliza a CX de memoria especficas o valores Ejemplo:
decrementando y para constantes Test AL, 1
cuando este es cero (0) Esta instruccin prueba si el bit menos
significativo de AL es 1 y
Test AL, 128
Prueba si el bit ms significativo de AL es
1.
Utilizando un lenguaje ensamblador en este caso el Turbo Assembler, se

desarrollaron dos programas en el primero se hizo un cdigo que permite leer un

nmero de un digito por teclado y determinar si el nmero es par, impar o cero y en el

segundo se desarroll un cdigo que permite la multiplicacin de dos nmeros a travs

de sumas sucesivas y una potencia a travs de multiplicaciones sucesivas.

Cdigo en lenguaje ensamblador Lectura de un nmero

model small sub al,30h


.stak 64 mov var1,al
.data mov al,0h
var1 db
msg1 db 'Ingrese Numero:$' cmp var1,al
msg2 db '=> El Numero Ingresado es ja mayor
Positivo:$' jb menor
msg3 db '=> El Numero Ingresado es je igual
Negativo:$' mayor:
msg4 db '=> El Numero Ingresado es
Cero:$' mov ah,09h
.code lea dx,msg3
start int 21h
mov ah,09h jmp salir
lea dx, msg1 menor:
int 21h mov ah,09h
lea dx,msg2
mov ah,01h int 21h
int 21h jmp salir
8

igual: jmp salir


mov ah,09h salir:
lea dx,msg4 .exit
int 21h end
9

Cdigo en lenguaje ensamblador Multiplicacin de dos nmeros

.model small; sub cl,1


.stack 100; ;*****************Multiplicacion
.data repetir:
msj1 db 'Numero 1 y Potencia:','$' add al,var2
msj2 db 13,10,'Numero 2 y Base:','$' LOOP repetir
msj3 db 13,10,'Multiplicacion:','$' mov ah,09h
msj4 db 13,10,'Potencia:','$' lea dx, msj3
linea db 13,10,'$' int 21h
var1 db 0 mov dl,al
var2 db 0 add dl,30h
.code startup; mov ah,02h
call limpia int 21h
mov ah,09h ;***************Potencia
lea dx, msj1
int 21h mov cl,var1
call leer mov bl,var2
sub al,30h mov al,var2
mov var1,al sub cl,1
mov ah,09 repetir2:
lea dx, msj2 mul bl
int 21h LOOP repetir2
call leer mov ah,09h
sub al,30h lea dx, msj4
mov var2,al int 21h
mov cl,var1 mov dl,al
10

add dl,30h leer proc near


mov ah,02h mov ah,01h
int 21h int 21h
.exit ret
;************Procedimientos leer endp
salto proc near limpia proc near
mov ah,09h mov ah,00h
lea dx,linea mov al,03h
int 21h int 10h
mov dl,00h ret
ret limpia endp
salto endp end
11

Conclusiones

Se conocieron las instrucciones tipo salto en el lenguaje ensamblador y es la

forma ms bsica para programar un computador

El lenguaje ensamblador es ms que un tipo de lenguaje de bajo nivel en el cual

es empleado para crear programas informticos

Se debe tener en cuenta que dentro de las instrucciones tipo salto existen una

serie de operaciones registros los cuales se deben aplicar dependiendo de lo que se

quiera realizar
12

Referencias bibliogrficas

Rodriguez, L. (29 de 06 de 2016). Departamento de Informtica Aplicada,


Escuela universitaria de Informtica. Obtenido
dehttp://www.dia.eui.upm.es/asignatu/arq_com/Paco/1-Introduccion.pdf

Departamento de Ingeniera y Tecnologa de Computadores. (10 de 10 de


2013). Universidad de Murcia. Obtenido
dehttp://ditec.um.es/~jpujante/documentos/Tema4-slides.pdf

Das könnte Ihnen auch gefallen