10
Lenguaje Ensamblador para PC Paul A. Carter

Lenguaje Ensamblador Para PC

Embed Size (px)

Citation preview

Page 1: Lenguaje Ensamblador Para PC

Lenguaje Ensamblador para PC

Paul A. Carter

Page 2: Lenguaje Ensamblador Para PC

Sistemas de numeración• La memoria en un computador está compuesta de

números.

•DecimalLos números con base 10 están compuestos de 10 posibles dígitos (0-9)

•BinarioLos números en base dos están compuestos de dos posibles dígitos (0 y 1).

• HexadecimalLos números hexadecimales tienen 16 dígitos posibles. Los 16 dígitos hexadecimales son: 0-9 y luego A, B, C, D, E, F.

Page 3: Lenguaje Ensamblador Para PC

Organización del computador

La MemoriaLa unidad básica de memoria es medida es el byte.

La CPULa Unidad Central de Procesamiento (CPU) es el dispositivo físico que ejecuta las instrucciones. Las instrucciones pueden requerir datos que estén en un lugar especial de almacenamiento de la CPU en si misma llamados registros.

Page 4: Lenguaje Ensamblador Para PC

Lenguaje ensamblador

Lenguaje de máquinaCada tipo de CPU entiende su propio lenguaje de máquina. Las instrucciones en lenguaje de máquina son números almacenados como bytes en memoria. Cada instrucción tiene su propio y único código llamado código de operación

Lenguaje ensambladorUn programa Escrito en lenguaje ensamblador es almacenado como texto (tal como programas de alto nivel). Un ensamblador es un programa que lee un archivo de texto con instrucciones de ensamblador y convierte el ensamblador en código de máquina.

Page 5: Lenguaje Ensamblador Para PC

Operandos de las instrucciones

Registro: se refieren directamente al contenido de los registros de la CPU.Memoria: Se refiere datos en la memoria. La dirección de los datos puede ser una constante fija en la instrucción o puede ser calculada usando los valores de los registros. Inmediato: Estos son valores fijos que están listados en la instrucción en sí misma. Implicado: Estos operandos no son mostrados explícitamente. DirectivasEllas se usan generalmente para decirle al ensamblador que haga alguna cosa o informarle al ensamblador de algo. Ellas no se traducen en código de máquina.

Entrada y SalidaLa entrada y salida son acciones muy dependientes del sistema. Involucra Comunicarse con el hardware del sistema

Page 6: Lenguaje Ensamblador Para PC

Operaciones de desplazamientosMueven las posiciones de los bits de algunos datos. Sus desplazamientos pueden ser hacia la izquierda (bit más significativo) o hacia la derecha (el bit menos significativo).

Operaciones con bits

Desplazamientos lógicosViene hacer el tipo más simple de desplazamiento. Desplaza de una manera muy directa.

Page 7: Lenguaje Ensamblador Para PC

La pilaMuchas CPU tienen soporte para una pila. La instrucción PUSH añade datos a la pila y la instrucción POP quita datos. El registro de segmento SS especifica el segmento de datos que contiene la pila. El registro ESP contiene la dirección del dato que sería quitado de la pila.

Las instrucciones CALL y RETEl 80X86 suministra dos instrucciones que usa la pila para hacer llamados a subprogramas rápido y fácil. La instrucción CALL hace un salto incondicional a un subprograma y empuja en la pila la dirección de la próxima instrucción.La instrucción RET saca una dirección de la pila y salta a esta dirección. Observe que get int llama read int. Esta llamada empuja otra dirección en la pila.

Page 8: Lenguaje Ensamblador Para PC

ArreglosUn arreglo es un bloque contiguo de una lista de datos en la memoria. Y los elementos de la lista deben de ser del mismo tipo y usar exactamente el mismo número de bytes de memoria para almacenarloDefinición de arreglos

arreglos en los segmentos data y bssPara definir un arreglo iniciado en el segmento data, usa las directivas normales: db, dw, etc. Mientras que en el segmento bss, se usa las directivas resb, resw, etc. estas directivas tienen un operando que espera cuantas unidades de memoria reservar.

Page 9: Lenguaje Ensamblador Para PC

Arreglos multidimensionalesUn arreglo multidimensional no es realmente muy diferente que los arreglos Unidimensionales.Un arreglo multidimensional se presenta a menudo como una malla de elementos. Cada elemento está identificado por un par de índices. Por convención, el primer índice es identificado con la fila del elemento y el segundo índice la columna.

arreglos como variables locales en la pilaLa manera directa de definir una arreglo como variable local en la pila. Es calcular el total de bytes necesarios para todas las variables locales, incluidos los arreglos, y restar esto de ESP (o directamente usando la instrucción ENTER).Para acceder a los elementos de un arreglo se debe de calcular la dirección

Page 10: Lenguaje Ensamblador Para PC

GRACIAS