You are on page 1of 12

Arquitectura De Computadores

Repertorio de Instrucciones

Tutor:

Anyelo Gerley Quintero

Estudiante:

Fabio Fernando Zúñiga López -16070833

Universidad Nacional Abierta y a Distancia
Escuela de Ciencias Básicas Tecnología e Ingeniería
Ingeniería De Sistemas

Bogota Dc.
Mayo
2017

el paralelismo donde se explican los sistemas multicore. instrucciones típicas y lenguaje assembler). a través de representación gráfica y evidencias del código desarrollado. los clusters y la computación vectorial. 2 Introducción En este trabajo se presenta los conceptos de la unidad 3 sobre lenguaje de maquina (modos de direccionamiento. .

3 Objetivos  Explicar por medio de un gráfico las instrucciones tipo salto  Conocer las sentencias utilizadas en el código ensamblador  Desarrollar código en lenguaje ensamblador para la ejecución de dos programas que realicen determinadas funciones algebraicas. .

.................. ............................................................................. 11 Referencias bibliográficas ..... 5  Código en lenguaje ensamblador “Lectura de un número” ........................................... 7  Código en lenguaje ensamblador “Multiplicación de dos números” ............................................ 4 Contenido Desarrollo de la actividad................................................................................................................................ 5  Grafico Instrucciones tipo salto ................... 12 ................................................. 9 Conclusiones.............................................................................................................

saltos condicionales. 5 Desarrollo de la actividad. instrucciones de testeo. Para el inicio del desarrollo de esta actividad se realiza una representación gráfica donde se explica en que consiste las instrucciones tipo salto del Lenguaje Ensamblador (Direcciones corta. decisiones y bucles)  Grafico Instrucciones tipo salto . etiquetas. cercana y lejana. saltos incondicionales.

halt menor o igual o salta si no es mayor 2P Paridad tirapalante: DEC BX. 01 B50: ……destino del salto si BX es cero procedimiento en el mismo MOV DX. Es mayor. AX y BX valen ahora cero. inicio. 1 cuando este es cero (0) Esta instrucción prueba si el bit menos significativo de AL es 1 y Test AL. 1 Compara los valores de 2 banderas y luego salta dependiendo de estos HLT. BX. compara a BX con bucle infinito. 15 Una dirección lejana puede estar en Corta JC salta si hay acarreo (igual que JB) va acompañado . No es menor. C10 PROC NEAR de esto dependerá … Reglas de etiquetas: al Cadena de caracteres donde los 15 primeros son significativos. BX. 1const_&3….128 cercana FAR JE Acaba. signo (AF). 00 …. No son iguales. AX operandos especificados sin que el JMP (salto (Bucle) SHL DX. . Corta. CMP compara si dos valores son iguales o código objeto Puede ser cualquier código ASCII mayor de 32 (espacio). sólo que no modifica el operando minúscula se consideran diferentes. posterior a CALL B10 saltará 11 O Desbordamiento 80386 … JB Acaba. Ahora BX vale 1110h 8T Trampa un desplazamiento de un Byte. Ahora valen igual 5 JNE Acaba. 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. Esta vez si 7 S Signo una dirección corta por medio de JGE/JNL salta si es mayor o igual o salta si no es menor FAR: Continua: DEC BX. Ejemplo el programa en solo 10 La etiqueta es un nombre dado por el Su aplicación más común es la de probar si vueltas ya que programador. JL/JNGE salta si es menor o salta si no es mayor o igual Corta y BEGIN PROC CMP AX. (ZF) y (CF). regresa….******* cercana y lejana. 01ENDP XOR BX. 6 Ejemplo de salto condicional: Saltos con base en datos y sin signo: Registro de Banderas: 16 bits. si es cero salta a B50 Es para darle el atributo de lejana 1salto. 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 Operación de salto alcanza salta si es mayor o salta si no es menor o igual Ejemplo: NEAR y JE Continua. LAZO3 Ejemplo: CMP BX. es una B10 ENDP instrucción . 01 incondicional) instrucciones LOOP A20 Realiza resultado se almacene en algún registro. Tiene que estar en la primer de destino. 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. (OF). ahora SI saltará 13 JS salta si el signo es negativo CALL es un salto INT 21H Acaba: XOR AX. cercana. Los dos (:) etiquetas no validas: cero JZ B50. inicio/. 128 Prueba si el bit más significativo de AL es 1. funcionamiento es similar al de la instrucción JMP A90 Direcciones El primer carácter no puede ser número o símbolo. Ejemplo modificando únicamente ciertas banderas. dentro de un Etiquetas de … instrucciones MOV BX. 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 Operación de salto alcanza una MOV AX. Esta orden bloquea el ordenador. JNC salta si no hay acarreo de RET el cual B10 PROC NEAR medio de una dirección 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. la cual define posiciones algún bit es cero. 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 (dirección corta) JB tirapalante. solamente modifica las banderas de … columna de texto.Bucle_1. salvo diferentes contenidos en un registro.******** otro segmento y es alcanzada por Corta. Su que se genere. el loop utiliza a CX de memoria específicas o valores Ejemplo: decrementando y para constantes Test AL. Corta Ejemplo: etiquetas validas: Ejemplo: Realiza el programa en un cercana Salto. 10 A90: INC AX TEST realiza la operación AND de los Etiqueta de LOOP ADD BX. 00. 4C00H JG Acaba. AX 14 JNS salta si el signo es positivo condicional que MOVBEGIN AX. BX 9 I Interrupción Lejana JLE/JNG salta si es menor o igual o salta si no es mayor Cercana limitado a una distancia de . por tanto no 10 D Dirección a 127 bytes. Mayúscula y SUB (restar). BX. (PF). tampoco salta 12 Saltos con base en condiciones especiales: La instrucción MOV AX. Saltar a tirapalante salta si es menor o salta si no es mayor o igual JBE/JNA salta si es 32767 bytes. (SF). caracteres especiales. CMP AX. 1111h no es igual o salta si no es igual a cero La instrucción de salto condicional transfiere el control dependiendo de las estado de una operación dirección cercana por medio de un MOV BX. salvo que termine “: “ A90: MOV AH. 01 segmento de código MOV CX.

Utilizando un lenguaje ensamblador en este caso el Turbo Assembler. msg1 menor: int 21h mov ah.01h int 21h int 21h jmp salir .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.al .09h lea dx.stak 64 mov var1.09h jmp salir lea dx.msg2 mov ah.data mov al.09h .30h . se desarrollaron dos programas en el primero se hizo un código que permite leer un número de un digito por teclado y determinar si el número es par. impar o cero y en el segundo se desarrolló un código que permite la multiplicación de dos números a través de sumas sucesivas y una potencia a través de multiplicaciones sucesivas.  Código en lenguaje ensamblador “Lectura de un número” model small sub al.code lea dx.msg3 start int 21h mov ah.

exit int 21h end .09h salir: lea dx. 8 igual: jmp salir mov ah.msg4 .

var2 sub al.var2 mov var1. 9  Código en lenguaje ensamblador “Multiplicación de dos números” .***************Potencia lea dx.'Multiplicacion:'.var2 msj2 db 13.'$' add al.09h msj4 db 13.data repetir: msj1 db 'Numero 1 y Potencia:'.30h mov al.02h call limpia int 21h mov ah.1 .1 mov ah.10.10.30h lea dx. msj2 mul bl int 21h LOOP repetir2 call leer mov ah.al .09h . msj3 linea db 13. sub cl.'Potencia:'.al var2 db 0 add dl.var1 mov dl.10.'$' mov ah.code startup. msj4 mov var2.*****************Multiplicacion .'$' LOOP repetir msj3 db 13.10. msj1 int 21h mov cl.al int 21h mov cl.09 repetir2: lea dx.model small.09h sub al. .'$' lea dx. mov ah.var1 call leer mov bl.30h .'$' int 21h var1 db 0 mov dl.al sub cl.stack 100.'Numero 2 y Base:'.

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

11 Conclusiones Se conocieron las instrucciones tipo salto en el lenguaje ensamblador y es la forma más básica para programar un computador El lenguaje ensamblador es más que un tipo de lenguaje de bajo nivel en el cual es empleado para crear programas informáticos 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 .

Departamento de Informática Aplicada.eui. Escuela universitaria de Informática. (29 de 06 de 2016). Obtenido dehttp://ditec.pdf .dia.um. L. Obtenido dehttp://www.pdf Departamento de Ingeniería y Tecnología de Computadores. Universidad de Murcia.upm. 12 Referencias bibliográficas Rodriguez.es/asignatu/arq_com/Paco/1-Introduccion.es/~jpujante/documentos/Tema4-slides. (10 de 10 de 2013).