¿Que es MASM32? Primer hola mundo en assembler

Hola estimado lector, hoy voy a hablar de un  programa para escribir en lenguaje ensamblador, el lenguaje de programación de más bajo nivel, aquí voy a explicar hasta lo que he podido investigar. Decir que nunca he programado en ensamblador, aunque sí que he leído códigos en ensamblador, ya que he «debugeado» algún que otro código en C.

Para quiénes no lo sepan lo que hacen el compilador de C, es traducir nuestro código a Ensamblador, y es realmente curioso, pero por ejemplo Delphi traduce nuestro código delphi a C, que a su vez traduce a ensamblador.

Lo básico es lo siguiente:

.386                                    ; Le decimos a MASM32 que use Intel 80386
.model flat, stdcall         ; Esto es necesario declararlo
option casemap:none       ; ¿Son las etiquetas sensibleas a mayúsculas y minúsculas?

include     kernel32.inc      ; Esta librería es obligatoria para que funcione nuestra aplicación
includelib kernel32       ; Aquí enlazamos la librería especificada anteriormente


.Data                                   ; Aquí ponemos datos inicializados

.Data?                                 ; Aquí especificamos datos no inicializados

.Const                                  ; Aquí escribimos las contantes

.Code                                  ; Aquí escribimos nuestre código
Start:                                    ; Especifica el inicio de nuestro código

End Start                             ; Especifica fin de nuestro código

Nuestro primer hola mundo:

.386                                    ; Le decimos a MASM32 que use Intel 80386 
.model flat, stdcall         ; Esto es necesario declararlo
option casemap:none       ; ¿Son las etiquetas sensibleas a mayúsculas y minúsculas?

include    includekernel32.inc      ; Esta librería es obligatoria para que funcione nuestra aplicación 
includelib libkernel32       ; Aquí enlazamos la librería especificada anteriormente
include includewindows.inc
include includeuser32.inc
includelib libuser32.lib

.Data                                   ; Aquí ponemos datos inicializados

MsgBoxText db «Hola mundo»,0

MsgBoxCaption db «Primer Hola Mundo»,0

.Data?                                 ; Aquí especificamos datos no inicializados
.Const                                  ; Aquí escribimos las contantes
.Code                                  ; Aquí escribimos nuestre código
Start:                                    ; Especifica el inicio de nuestro código

invoke MessageBox, NULL, Addr MsgBoxText, Addr MsgBoxCaption, MB_OK

invoke ExitProcess,0

End Start                             ; Especifica fin de nuestro código

Pues nada hasta aquí mi post de hoy, seguiré posteando según vaya investigando.

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.