SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

Embed Size (px)

Citation preview

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    1/50

     SISTEMAS

    DIGITALES I 

    ING. CARLOS OBLITAS VERA

    Lenguaje Ensamblador

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    2/50

    • Paradójicamente, el ensamblador es el lenguaje más básico y, sin

    embargo, es el más complejo.

    • Varias son las razones para aprender el lenguaje ensamblador del

    IBM PC:

    Conocer en mayor profundidad el funcionamiento básico de la

    máquina.

    Ganar rapidez en la ejecución de los programas.

    Poder tener acceso a posibilidades de la máquina que son

    inaccesibles desde otros lenguajes.

    Entender mejor cómo funcionan los lenguajes de alto nivel.

    Poder utilizar las posibilidades de la máquina desde los propios

    lenguajes de alto nivel.

    ¿POR QUE EL LENGUAJE ENSAMBLADOR? 

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    3/50

    Nuestro sistema habitual es el sistema decimal. Un

    ordenador está diseñado sobre la base de numeración

    binaria (base 2). Por tanto:

    • Existen 2 dígitos (0 y 1) en cada posición del número.

    • Numerando de derecha a izquierda los dígitos de unnúmero, empezando por cero, el valor de posición es 2n.

    La base 16 es muy utilizada para representar la información

    almacenada en memoria del ordenador.

    453h significa 453 en base hexadecimal.

    1011b significa 1011 en base binaria.

    Sistemas de Numeración:

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    4/50

    Sistemas de Numeración:

    Sistemas denumeración

    BINARIO

    HEXADECIMAL

    DECIMAL

    OCTAL

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    5/50

    La cantidad de memoria en un ordenador se mide en Kilobytes, Mega, Giga, etc

    1 Kbyte = 1024 bytes = 210

     bytes = 400h bytes

    Estructura de la memoria del ordenador.

    BIT BYTE NIBBLE

    Estructuradel

    ordenador

    Es realmente la unidadde almacenamiento

    Unidad de

    almacenamiento

    de la memoria

    Agrupación de 8bit uocteto

    Se llama así a laagrupación de 4 bit

    (superiores o inferiores)Almacena un digito enhexadecimal

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    6/50

    Suma de números binarios/hexadecimales.

    Los números contenidos en bytes, expresados en modo binario o

    hexadecimal, se suman de forma análoga que los de base decimal, es

    decir, de derecha a izquierda y arrastrando el acarreo (0 ó 1) a lacolumna inmediata de la izquierda. Por ejemplo:

    1101 0010b D2h

    + 0001 0111b +17h

    1110 1001b E9h

    Números negativos.

    Primero se debe saber el concepto de complementario de un

    número binario.

    Por ejemplo: Complementario de 1100 = 0011

    Entonces para hallar el negativo de un número se hace uso del

    complementario.

    0000 0011b = +3

    1111 1100b complementario

    + 1b

    1111 1101b

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    7/50

    Agrupaciones superiores al byte 

    Tipo Definición

    PalabraDoble palabra

    Cuádruple palabraPárrafoPáginaSegmento

    2 bytes contiguos2 palabras contiguas (8 bytes)

    4 palabras contiguas (8 bytes)16 bytes256 bytes64 Kbytes

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    8/50

    Tipos de datos en memoria

    Números binarios:

    Pueden ser con signo o sin signo y ocupan desde un byte hasta 4 palabras.

    Para los números binarios positivos los valores máximos

    que se pueden almacenar son:

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    9/50

    Para los números binarios negativos los valores máximos y

    mínimos son:

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    10/50

    Los números binarios se almacena (cuando su longitud es superior albyte) al revés de lo que cabria esperar, los dos caractereshexadecimales menos significativos del numero se encuentran en elprimer byte

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    11/50

    • Cada byte contiene un digito BCD en los 4 bits inferiores.

    • Cada byte puede almacenar un valor dl 0 al 9 (digito decimal)

    • Los dígitos BCD (Binary - Coded Decimal o decimal codificado en binario)

    tienen la codificación siguiente:

    Por ejemplo, el número 1234 se almacena en 4 bytes como 01020304h.

    Números Decimales Desempaquetados

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    12/50

    Números Decimales Empaquetados

    • Cada byte contiene dos dígitos BCD. El dígito más

    significativo se almacena en el nibble superior.

    • Cada byte puede almacenar un valor del 00 al 99 (dos

    dígitos decimales). Por ejemplo, el número 1234 se

    almacena en 2 bytes como 1234h

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    13/50

     Además de para representar valores numéricos, los bytes se usan

    para representar caracteres.

    Cada byte puede representar 256 caracteres posibles:

    •  Los 128 primeros (0 a 127) son los caracteres ASCII estándar.

    •  Los 128 últimos (128 a 255) son los caracteres ASCII extendidos

    para el caso IBM PC.

    El código ASCII (American Standard Code for Information Inter-

    change) es un convenio adoptado para asignar a cada carácter un

    valor numérico.

    Caracteres ASCII

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    14/50

    El código ASCII incluye:

    • Letras mayúsculas y minúsculas.

    • Dígitos decimales (0 al 9).

    • Caracteres especiales como *, >,

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    15/50

    Operaciones lógicas 

    Se realizan a nivel de bit. Pueden ser de un solo operando o de dos

    operandos.

    OPERACIÓN LÓGICA "NO" (NOT) 

    Es una operación lógica de un solo operando definida así:

    Evidentemente, se cumple que NOT(NOT(x)) = x.

    De acuerdo con la definición de número negativo, se cumple que:

     – n = NOT(n) + 1 NOT(n) = – n – 1

    Ejemplos:

    NOT(1011b) = 0100b NOT(Bh) = 4h NOT(11) = 4

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    16/50

    OPERACIONES LÓGICAS

    "Y" (AND), "O" (OR) Y "O EXCLUSIVO" (XOR)

    RELACIONES ENTRE LAS OPERACIONES LÓGICAS 

    Ley de MORGAN

    NOT(x AND y) = NOT(x) OR NOT(y) NOT(x OR y) = NOT(x) AND NOT(y)

    O lo que es lo mismo:

    x AND y = NOT(NOT(x) OR NOT(y)) x OR y = NOT(NOT(x) AND NOT(y))

    También la operación XOR puede expresarse mediante las restantes: x XOR

    y = (NOT(x) AND y) OR (x AND NOT(y))

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    17/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    18/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    19/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    20/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    21/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    22/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    23/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    24/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    25/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    26/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    27/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    28/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    29/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    30/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    31/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    32/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    33/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    34/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    35/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    36/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    37/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    38/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    39/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    40/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    41/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    42/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    43/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    44/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    45/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    46/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    47/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    48/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    49/50

  • 8/17/2019 SESION-II_SISDIG-I_INTRO_ASSEMBLER.pdf

    50/50