Download - PARIDAD 2003
-
8/9/2019 PARIDAD 2003
1/13
PARIDADEquipo 7Equipo 7
Villanueva Martnez Yesenia NallelyVillanueva Martnez Yesenia Nallely
Olvera Hernndez MaribelOlvera Hernndez Maribel
Acevedo Chvez Jos ErnestoAcevedo Chvez Jos Ernesto
vila Puente Tomas Eduardovila Puente Tomas EduardoRomero lvarez AntonioRomero lvarez Antonio
Ortiz Alvarado Francisco JavierOrtiz Alvarado Francisco Javier
-
8/9/2019 PARIDAD 2003
2/13
EL FLAG DE PARIDADSe utiliza especialmente en la transmisin dedatos para la comprobacin de errores, ya quecomprueba si el resultado de la ltima operacin
aritmtica o lgica realizada tiene un nmeropar o impar de bits puestos a uno. Se pondr auno cuando haya un nmero par de bits, y a cerocuando sea impar.
Con una operacin and, ya que si el bit menossignificativo est a 1 el n seguro que es impar.
-
8/9/2019 PARIDAD 2003
3/13
* JMP: El formato de la instruccin es JMPdireccin. Provoca un salto incondicional, por lo
que se utiliza para seguir la ejecucin delprograma en otro punto, que puede serespecificando una etiqueta (salto directo) oespecificando una direccin (salto indirecto).Cuando incluimos instrucciones de salto en elprograma, indicamos la direccin del destino, yen caso de que el salto necesite especificar unvalor a sumar a IP, el ensamblador se encarga decalcular el desplazamiento desde el punto donde
se ejecuta el salto. En una instruccin JMP; elpropio ensamblador decide si debe generar unsalto corto o lejano: en el caso de que el destinoest en el rango de un byte con signo, se generaun salto corto, en caso contrario, se genera un
salto cercano.
-
8/9/2019 PARIDAD 2003
4/13
* JE: (Salto si igual). Es equivalente a JZ (Salto
si cero). El formato es: JE etiqueta. Salta a laetiqueta si el flag de cero es igual a uno(ZF=1). Se considera nmero con signo y sinsigno.
-
8/9/2019 PARIDAD 2003
5/13
* AND: Operacin "y lgico" a nivel de bit entre losdos operandos. El resultado se almacena en eldestino.
Formato AND destino, fuente.
0 0 - 00 1 - 01 0 - 01 1 - 1
Ejemplo:AND ax, bx ; AND lgico entre AX y BX. El resultado
queda en AX.
-
8/9/2019 PARIDAD 2003
6/13
* PUSH: Decrementa en 2 unidades el puntero
de la pila, es decir, decrementa en 2 unidadesel registro SP, y a continuacin almacena enla cima de la pila la palabra especificada en eloperando origen asociado a la
instruccin. Formato PUSH origen
Ejemplo: PUSH ax ;es equivalente a: SP =SP-2 // MOV ss:[sp], ax
-
8/9/2019 PARIDAD 2003
7/13
* CMP: Formato CMP destino, origen. (destino - origen) Estainstruccin realiza una resta de un operando origen sobre
un operando destino, pero con la particularidad de noalmacenar el resultado y no modificar ninguno de los 2operandos, pero si se modifican los bits de indicadores(Flags). Los operandos deben ser del mismo tipo.
Esta modificacin de los bits de indicadores, nos permitir
posteriormente, mediante la inspeccin de los mismos,poder realizar determinadas acciones. Normalmentedespus de una instruccin de comparacin (CMP), hayuna instruccin de salto.Ejemplo:
CMP ax, bx ; Comparamos AX con BX
-
8/9/2019 PARIDAD 2003
8/13
*RET
La instruccin RET echa fuera dos bytes de datos delstack y los mete en el registro contador deprograma. El programa contina entonces en lanueva direccin. Normalmente RET se empleaconjuntamente con CALL.Cdigo Objeto: C9Cantidad de Bytes: 1Ciclos de ejecucin: 10
Flags afectados: --Modos de direccionamiento: REGISTRO INDIRECTO
-
8/9/2019 PARIDAD 2003
9/13
El problema a resolver es:
Comprobar si un numero es par oimpar.
El cual se resolvi en el entornoEMU8086 con el uso de las
instrucciones anteriores, lasolucin se presenta
a continuacin:
-
8/9/2019 PARIDAD 2003
10/13
Este es el entorno 8086
-
8/9/2019 PARIDAD 2003
11/13
CodigoDSEG SEGMENT 'DATA'num dw 2;numero que se introducemsgp db 'El numero introducido es par.$'msgi db 'El numero introducido es impar.$'DSEG ENDS
SSEG SEGMENT STACK 'STACK'DW 100h DUP(?)SSEG ENDS
CSEG SEGMENT 'CODE'START PROC FAR;todo esto para terminar el programa con ret
PUSH DSMOV AX, 0PUSH AX; empieza programaMOV AX, DSEGMOV DS, AX
-
8/9/2019 PARIDAD 2003
12/13
mov bx,num ;pongo en bx el numero introducidoand bx,1 ; compruebo el bit 0cmp bx,1 ; si bx=1 es impar
je imparmov dx,offset msgp ; preparo el mensaje parjmp continuaimpar:mov dx,offset msgi ; preparo el mensaje imparcontinua:
mov ah,09h ; muestro el mensaje en pantallaint 21hRETSTART ENDP
;*******************************************
CSEG ENDS
END START ; set entry point.
-
8/9/2019 PARIDAD 2003
13/13
En este ejemplo el resultado
seria: