¿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.

Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.

Tomas Gonzalez
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.
A %d blogueros les gusta esto: