PARIDAD 2003

download PARIDAD 2003

of 13

Transcript of 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: