Hola otra vez, hoy me gustaría preguntarle a los desarrolladores que programan en assembler o los que lo están aprendiendo. La pregunta es si, Assembler es dificil? Me pregunto esto, ya que a veces, cuando miro ejemplos de assembler (por solo curiosidad) veo que el simple y típico
"Hello World!" se me hace un lio, ya que yo programo en
C,
y ahora estoy aprendiendo
Python.
Digo esto, ya que como algunos sabemos, en
C, un
"Hello World!" seria asi:
#include <stdio.h>
int main(){
return 0;
}
en
Python asi:
print("Hola Python")
y finalmente en
Assembler asi:
; ---------------------------------------------
; Programa que imprime un string en la pantalla
; ---------------------------------------------
.model small ; modelo de memoria
.stack ; segmento del stack
.data ; segmento de datos
Cadena1 DB 'Hola Mundo.$' ; string a imprimir (finalizado en $)
.code ; segmento del código
; ---------------------------------------------
; Inicio del programa
; ---------------------------------------------
programa:
; ----------------------------------------------------------------------------------------------------
; inicia el segmento de datos
; ----------------------------------------------------------------------------------------------------
MOV AX, @data ; carga en AX la dirección del segmento de datos
MOV DS, AX ; mueve la dirección al registro de segmento por medio de AX
; ----------------------------------------------------------------------------------------------------
; Imprime un string en pantalla
; ----------------------------------------------------------------------------------------------------
MOV DX, offset Cadena1 ; mueve a DX la dirección del string a imprimir
MOV AH, 9 ; AH = código para indicar al MS DOS que imprima en la pantalla, el string en DS:DX
INT 21h ; llamada al MS DOS para ejecutar la función (en este caso especificada en AH)
; ----------------------------------------------------------------------------------------------------
; Finaliza el programa
; ----------------------------------------------------------------------------------------------------
INT 20h ; llamada al MS DOS para finalizar el programa
end programa
(código sacado de
Wikipedia, por que como dije no se programar en assembler)
Aunque el primer lenguaje de programación que aprendí que es C, también es de bajo nivel, pero no se tiene que declarar el modelo de memoria (lo mas cercano a eso serian las funciones malloc, realloc y calloc, y no tiene nada que ver con lo dicho anteriormente, ya que es solo para usar la memoria dinámica). Y otra duda, en que se usa assembler actualmente?
Gracias.