Presentación
Instrucciones para la presentación
1. Piense en el nombre de un animal que inicie con la primera letra de su nombre.
2. Este no deberá repetirse.
3. Al presentarse deberá completar la siguiente frase: Mi nombre es: _______ y he venido sobre un/a: _______ a la escuela desde _____
4. Dar respuesta a las preguntas:
4.1 ¿Porqué estudio está carrera?
4.2 ¿Qué me ha gustado de la carrera hasta ahora?
Temas del curso
Unidad 1. Introducción al lenguaje ensamblador
1.1 Evolución de los lenguajes.
1.2 Aplicaciones del lenguaje ensamblador.
1.3 La familia de microprocesadores de Intel.
Temas del curso
Unidad 2. Arquitectura y funcionamiento de un microprocesador.
2.1 Registros y banderas.
2.2 Unidades funcionales básicas.
2.3 Canales de datos, direcciones y control.
2.4 Proceso de arranque de una microcomputadora.
Temas del curso
Unidad 3 Organización de memoria principal.
3.1 Organización de un programa en memoria principal.
3.2 Tipos de direccionamiento.
Temas del curso
Unidad 4 Instrucciones básicas.
4.1 Transferencia de datos.
4.2 Suma y resta.
4.3 Operaciones lógicas.
4.4 Corrimientos y rotaciones.
4.5 Multiplicación y división (auto estudio).
Temas del curso
Unidad 5 Uso de un programa debugger.
5.1 Observación y modificación de datos.
5.2 ejecución paso a paso.
5.3 uso de breakpoints.
Temas del curso
Unidad 6 Control de secuencia.
6.1 Instrucciones para comparar operandos.
6.2 Saltos condicionales e incondicionales.
6.3 Definición y llamada de procedimientos.
6.4 Instrucciones para el manejo del stack.
6.5 Programación estructurada (auto estudio).
Políticas de clase
Lineamientos de clase
El incumplimiento de las tareas en tiempo y forma llevarán a una no aprobación del curso.
Lineamientos de clase
Realizar el seguimiento personal desde el Aula Virtual.
Estar pendiente de los resultados de las evaluacion/es parcial/es y final/es.
Notificar al tutor por escrito, con copia a la coordinación académica, si, por alguna razón excepcional, se encontrara en una circunstancia especial que le impidiera continuar con el curso y recibir así indicaciones de cómo proceder a partir de ese momento.
Descripción de las actividades
Unidad 1 Introducción al lenguaje ensamblador
Descripción de las actividades
Unidad 2 Arquitectura y funcionamiento de un microprocesador.
Descripción de las actividades
Unidad 3 Organización de memoria principal.
Descripción de las actividades
Unidad 4 Instrucciones básicas.
Descripción de las actividades
Unidad 5 Uso de un programa debugger.
Descripción de las actividades
Unidad 6. Control de secuencia.
Actividades de encuadre
Actividades de encuadre
Instrucciones:
Tiempo de la actividad: 6 minutos.
Actividades de encuadre
Instrucciones:
Tiempo de la actividad: 6 minutos.
Actividades de encuadre
Instrucciones:
Tiempo de la actividad: 6 minutos.
Actividades de encuadre
Una vez contestadas las preguntas anteriores escribir en el foro respectivo la respuesta a cada pregunta.
Tiempo de la actividad: 6 minutos.
Recomendaciones para las actividades
Trabajos:
Párrafos:
Ortografía - Gramática
Recomendaciones para las actividades
Referencias bibliográfica
Lista referencia bibliográfica
Recomendaciones para las actividades
Introducción y conclusión
Formato del trabajo
Recomendaciones para las actividades
Diagramas:
Códigos fuentes:
Tablas:
Ejemplo recomendado para el uso de tablas
IA I | POO | P. batch |
---|---|---|
10 | 10 | 8 |
19 | 6 | 9 |
Tabla 1. Listado de materias con calificaciones obtenidas en cada actividad. Fuente: Creación propia
En la tabla 1, se puede apreciar tres materias donde se encuentra las calificaciones obtenidas en dos actividades realizadas en cada una de ellas. Para calcular el promedio solo se debe de sumar cada actividad en un nuevo renglón y dividirlo entre dos que son el número de actividades.
Ejemplo recomendado para el uso de tablas
IA I | POO | P. batch |
---|---|---|
10 | 10 | 8 |
19 | 6 | 9 |
Tabla 1. Listado de materias con calificaciones obtenidas en cada actividad. Fuente: Tomada del libro Introducción a la programación de Luis Joyanes Aguilar. P.19.
En la tabla 1, se puede apreciar tres materias donde se encuentra las calificaciones obtenidas en dos actividades realizadas en cada una de ellas. Para calcular el promedio solo se debe de sumar cada actividad en un nuevo renglón y dividirlo entre dos que son el número de actividades. (Joyanes, 2000).
Recomendaciones para las actividades
Imagenes / diagramas / gráficas:
Recomendaciones para el uso de imágenes / gráficas / diagramas
Imagen 1. Fachada de una casa. Fuente: Creación propia
En la imagen 1 se puede observar la fachada de una casa convencional donde. Lo que permite poder llevar acabo construcciones básicas pero eficientes, con canaletas para la recolección de agua pluvial y su posterior tratamiento.
Recomendaciones para el uso de imágenes / gráficas / diagramas
Imagen 1. Fachada de una casa. Fuente: Tomado del libro Diseños y principios básicos de arquitectura de Ruben Vazquez
En la imagen 1 se puede observar la fachada de una casa convencional donde. Lo que permite poder llevar acabo construcciones básicas pero eficientes, con canaletas para la recolección de agua pluvial y su posterior tratamiento. (Vazquez, 2000)
¿Dudas / Preguntas / comentarios?
Lenguaje ensamblador | Introducción
¿Qué es el lenguaje ensamblador?
Lenguaje ensamblador | Introducción
¿Qué es el lenguaje ensamblador?
Lenguaje ensamblador | Introducción
¿Qué es el lenguaje ensamblador?
Lenguaje ensamblador | Introducción
¿Qué es el lenguaje ensamblador?
Lenguaje ensamblador | Introducción
¿Qué es el lenguaje ensamblador?
Actividad de Aprendizaje
Frase | V | F | Complemento |
---|---|---|
Lenguaje de ---- permite programar pc | Alto nivel | |
Utiliza instrucciones más---- comprensibles | Instrucciones | |
Cada cpu tiene su ---- instrucciones | Humanas |
Lenguaje ensamblador | Evolución
Evolución
Lenguaje ensamblador | Evolución
Lenguajes de Máquina y Ensamblador (Décadas de 1940 y 1950)
Lenguaje ensamblador | Evolución
Lenguajes Ensambladores Simples (Décadas de 1950 y 1960)
Lenguaje ensamblador | Evolución
Estandarización y Ampliación (Décadas de 1960 y 1970)
Lenguaje ensamblador | Evolución
Lenguajes Ensambladores Avanzados (Décadas de 1980 y 1990)
Lenguaje ensamblador | Evolución
Ensambladores Modernos y Abstracciones (Siglo XXI)
Lenguaje ensamblador | Evolución
Ensambladores en la Era de la Computación Cuántica (En desarrollo)
Lenguaje ensamblador | Evolución
Evolución
Actividad de Aprendizaje
Década | Características |
---|---|
1980 y 1990 | Mejora sobre los lenguajes |
1950 y 1960 | Procesadores más potentes |
1940 y 1950 | Programación en tediosa y propensa a errores |
Lenguaje ensamblador | Aplicación
Aplicaciones del lenguaje ensamblador.
Lenguaje ensamblador | Aplicación
Programación de Sistemas Empotrados
Lenguaje ensamblador | Aplicación
Programación de Sistemas Operativos
Lenguaje ensamblador | Aplicación
Programación de Controladores de Dispositivos
Lenguaje ensamblador | Aplicación
Optimización de Código
Lenguaje ensamblador | Aplicación
Seguridad y Hacking Ético
Lenguaje ensamblador | Aplicación
Depuración y Análisis de Código
Lenguaje ensamblador | Aplicación
Programación de Plataformas Específicas
Lenguaje ensamblador | Aplicación
Lenguaje ensamblador | Aplicación
Aplicación
Actividad de Aprendizaje
Aplicación | Limitante | Ventaja |
---|---|---|
Lenguaje ensamblador | fam. Intel
la familia de microprocesadores de Intel.
Lenguaje ensamblador | fam. Intel
Familia Intel 8086/8088
Lenguaje ensamblador | fam. Intel
Familia Intel 80286
Lenguaje ensamblador | fam. Intel
Familia Intel 80386
Lenguaje ensamblador | fam. Intel
Familia Intel Pentium y Procesadores Posteriores
Lenguaje ensamblador | fam. Intel
Familia Intel Core y Procesadores Modernos
Lenguaje ensamblador | fam. Intel
Familia Intel
Actividad de Aprendizaje
Familia | Año | Caracteristicas |
---|---|---|
Intel 8086/8088 | 1978 | |
Intel 80286 | Amplió la arquitectura x86 | |
Intel 80386 | 1985 | |
Intel Core |
Arquitectura y funcionamiento de un microprocesador.
Arquitectura
Arquitectura
Actividad de aprendizaje
Elemento | Función |
---|---|
CPU | Se utiliza para almacenar datos y programas |
ALU | Son pequeñas ubicaciones de almacenamiento de alta velocidad dentro de la CPU |
Función
Registros
Registros
Actividad de aprendizaje
Elemento | Función |
---|---|
GPR | Incluye registros de control de interrupciones, registros de segmento |
SP | Registro que almacena información sobre el estado de las operaciones realizadas por el microprocesador |
Banderas
Banderas
Actividad de aprendizaje
Elemento | Función |
---|---|
D | Se establece cuando una operación aritmética produce un resultado que es demasiado grande |
S/N | Se establece si el resultado de una operación es igual a cero. |
Unidades funcionales básicas
Unidades funcionales básicas
Actividad de aprendizaje
Elemento | Función |
---|---|
ALU | Maneja las instrucciones de salto condicional e incondicional |
Store Unit | Se encarga de descodificar las instrucciones del programa |
canales de datos
direcciones
Control
Canal de datos, direcciones y control
Actividad de aprendizaje
Elemento | Función |
---|---|
E/S | Ubicaciones de almacenamiento internas dentro de la CPU que se utilizan para realizar operaciones y cálculos |
Registro de Bandera | Permiten al programa cambiar de manera no secuencial de una ubicación de memoria a otra |
Arranque de un microcomputador
Actividad de aprendizaje
Elemento | Función |
---|---|
POST | Después de que el POST se complete con éxito, |
Ejecución | programa que se encarga de cargar el sistema operativo en la memoria RAM |
Organización de memoria principal
Organización de la memoria principal
Método de acceso
Acceso aleatorio (RAM):
Acceso directo y tiempo de acceso constante e independiente de la posición de memoria.
Acceso Secuencial (SAM):
Tiempo de acceso dependiente de la posición de memoria.
Acceso Directo (DAM):
Acceso directo a un sector con tiempo de acceso dependiente de la posición, y acceso secuencial dentro del sector.
Asociativas (CAM):
Acceso por contenido
Organización de la memoria principal
Soporte físico
Semiconductor
RAM, ROM, FLASH, EEPROM, NVRAM, CACHÉ, SRAM, DRAM, SDRAM
Magnético
DD, Cintas, Disquete, tarjeta de cinta, zip, jaz, DVC.
Ópticas
CD-ROM, CD-R, CD-RW, DVD, Mini Disc, memoria SD
Magneto-ópticas
Tecnología UDO, Unidad de disco magnetico-optico de 2.5, 3.5 y 5.5 pulgadas
Organización de la memoria principal
Alterabilidad
RAM
Lectura y escritura
ROM
Memorias de solo lecturas y existen diferentes variantes
ROM: programadas por máscara, cuya información se escribe en el proceso de fabricación y no se puede modificar
PROM, o ROM: programable una sola vez. Utilizan una matriz de diodos cuya unión se puede destruir aplicando sobre ella una sobretensión.
EPROM (Erasable PROM) o RPROM (Reprogramable ROM), cuyo contenido puede borrarse mediante rayos ultravioletas para volverlas a escribir.
EAROM (Electrically Alterable ROM) o EEROM (Electrically Erasable ROM): son memorias que están entre las RAM y las ROM ya que su contenido se puede volver a escribir por medios eléctricos. Se diferencian de las RAM en que no son volátiles.
Organización de la memoria principal
Jerarquía
Organización de 1 programa en M.P.
Es un aspecto esencial en la ejecución eficiente de software.
Organización de 1 programa en M.P.
MonoProgramación:
Organización de 1 programa en M.P.
MultiProgramación:
Ejecución entrelazada o concurrente de dos o más procesos. Se opera sobre más de un proceso a la vez, y los recursos del sistema se distribuyen entre esos procesos.
Tipo de direccionamientos
Tipo de direccionamientos
Inmediato
MOV AX, 5
, el valor "5" es inmediato y se carga en el registro AX.Tipo de direccionamientos
Directo
MOV AX, [1234]
, "1234" es la dirección de memoria directa.Tipo de direccionamientos
Indirecto
MOV AX, [BX]
, el valor en el registro BX se usa como dirección de memoria para obtener el valor de la memoria.Tipo de direccionamientos
Registrador
ADD AX, BX
, los valores se toman directamente de los registros AX y BX.Tipo de direccionamientos
Por Registro-Registro
MOV AX, [SI+DI]
, se utilizan los registros SI y DI para calcular la dirección de memoria.Tipo de direccionamientos
Por Registro-Desplazamiento
MOV AX, [BX+4]
, el registro BX se combina con un desplazamiento de 4 para calcular la dirección.Tipo de direccionamientos
Por Registro-Indexado
MOV AX, [BX+SI]
, los registros BX y SI se utilizan para calcular la dirección.Tipo de direccionamientos
Basado en Pila
Tipo de direccionamientos
Basado en Acumulador:
Tipo de direccionamientos
Actividad de aprendizaje
Cuestiones | Respuestas |
---|---|
¿Qué es la ram? | |
¿Qué necesita llevar un programa en lenguaje ensamblador? |
Actividad de aprendizaje
SIGLAS | Definición |
---|---|
SAM | Tiempo de acceso dependiente de la posición de memoria. |
DAM | Acceso por contenido |
Actividad de aprendizaje
Propiedad | Ejemplos |
---|---|
Semiconductor | Unidad de disco magnetico-optico de 2.5, 3.5 y 5.5 pulgadas |
Magneticas | CD-ROM, CD-R, CD-RW, DVD, Mini Disc, memoria SD |
Instrucciones Básicas
Instrucciones Básicas
Instrucciones Básicas
Transferencia de datos
Las operaciones de transferencia de datos son esenciales para realizar cálculos y procesamientos en una computadora.
Instrucciones Básicas
Transferencia de datos
Instruccion | aplicación/concepto |
---|---|
OUTS | Se utiliza para copiar datos de una ubicación a otra |
XCHG | Se utilizan para operaciones de pila |
Instrucciones Básicas
Suma y resta
Para sumar dos valores, generalmente se usan registros o ubicaciones de memoria.
Se requiere sumar dos valores y almacenar el resultado en un tercer lugar.
Se usará los registros AX y BX
MOV AX, 10 ; Se carga el valor 10 en el registro AX
MOV BX, 20 ; Se carga el valor 20 en el registro BX
ADD AX, BX ; Se suma de AX y BX y se almacena el AX
Instrucciones Básicas
Suma y resta
Para restar dos valores, generalmente se usan registros o ubicaciones de memoria.
Se requiere sumar dos valores y almacenar el resultado en un tercer lugar.
Se usará los registros AX y BX
MOV AX, 50 ; Se asigna el valor 50 en el registro AX
MOV BX, 30 ; Se asigna el valor 30 en el registro BX
SUB AX, BX ; Se resta el contenido de BX de AX y se almacena el resultado en AX
Instrucciones Básicas
Operaciones Lógicas
Instrucciones Básicas
Operaciones Lógicas
AND lógico
MOV AL, 11001100b ; Cargamos el valor binario 11001100 en AL
AND AL, 10101010b ; Realizamos un AND lógico con 10101010b
El valor de esta operación, AL contendrá el valor binario 10001000.
Instrucciones Básicas
Operaciones Lógicas
OR lógico (OR)
MOV AL, 11001100b ; Cargamos el valor binario 11001100 en AL
OR AL, 00110011b ; Realizamos un OR lógico con 00110011b
El valor de esta operación, AL contendrá el valor binario 11111111.
Instrucciones Básicas
Operaciones Lógicas
XOR lógico (XOR)
MOV AL, 11001100b ; Cargamos el valor binario 11001100 en AL
XOR AL, 00110011b ; Realizamos un XOR lógico con 00110011b
El valor de esta operación, AL contendrá el valor binario 11111111.
Instrucciones Básicas
Operaciones Lógicas
NOT lógico (NOT)
MOV AL, 11001100b ; Cargamos el valor binario 11001100 en AL
NOT AL ; Realizamos un NOT lógico en AL
El valor de esta operación, AL contendrá el valor binario 00110011.
Instrucciones Básicas
Corrimiento y rotaciones
Instrucciones Básicas
Corrimiento y rotaciones
Corrimiento (Shift):
Instrucciones Básicas
Corrimiento y rotaciones
Corrimiento lógico (Logical Shift)
MOV AL, 11001100b ; AL = 11001100b (204 en decimal)
SHR AL, 2 ; Corrimiento lógico a la derecha de 2 posiciones
El resultado de esta operación, AL contendrá el valor binario 00110011b (51 en decimal).
Instrucciones Básicas
Corrimiento y rotaciones
Corrimiento aritmético (Arithmetic Shift)
MOV AL, 11001100b ; AL = 11001100b (204 en decimal)
SAR AL, 2 ; Corrimiento aritmético a la derecha de 2 posiciones
El resultado de esta operación, AL contendrá el valor binario 11110011b (243 en decimal).
Instrucciones Básicas
Corrimiento y rotaciones
Rotación (Rotate):
Instrucciones Básicas
Corrimiento y rotaciones
Rotación a la izquierda (Rotate Left, ROL)
MOV AL, 11001100b ; AL = 11001100b (204 en decimal)
ROL AL, 2 ; Rotación a la izquierda de 2 posiciones
El resultado de esta operación, AL contendrá el valor binario 00110011b (51 en decimal), y los bits que se desplazaron a la izquierda regresaron por la derecha.
Instrucciones Básicas
Corrimiento y rotaciones
Rotación a la derecha (Rotate Right, ROR):
MOV AL, 11001100b ; AL = 11001100b (204 en decimal)
ROR AL, 2 ; Rotación a la derecha de 2 posiciones
El resultado de esta operación, AL contendrá el valor binario 00110011b (51 en decimal), y los bits que se desplazaron a la derecha regresaron por la izquierda.
Instrucciones Básicas
Corrimiento y rotaciones
Rotación a la derecha (Rotate Right, ROR):
Instrucciones Básicas
Multiplicación y División
Suelen ser operaciones más complejas que las operaciones aritméticas básicas como suma y resta. La implementación varía según la arquitectura de la CPU.
Instrucciones Básicas
Multiplicación y División
Puede realizarse de varias maneras, dependiendo de la arquitectura y las instrucciones disponibles. Una técnica común es el método de multiplicación "por escalonamiento", que se basa en la suma repetida y el desplazamiento de bits.
Multiplicación
Instrucciones Básicas
Multiplicación y División
Suponga que se desea multiplicar dos números, A y B.
Multiplicación
Inicializa un registro para almacenar el resultado (AX ).
Inicializa otro registro (BX) con el valor de B.
Utilice un ciclo para realizar la multiplicación. En cada iteración, realiza los siguiente:
a. Verifica el bit menos significativo de A. Si es 1, suma el valor de BX al resultado.
b. Desplaza A a la derecha y BX a la izquierda (SHR
y SHL
).
c. Repite hasta que todos los bits de A se hayan procesado.
Al finalizar, el registro que contiene el resultado contendrá el producto de A y B.
Instrucciones Básicas
Multiplicación y División
La división en ensamblador también puede realizarse de varias maneras, dependiendo de la arquitectura y las instrucciones disponibles. La técnica más común es la "división por sustracción y resta".
Divición
Instrucciones Básicas
Multiplicación y División
Suponga que se desea dividir dos números, A y B.
Divición
Inicialice un registro para almacenar el cociente (AX) y otro para el residuo (DX).
Inicializa el registro AX con el valor de A.
Inicializa otro registro (BX) con el valor de B.
Utiliza un ciclo para realizar la división. Cada iteración realiza lo siguiente:
a. Divide el contenido de AX por BX y coloca el cociente en AL y el residuo en AH.
b. Verifica el residuo (AH). Si es cero, termina el ciclo;
c. Desplaza el contenido de DX a la izq y el residuo (AH) en DL.
Al final, el registro AX contendrá el cociente y el registro DX contendrá el residuo de la división.
Instrucciones Básicas
Estructura de un programa en ensamblador
Instrucciones Básicas
Estructura de 1 programa
La estructura de un programa en lenguaje ensamblador suele constar de varias secciones y directivas que organizan el código y definen cómo se ensambla y ejecuta. A continuación, se muestra una estructura básica típica de un programa en ensamblador x86
Instrucciones Básicas
Estructura de un programa
La estructura real de un programa en ensamblador puede variar según la arquitectura y el ensamblador que estés utilizando.
En el siguiente ejemplo es específico para ensamblador x86 en sistemas basados en Linux usando la llamada al sistema int 0x80
.
Las secciones y directivas pueden variar según la plataforma y la herramienta que se este utilizando.
Instrucciones Básicas
Estructura de un programa
En esta sección, puedes definir variables y constantes que se utilizan en tu programa. Estos datos pueden ser inicializados.
section .data:
Esta es la sección de código principal donde se encuentra la lógica del programa. Aquí se escriben las instrucciones en ensamblador.
section .text:
Instrucciones Básicas
Estructura de un programa
Define el punto de entrada del programa. En este caso, "_start" es el símbolo global que indica dónde comienza la ejecución.
global _start:
Aquí es donde comienza la ejecución del programa. Es el punto de entrada principal.
_start:
Instrucciones Básicas
Estructura de un programa
En esta sección, escribirás las instrucciones en ensamblador que realizan las operaciones deseadas.
Código de instrucciones:
Al final del programa, generalmente se utilizan llamadas al sistema para realizar acciones como salir del programa (syscall exit).
Terminación del programa:
En esta sección, se pueden definir variables que no están inicializadas en la etapa de compilación. Estas variables se inicializan durante la ejecución.
section .bss:
Instrucciones Básicas
Estructura de un programa
section .data
; Sección de datos
; Define variables y constantes aquí
section .text
global _start
; Sección de código
; Inicio del programa
_start:
; Punto de entrada principal del programa
; Aquí comienza la ejecución
; Código de instrucciones
; ...
; Terminación del programa
mov eax, 1 ; syscall número 1 (exit)
mov ebx, 0 ; código de salida 0
int 0x80 ; realizar la llamada al sistema para salir
section .bss
; Sección de datos sin inicializar (bss)
; Define variables no inicializadas aquí
Instrucciones Básicas
Estructura de un programa
La estructura de un programa en ensamblador para Windows puede variar significativamente debido a diferencias en las llamadas al sistema y las convenciones específicas de Windows.
Instrucciones Básicas
Estructura de un programa
Se utilizan directivas específicas de MASM (Microsoft Macro Assembler) y se incluyen archivos de encabezado de Windows.
La sección .data
se utiliza para definir variables y constantes.
La sección .code
contiene el código de instrucciones.
Se utiliza el punto de entrada start
.
Se realizan llamadas a funciones de Windows como MessageBox
y ExitProcess
para mostrar un cuadro de diálogo de mensaje y finalizar el programa.
Los datos del cuadro de diálogo de MessageBox
se definen en la sección .data
.
Instrucciones Básicas
Estructura de un programa
.386
.model flat, stdcall
option casemap : none
include \masm32\include\windows.inc
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
.data
; Sección de datos
; Define variables y constantes aquí
.code
start:
; Punto de entrada principal del programa
; Aquí comienza la ejecución
; Código de instrucciones
; ...
; Llamada a funciones de Windows
invoke MessageBox, NULL, addr MessageBoxText, addr MessageBoxCaption, MB_OK
invoke ExitProcess, 0
.data
; Datos del cuadro de diálogo de MessageBox
MessageBoxCaption db "Ejemplo", 0
MessageBoxText db "Hola, mundo!", 0
end start
Instrucciones Básicas
Estructura de un programa
Un programa en ensamblador para macOS generalmente sigue una estructura similar a la de otros sistemas operativos basados en Unix, como Linux, debido a que macOS se basa en el núcleo Unix.
Sin embargo, las llamadas al sistema y las convenciones de llamadas pueden variar.
Instrucciones Básicas
Estructura de un programa
La sección .data
se utiliza para definir variables y constantes.
La sección .text
contiene el código de instrucciones. El punto de entrada se llama _start
, que es el punto de entrada común en programas de ensamblador de sistemas basados en Unix.
Se pueden realizar llamadas al sistema específicas de macOS para realizar tareas como escribir en la consola, abrir archivos, etc.
Puedes definir más datos y espacio para variables no inicializadas en las secciones .data
y .bss
según sea necesario.
section .data
; Sección de datos
; Define variables y constantes aquí
section .text
global _start
_start:
; Punto de entrada principal del programa
; Aquí comienza la ejecución
; Código de instrucciones
; ...
; Llamadas al sistema de macOS
; ...
section .data
; Datos
; Define más datos aquí
section .bss
; Sección .bss (Bloated Storage Space)
; Define espacio para variables no inicializadas aquí
section .text
; Más código de instrucciones
; ...
section .data
; Datos adicionales
; Define más datos aquí
section .bss
; Más espacio para variables no inicializadas
Instrucciones Básicas
Estructura de un programa
Instrucciones Básicas
Estructura de un programa
Actividad de aprendizaje
¿Qué diferencias existen en cada uno de los códigos mostrados?
1. Responde lo siguiente:
Instrucciones Básicas
Hola mundo en ensamblador
Instrucciones Básicas
Text