301302_60_momento4(1)

Upload: gabrielcordoba

Post on 21-Feb-2018

250 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 301302_60_Momento4(1)

    1/7

    Arquitectura de Computadores

    Trabajo Colaborativo 3

    PRESENTADO POR

    Jorge Osorio Meja. Cdigo: 71618675

    Jos Gabriel Chima M. Cdigo: 1.027.998.887

    Diego Andres Fuentes L. Cdigo: 1039099062

    GRUPO

    301302_60

    TUTOR:Anyelo Gerley Quintero

    UNIVERSIDAD ABIERTA Y A DISTANCIA

    2015

  • 7/24/2019 301302_60_Momento4(1)

    2/7

    INTRODUCCION

    El presente trabajo se hace con el fin de adquirir conocimientos sobre un tema

    muy interesante Lenguaje Assembler, se manejaran instrucciones, vamos a

    trabajar con grupos de caracteres alfanumricos que simbolizan ordenes, se

    creara un programa que nos va a permitir sumar, restar, multiplicar y dividir dos

    nmeros.

    OBJETIVOS

    Que el estudiante identifique y aprenda cmo funciona el Lenguaje Assembler,

    en sus diferentes facetas, instrucciones y comandos ms usados.

  • 7/24/2019 301302_60_Momento4(1)

    3/7

    DESARROLLO

    1. Explicar mediante un grfico en qu consiste el repertorio de instrucciones que se maneja en LenguajeAssembler y analizar cmo es la segmentacin (modos de direccionamiento, tipos de direccionamiento, pila, memoriainterna y memoria convencional).

  • 7/24/2019 301302_60_Momento4(1)

    4/7

    2. Presentar una tabla con 15 instrucciones del lenguaje Assembler explicando para que sirve cada instruccin. IndicarNombre de la instruccin, Sintaxis y un breve ejemplo

    Nro. Caracterstica InstruccinInstruc

    cinSintaxis Ejemplo

    1

    Aritmtica Suma: Suma

    los dos operandos yguarda el resultado en eloperando destino

    ADDADD destino,

    fuente

    ADD reg,inmediato ADD BYTE PTR [SI],35

    ADD reg,reg ADD BX,DXADD mem,reg ADD [BX],AX

    ADD reg,mem ADD AH,[BX]

    2Compara dos campos dedatos CMP CMP

    X CMP BX, 00 ; Compara Bx con ceroJZ B50 ;Si es cero salta aB50. ;(Accin si es diferente de cero)

    3

    Guarda en la cima de lapila 16 bits,decrementando en la pilaen dos bytes

    PUSHPUSH: reg16PUSH:mem16

    PUSH: CXPUSH:TABLA (SI)

    4Desplazar o rotar bitsdentro de un registro

    SHL SHL Shift left

    MOV CL, 03MOV AL, 10110111B; 10110111SHR AL, 01; 01101110 Un movimiento a la izquierda

    SHR AL, CL ; 01110000

    Tres movimientos msSHR AX, 03; Vlido para 80186 y procesadores posteriores

    El primer SHL desplaza el contenido de AI un bit hacia laizquierda

    5

    Incrementa Suma 1 alcontenido de un registro ode una posicin dememoria

    INC

    INC AX(AX=AX+1)

    INC DL(DL=DL+1)

    INC AX : (AX=AX+1)INC DL : (DL=DL+1)INC WORD PTR ES: (DI+4): Incrementa palabra contenida eses DI + 4

    4

  • 7/24/2019 301302_60_Momento4(1)

    5/7

    6

    Realiza una operacin deY lgico entre eloperando origen y eloperando destino.

    AND AND destino, origen

    AND AX, BX; : AX=AX AND BXAND SI,ES:[DI] : SI=SI AND ES:[DI]AND BX, 0A34H : BX=BX AND 0A34HAND ES:[BX], CX : ES:[BX] AND CXAND BYTE PTR [SI+4],5 : [SI+4],= [SI+4], AND 5

    7

    Sirve para que elprocesador, en lugar deejecutar la siguiente

    instruccin, pase aejecutar otra en lugar quese denomina destino desalto.

    JMP

    JMP direccino

    JMP SHORTdireccin

    JMP A90A90;mov ah,00

    Salta a A90 que es una etiqueta dada a una instruccin Mov

    8

    La instruccin LOOP,requiere un valor inicial enel registro CX, LOOP de

    forma automticadisminuye 1 de CX

    LOOPLOOP [direccin

    corta]

    ABC.ASM -> Imprime el abecedarioCODIGO SEGMENT

    ASSUME CS:CODIGOINICIO: MOV DL,65 ; Carcter inicial (A)MOV CX,26 ; Nmero de letrasBUCLE: MOV AH,2 ; Servicio para imprimir carcterINT 21HINC DL ; Incrementar carcter actualLOOP BUCLE ; Repetir mientras CX no sea ceroMOV AX,4C00H ; Salir al DOSINT 21HCODIGO ENDSEND INICIO

    Este ejemplo :Gestiona un bucle, tomando el registro CX como instruccinLOOP decrementa el valor de CX

    9

    Transferencia de datosentre celdas de memoria,registros y acumulador.

    MOVMOV destino

    fuente

    10Indica el final del programafuente.

    END END [Expresin]ENDEND INICIO

    11Carga cadenas de unbyte opalabra al acumulador. LODS LODS

    MOV SI, OFFSET VARABLE1LODS

    12 Genera el complemento a 2 NEG NEG destinoNEG AX (Si AX guarda el valor de -2 (FFFE) el resultado sera

    que AX el valor de 0002

    5

  • 7/24/2019 301302_60_Momento4(1)

    6/7

    13Transfiere el registro AHal contenidos de lasbanderas

    LAHF LAHF SF ZF_AF PF_CF (

    14Resta , instruccinaritmtica

    SUBSUB destino,

    fuente

    SUB AX, DX

    15Desplaza a la derecha los

    bits en el registrodesignado

    RCRRCL destino,

    contador

    MOV CL, 03MOV BH, 10110111B; 10110111

    SHR BH, 01; 11011011 Una rotacion a la derechaSHR BH, CL; 00001011 Tres rotaciones a la derechaSHR BX, 03; Vlido para 80186 y procesadores posteriores

    3. Desarrollar un cdigo en un lenguaje ensamblador que permita sumar, restar, multiplicar y dividir dos nmeros de un

    digito cada uno capturados por teclado y subir un video a la web donde explique cmo lo hizo, debe quedar evidencia

    del estudiante que lo desarroll.

    El video debe ser subido a Youtube y el enlace debe ser ubicado en el documento como aporte individual.

    Se realizan los Videos y se suben a Youtube:

    https://youtu.be/iFwQH-f70Mk y https://www.youtube.com/watch?v=tuC_Fy7KRoc

    6

  • 7/24/2019 301302_60_Momento4(1)

    7/7

    CONCLUSIONES

    Los programas hechos en lenguaje ensamblador son generalmente msrpidos en su ejecucin y ocupan menos espacio de memoria.

    A medida de que se aprende (hay que dedicarle mucho tiempo paraconocerlo y aprenderlo) un leguaje ensamblador se crean libreras defunciones que le pueden facilitar mucho el trabajo.

    En el lenguaje ensamblador cada enunciado o lnea produce unainstruccin de mquina.

    Al generar el video y subirlo a la nube se vio otra faceta del curso.

    BIBLIOGRAFIA

    Monografas Miriam Jazmn Mendoza

    Recuperado el 20 de septiembre de 2009, de Monografas Lenguajeensamblador:

    Http://www.monografias.com /trabajos14/lenguaje-ensamblad http://es.slideshare.net/andalmi/instrucciones-lenguaje-assembler http://moisesrbb.tripod.com/unidad6.htm https://www.youtube.com/watch?v=vWfx5syUYv4 https://books.google.com.co/books?isbn=8426714145 Unad (2015) Gua Integrada de Actividades. Disponible a travs de:

    http://datateca.unad.edu.co/contenidos/301302/AVA_2015/Guia_Integrada_de_

    Actividades_Academicas_301302_2015-2.pdf comunidad.dragonjar.or (2015). tutorial completo de lenguaje ensamblador.Disponible a travs de: http://comunidad.dragonjar.org/f177/tutorial-completo-de-lenguaje-ensamblador-8845/

    Vittalia Internet S.L (2015) program ensamblador. Disponible a travs de:http://www.solodrivers.com/manuales/programacion_ensamblador

    Anyelo quintero .( 23 oct. 2015) Instalar Turboassembler, Dosbox, Notepad++compilar. Disponible a travs de:https://www.youtube.com/watch?v=Mf5qaxpnneM

    SourceForge (2014-04-13) Turbo Assembler disponible a travs de:http://sourceforge.net/projects/tasmforwindows/?source=directory

    Current Version (2015) notepad ++ disponible a vraves de: https://notepad-

    plus-plus.org/