Want to create interactive content? It’s easy in Genially!

Get started free

C,C++,Python, Java, Assembly

Blanca Patricia Quintero Castillo

Created on March 31, 2024

Start designing with a free template

Discover more than 1500 professional designs like these:

Transcript

ASM

Lenguajes de Programación

Sistemas Embebidos

Language.cpp
Language.c
D.cpp
Sintaxis.c
V.c
EXPLORER
C_C++

PS C:\users\WickedPatt\Desktop\C_C++

TERMINAL

/* Utiliza punto y coma (;) al final de cada declaración. Las llaves {} se utilizan para delimitar bloques de código. Los comentarios de una sola línea comienzan con //, y los comentarios de varias líneas se encierran entre /* y */. Declaraciones de variables: int x = 5;. Tipos de datos: int: Representa números enteros. float: Representa números de punto flotante (decimales). char: Representa caracteres individuales. double: Representa números de punto flotante de doble precisión. void: Se utiliza como tipo de retorno en funciones que no devuelven ningún valor. Otros tipos de datos como short, long, long long, etc., para representar enteros con diferentes rangos de valores. Variables: int edad;, float salario;, char inicial;. Operadores: aritméticos: +, -, *, /, %. asignación: =, +=, -=, *=, /=, %=. comparación: ==, !=, <, >, <=, >=. lógicos: && (AND lógico), || (OR lógico), ! (NOT lógico). incremento/decremento: ++, --. condicional ternario: condición ? expresión1 : expresión2. bits: & (AND a nivel de bits), | (OR a nivel de bits), ^ (XOR a nivel de bits), ~ (NOT a nivel de bits), << (desplazamiento a la izquierda), >> (desplazamiento a la derecha). Funciones: int sumar(int a, int b) { return a + b; }. Punteros: Variables que almacenan direcciones de memoria en lugar de valores. int *p;. Acceder al valor almacenado en la dirección de memoria apuntada por un puntero utilizando el operador de indirección *. Por ejemplo: *p = 10;. Estructuras de control: if, else, else if: Utilizados para tomar decisiones basadas en condiciones. for, while, do-while: Estructuras de bucle para repetir un bloque de código mientras se cumpla una condición. switch-case: Permite evaluar una expresión y ejecutar diferentes bloques de código según el valor de esa expresión. */

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 27 18 19 20 21 22 23 24 25

C: Users WickedPatt Desktop C_C++ Sintaxis.c main()

Bienvenidos a nuestro IDE

Hola! Para comenzar, haz clic en cada una de estas pestañas para desplegar su contenido.

1 #include <iostream> / / Lenguaje de Programación C++ 2 #include <string> 3 using namespace std; / /C++ es una extensión del lenguaje C, hereda todas 4 class Saludo { / /las características de C. C++ permite un diseño 5 private: / /más estructurado, modular y eficiente del software 6 string nombre; / /gracias a su soporte completo para la 7 public: / /programación orientada a objetos. 8 Saludo(string n) : nombre(n) { } / / 9 void imprimirSaludo() { / / Esto facilita la encapsulación de datos y 10 cout << "Hello, " << nombre << "!" << endl; / /funcionalidades en clases, lo que promueve la 11 } / /reutilización del código y reduce la complejidad. 12 }; / /Además, el uso de características como la herencia 13 int main() { / /y el polimorfismo permite una mejor organización 14 string nombre = "WickedPatt"; / /del código y una mayor flexibilidad en el diseño de 15 Saludo saludo(nombre); / /sistemas embebidos. 16 saludo.imprimirSaludo() 17 return 0; / /Mejora significativa en la eficiencia del desarrollo y la capacidad de mantenimiento 18 } / / del software en comparación con el enfoque puramente procedural de C.

C: Users WickedPatt Desktop C_C++ Language.cpp main()

Hello, WickedPatt!

TERMINAL

PS C:\users\WickedPatt\Desktop\C_C++

1 / / Lenguaje de Programación C 2 3 4 /* Es una opción popular y efectiva para el desarrollo de sistemas embebidos debido a su eficiencia en 5 términos de memoria y procesamiento, portabilidad, tamaño compacto del código y acceso directo al 6 hardware del sistema. Estas características lo convierten en una herramienta invaluable para el 7 desarrollo de aplicaciones embebidas en una amplia variedad de dispositivos y sectores industriales. */ 8 9 #include <stdio.h> 10 int main ( ) { 11 /* my first program in C */ 12 printf ("Hello, WickedPatt! \n"); 13 return 0; 14 } 15

C: Users WickedPatt Desktop C_C++ Language.c main()
TERMINAL

PS C:\users\WickedPatt\Desktop\C_C++

Hello, WickedPatt!

1 #include <iostream> 2 #include <fstream> 3 #include <string> 4 int main() { 5 ifstream file ("D.txt", ios::binary); 6 if (!file.is_open() ){ 7 cerr <<"Error en la apertura del archivo"<< endl; 8 return 1; 9 } 10 char character; 11 while (file.get(character) ){ 12 cout << character; 13 14 } 15 file.close(); 16 cout<<"\n\nSe ha leido el archivo"<< endl; 17 18 return 0; 19 }

| Desventajas C | Descripción | +--------------------------------------------------------------------------------------------------+ | Gestión manual de memoria | Se requiere la gestión manual de memoria, lo que | | | puede provocar fugas de memoria. | | Sin características POO | No tiene características orientadas a objetos | | Sin recolección de basura | No tiene recolección automática de basura, lo que | | | puede causar ineficiencia en la memoria. | ---------------------------------------------------------------------------------------------------- | No tiene un sistema integrado para manejar errores o excepciones de manera | | automática. | | Requiere tiempo y esfuerzo para dominar, especialmente para principiantes. |

| Desventajas C++ | +---------------------------------------------------------------------------------------------------+ | Problemas de ambigüedad : Puede causar problemas cuando la información | | apunta desde diferentes puntos. | | Los programas grandes pueden volverse complejos. | | Debido a su baja abstracción, es más difícil mantener y depurar. |

C: Users WickedPatt Desktop C_C++ D.cpp main()

PS C:\users\WickedPatt\Desktop\C_C++

TERMINAL

1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() { 4 FILE * flow = fopen("V.txt","rb"); 5 if (flow==NULL){ 6 perror("Error en la apertura del archivo"); 7 return 1; 8 } 9 char caracter; 10 while (feof(flow)== 0){ 11 caracter = fgetc(flow); 12 printf("%c", caracter); 13 } 14 fclose(flow); 15 printf("\n\nSe ha leido el archivo correctamente"); 16 17 return 0; 18 }

| Ventajas C | Descripción | +-------------------------------------------------------------------------------------------------+ | Eficiencia y velocidad | Alto rendimiento y eficiencia. | | Portabilidad | Compilación y ejecución en diversas plataformas. | | Cercanía al hardware | Permite manipulación directa del hardware. | | Bibliotecas estándar | Amplia biblioteca estándar para tareas comunes. | | Programación estructurada | Organiza el código en estructuras modulares. | | Lenguaje procedural | Sigue un paradigma procedural. | | Versatilidad | Puede usarse para varios tipos de software. |

C: Users WickedPatt Desktop C_C++ V.c main()

PS C:\users\WickedPatt\Desktop\C_C++

TERMINAL

| Ventajas C++ | Descripción | +--------------------------------------------------------------------------------------------------+ | POO | Facilita la programación orientada a objetos. | | Facilidad de uso | Más fácil de aprender y entender que lenguajes de bajo nivel. | | Funciones | Uso de funciones estándar como main y uniones/estructuras.| | Programación | Admite varios paradigmas como genérico, imperativo y | | | multi-paradigma orientado a objetos. | ---------------------------------------------------------------------------------------------------- | | Eficiencia y abstracción de alto nivel. | | Soporte para bibliotecas y marcos |

Language.c
Language.cpp
V.c
D.cpp
Sintaxis.c
V.txt
D.txt
Sintaxis.py
D.py
Language.py
V.py
EXPLORER
Python

PS C:\users\WickedPatt\Desktop\Python

TERMINAL

# Comentarios: Se inician con # o '''. Estructuras de control: # Variables: Se asignan utilizando el operador =. Condicionales: if, elif, else. # No necesitan ser declaradas con un tipo específico. Bucles: for, while. # Los nombres de variables deben seguir ciertas Interrupciones de bucle: break, continue. # convenciones, como comenzar con una letra o un Bucles con else. # guion bajo y usar caracteres alfanuméricos y # guiones bajos. Funciones: # # Tipos de datos básicos: Se definen con la palabra clave def. # Pueden tener parámetros y devolver valores con return. # Enteros (int): números enteros. # Flotantes (float): números con decimales. Entrada y salida de datos: # Cadenas de texto (str): secuencias de caracteres. # Booleanos (bool): valores True o False. Entrada de datos: input(). # Listas, tuplas y diccionarios: colecciones de Salida de datos: print(). # elementos con diferentes propiedades y métodos. Salida de datos: print(). # Operadores: # Gestión de excepciones: # Aritméticos: +, -, *, /, // (división entera), **,% Estructuras try, except, finally para manejar excepciones. # % (módulo), ** (exponenciación). # Comparación: ==, !=, <, >, <=, >=. Clase y objeto: # Lógicos: and, or, not. # obj = ClassName() # print(obj.atrr)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 27 18 19 20 21 22 23 24 25 26

C: Users WickedPatt Desktop Python Sintaxis.py

PS C:\users\WickedPatt\Desktop\Python

TERMINAL
C: Users WickedPatt Desktop Python V.py

- Facilidad de uso: Sintaxis clara y legible simplifica el desarrollo y mantenimiento del código. - Portabilidad: Compatible con una amplia gama de plataformas y sistemas operativos. - Flexibilidad y escalabilidad: Adaptable a diferentes requisitos y escalable según sea necesario. - Eficiencia en el desarrollo: Permite un desarrollo rápido con una amplia variedad de bibliotecas disponibles. - Bajo consumo de recursos: Optimizable para un uso eficiente en sistemas embebidos. - Comunidad activa y soporte: Gran comunidad contribuye con bibliotecas, frameworks y soporte técnico. - Amplias bibliotecas de soporte: Incluye bibliotecas como NumPy y Pandas para aplicaciones científicas y de datos. - Lenguaje de alto nivel y tipado dinámicamente: Abstrae detalles de bajo nivel, no es necesario declarar tipos de datos. - Portable e interactivo: Ejecución y prueba de código en tiempo real en diferentes sistemas operativos. - Ideal para prototipos: Sintaxis concisa permite la creación rápida de prototipos. - Eficiente: Diseño limpio con excelente procesamiento de texto y control de proceso. - Oportunidades de IoT: Adecuado para aplicaciones en el Internet de las Cosas. - Interpretado: Facilita la depuración y desarrollo de código. Se ha leído el archivo correctamente

#Lee el contenido del archivo .txt try: with open("V.txt", "r", encoding="utf-8") as file: for line in file: print(line, end='') print("\n\nSe ha leído el archivo correctamente") except FileNotFoundError: print("Error en la apertura del archivo") except UnicodeDecodeError: print("El archivo no está en formato UTF-8")

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Bienvenidos a nuestro IDE

Hola! Para comenzar, haz clic en cada una de estas pestañas para desplegar su contenido.

El archivo PDF se ha leido correctamente. Texto extraido de la primera pagina: Rendimiento: Python puede ser más lento que lenguajes compilados como C o C++, lo que puede ser una desventaja en aplicaciones que requieren alta velocidad. Consumo de memoria: Python tiende a consumir más memoria que otros lenguajes debido a su naturaleza dinámica, lo que puede ser preocupante en sistemas con recursos limitados. Dependencia del intérprete: Es necesario tener un intérprete de Python instalado, lo que puede aumentar la complejidad y los requisitos de almacenamiento. Desventajas para Sistemas Embebidos: Requisitos de recursos: Python puede requerir más recursos (memoria y potencia de procesamiento) en comparación con lenguajes más ligeros, lo que limita su uso en dispositivos con recursos limitados. Rendimiento en tiempo real: El tiempo de ejecución de Python puede ser inconsistente para aplicaciones que requieren tiempos de respuesta rápidos y predecibles. Control de bajo nivel: Python ofrece menos control directo sobre hardware y recursos del sistema en comparación con lenguajes de bajo nivel como C, lo que puede ser problemático en escenarios que requieren un control preciso. Falta de rigidez: La flexibilidad de Python puede conducir a código difícil de leer y mantener, a pesar de ser útil para el desarrollo rápido y la creación de prototipos.

PS C:\users\WickedPatt\Desktop\Python

C: Users WickedPatt Desktop Python D.py
TERMINAL

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

import PyPDF2 # Intenta abrir el archivo PDF en modo de lectura binaria try: with open("doc_py.pdf", "rb") as pdf_file: # Intenta crear un objeto PdfReader para leer el archivo PDF try: reader = PyPDF2.PdfReader(pdf_file) print("El archivo PDF se ha leído correctamente.") # Intenta extraer texto de la primera página try: page = reader.pages[0] text = page.extract_text() print("Texto extraído de la primera página:") print(text) except IndexError: print("El archivo PDF está vacío o no contiene páginas.") except Exception as e: print("Error al extraer texto:", e) except PyPDF2.utils.PdfReadError as e: print("Error al leer el archivo PDF:", e) except FileNotFoundError: print("El archivo PDF no se encuentra en la ubicación especificada.") except Exception as e: print("Se produjo un error:", e)

Hello, WickedPatt!

TERMINAL

PS C:\users\WickedPatt\Desktop\Python

# Lenguaje de Programación Python ''' Se destaca en el desarrollo de sistemas embebidos debido a su facilidad de uso, portabilidad y flexibilidad. Es especialmente útil para dispositivos IoT de propósito general, prototipado rápido, sistemas de control remoto y aplicaciones donde el procesamiento de datos no requiere una respuesta inmediata. Su sintaxis clara y legible lo hace ideal para proyectos educativos en este campo. Python utiliza una combinación de bibliotecas especializadas, como MicroPython, que está optimizada para microcontroladores, y frameworks como Flask o Django para el desarrollo de aplicaciones web en sistemas embebidos. En conjunto, estas características hacen de Python una opción eficiente en el desarrollo, interoperable y fácil de mantener para una variedad de aplicaciones en sistemas embebidos. ''' print("Hello, WickedPatt!")

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

C: Users WickedPatt Desktop Python Language.py
Language.py
V.py
D.py

Python

Sintaxis.py
V.txt
V.pdf
Sintaxis.java
D.java
V.java
J Lang.java
EXPLORER
Java

Introduce el nombre del archivo: D.txt Consumo de memoria: Requiere más memoria debido a la JVM y la gestión de memoria. Velocidad de ejecución: Puede ser más lento que lenguajes compilados. Complejidad: Algunos aspectos pueden resultar complejos para principiantes. Dependencia de la JVM: La necesidad de la JVM puede añadir complejidad y consumo de recursos. Incompatibilidad con hardware específico: Limitaciones en el acceso directo al hardware. Actualizaciones de seguridad: Requiere actualizaciones frecuentes debido a vulnerabilidades potenciales. Se ha leído el archivo correctamente ¿Quieres leer otro archivo? (S/N): |

PS C:\users\WickedPatt\Desktop\Java

TERMINAL

import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; public class D { public static void main(String[] args) { BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in)); try { String fileName; if (args.length == 1) { fileName = args[0]; } else { System.out.print("Introduce el nombre del archivo: "); fileName = consoleReader.readLine(); } // Verificar si el archivo tiene la extensión .txt if (!fileName.endsWith(".txt")) { System.err.println("Error: El archivo debe tener la extensión .txt"); return; } BufferedReader fileReader = new BufferedReader(new FileReader(fileName)); String line; while ((line = fileReader.readLine()) != null) { System.out.println(line); } fileReader.close(); System.out.println("\n\nSe ha leído el archivo correctamente"); System.out.print("¿Quieres leer otro archivo? (S/N): "); String respuesta = consoleReader.readLine(); if (respuesta.equalsIgnoreCase("S")) { main(new String[0]); } } catch (IOException e) { System.err.println("Error en la apertura del archivo: " + e.getMessage()); } } }

C: Users WickedPatt Desktop Java D.java

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

PS C:\users\WickedPatt\Desktop\Java

TERMINAL

/ * Comentarios: // Comentario de una línea o Programación Orientada a Objetos (POO): * /* Comentario de múltiples líneas */ Clases: class NombreClase { ... } * Objetos: NombreClase nombreObjeto = new NombreClase(); * Impresión en Consola: Métodos: tipoRetorno nombreMetodo(parámetros) { ... } * System.out.println("Texto a imprimir"); Atributos: tipoDato nombreAtributo; * Herencia: class ClaseHija extends ClasePadre { ... } * * * * * Declaración de Variables: Encapsulamiento: private, public, protected * Sintaxis: tipoDato nombreVariable = valor; Polimorfismo: Sobreescritura de métodos con la misma * firma en diferentes clases. * Operadores: * Aritméticos: +, -, *, /, % Palabras Reservadas: * Relacionales: ==, !=, >, <, >=, <= public, private, protected * Lógicos: &&, ||, ! class, interface * Incremento/Decremento: ++, -- static, final * if, else, switch, case, default * Sentencias de Control: for, while, do * Condicionales: if, else, else if return, break, continue * Bucles: for, while, do-while * Switch-case: switch, case, default Esqueleto codigo: * public class Main { * Funciones: public static void main(String[] args) { * Declaración: tipoRetorno nombreFuncion(parámetros) { ... } // Tu código comienza aquí * Invocación: nombreFuncion(argumentos) } * } * /

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 27 18 19 20 21 22 23 24 25

C: Users WickedPatt Desktop Java Sintaxis.java

import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class V { public static void main(String[] args) { try { BufferedReader reader = new BufferedReader(new FileReader("V.txt")); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } reader.close(); System.out.println("\n\nSe ha leído el archivo correctamente"); } catch (IOException e) { System.err.println("Error en la apertura del archivo: " + e.getMessage()); } } }

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

C: Users WickedPatt Desktop Java V.java

Portabilidad: Puede ejecutarse en diferentes plataformas sin necesidad de recompilación. Orientación a objetos: Facilita la modularidad y reutilización del código. Multihilo: Permite la ejecución de múltiples tareas simultáneamente, mejorando la eficiencia. Seguridad: Ofrece características de seguridad como encriptación de clave pública. Independencia de plataforma: El bytecode puede ejecutarse en varios sistemas operativos. Simplicidad: Diseñado para ser fácil de aprender y entender. Robustez: Incorpora verificación de errores en tiempo de compilación y ejecución. Interpreted: El bytecode se traduce sobre la marcha para un desarrollo rápido. Alto rendimiento: Utiliza compiladores Just-In-Time (JIT) para optimizar la ejecución. Comunicación en red: Diseñado para aplicaciones distribuidas en Internet.

PS C:\users\WickedPatt\Desktop\Java

TERMINAL

Bienvenidos a nuestro IDE

Hola! Para comenzar, haz clic en cada una de estas pestañas para desplegar su contenido.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

C: Users WickedPatt Desktop Java Lang.java

/ * Java es un lenguaje de programación versátil conocido por su enfoque orientado a objetos, lo que facilita la * extensión de su funcionalidad basada en el modelo de objetos. Su independencia de plataforma, gracias al * bytecode que puede ejecutarse en cualquier plataforma con una Máquina Virtual de Java (JVM), lo hace * altamente portable. Además, Java se destaca por su diseño simple y fácil de aprender, sus robustas * características de seguridad y su capacidad para ejecutar múltiples tareas simultáneamente gracias al * soporte para multihilo. Aunque enfrenta desafíos como el consumo de memoria y velocidad de ejecución, * sigue siendo una opción popular y viable para sistemas embebidos debido a su portabilidad, programación * orientada a objetos, capacidades de redes y seguridad. La presencia de la JVM interpreta el código de bytes * generado por el compilador de Java, lo que facilita su ejecución en sistemas embebidos y su adaptación a * entornos en evolución. * / public class Lang { Run | Degug public static void main(String[] args) { System.out.println(x:"Hello, WickedPatt!"); } }

Hello, WickedPatt!

TERMINAL

PS C:\users\WickedPatt\Desktop\ Java

Lang.java
V.java
D.java
Sintaxis.java
D.txt
V.txt
Sintaxis.asm
D.asm
ASM Lang.asm
V.asm
EXPLORER

ASM

ASM

PS C:\users\WickedPatt\Desktop\ASM

TERMINAL
C: Users WickedPatt Desktop ASM Sintaxis.asm

section .text ; Sección de código global _start ; Debe declararse para usar con gcc _start: ; Punto de entrada del programa mov ecx,10 ; Inicializamos el contador en 10 mov eax, '1' ; Inicializamos el valor del número a imprimir l1: ; Etiqueta del bucle mov [num], eax ; Almacenamos el número en la variable num mov eax, 4 ; Cargar el número del sistema para la llamada al sistema (sys_write) mov ebx, 1 ; Descriptor de archivo para la salida estándar (stdout) push ecx ; Guardamos el valor de ecx en la pila mov ecx, num ; Cargamos la dirección de num en ecx mov edx, 1 ; Longitud del mensaje a imprimir int 0x80 ; Llamada al sistema para escribir en la consola mov eax, [num] ; Cargamos el valor almacenado en num a eax sub eax, '0' ; Restamos el valor de '0' para obtener el valor numérico inc eax ; Incrementamos el valor add eax, '0' ; Sumamos el valor de '0' para obtener el carácter ASCII pop ecx ; Recuperamos el valor de ecx de la pila loop l1 ; Repetimos el bucle mientras ecx no sea 0 mov eax,1 ; Número de llamada al sistema para salir (sys_exit) int 0x80 ; Llamada al sistema para salir section .bss ; Sección de datos no inicializados num resb 1 ; Reservamos espacio para almacenar el número a imprimir

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

123456789:

123456789:

C: Users WickedPatt Desktop ASM D.asm

PS C:\users\WickedPatt\Desktop\ASM

TERMINAL

; Desventajas: ; Complejidad y curva de aprendizaje: Escribir código Assembly ; es más complejo y tiene una curva de aprendizaje más ; ; empinada. ; Mantenimiento y depuración: Puede ser difícil de entender, ; mantener y depurar debido a su naturaleza de bajo nivel. ; Portabilidad: Está altamente vinculado a una arquitectura de ; procesador específica, lo que puede limitar la portabilidad ; entre plataformas. ; Productividad: Es un proceso más lento y propenso a errores ; en comparación con los lenguajes de alto nivel. ; Escasez de habilidades: Requiere habilidades y conocimientos ; específicos, y los desarrolladores capacitados pueden ser ; escasos y costosos.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

123456789:

PS C:\users\WickedPatt\Desktop\ASM

TERMINAL
C: Users WickedPatt Desktop ASM V.asm

; Ventajas: ; Eficiencia: El código Assembly es altamente eficiente en uso de ; recursos y tiempo de ejecución. ; Control directo del hardware: Permite un control completo y ; directo sobre el hardware subyacente. ; Compacto: El código Assembly tiende a ser más compacto que ; el generado por lenguajes de alto nivel, útil en sistemas con ; limitaciones de memoria. ; Tiempo de ejecución predecible: Al traducirse directamente en ; instrucciones de máquina, ofrece tiempos de ejecución más ; ; ; predecibles. ; Personalización: Permite una mayor personalización y ; optimización para requisitos específicos del sistema embebido.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

;El lenguaje ensamblador es un lenguaje de programación de bajo nivel que proporciona una representación directa del código máquina de ; una arquitectura específica de computadora. Caracterizado por su control preciso sobre el hardware y su eficiencia optimizada, es ideal ; para el desarrollo de sistemas embebidos. Su capacidad para optimizar recursos y proporcionar un control detallado sobre el hardware lo ; hace invaluable en aplicaciones donde el rendimiento máximo y la optimización extrema son esenciales, como en el desarrollo de ; controladores de dispositivos, sistemas de control en tiempo real y sistemas de inicio de arranque. Aunque su complejidad y dificultad de ; programación pueden ser desafiantes, su capacidad para interactuar directamente con el hardware y su eficiencia en el uso de recursos lo ; convierten en una opción poderosa para aplicaciones específicas en sistemas embebidos. section .text global _start ;must be declared for linker (ld) _start: ;tells linker entry point mov edx,len ;message length mov ecx,msg ;message to write mov ebx,1 ;file descriptor (stdout) mov eax,4 ;system call number (sys_write) int 0x80 ;call kernel mov eax,1 ;system call number (sys_exit) int 0x80 ;call kernel section .data msg db 'Hello, WickedPatt!', 0xa ;string to be printed len equ $ - msg ;length of the string

C: Users WickedPatt Desktop ASM Lang.asm

Hello, WickedPatt!

TERMINAL

PS C:\users\WickedPatt\Desktop\ASM

Bienvenidos a nuestro IDE

Hola! Para comenzar, haz clic en cada una de estas pestañas para desplegar su contenido.

Lang.asm
V.asm

Assembly

D.asm
Sintaxis.asm