Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROGRAMACIÓN AVANZADA
INTRODUCCIÓN A FASM
ASSEMBLY ≠ ASSEMBLER
(Fuente: NPTEL, Compiler Desing) programa
Lenguaje Ensamblador: Lenguaje Máquina:
Assembly Language Machine Code (bytecode)
Lenguaje basado en Lenguaje en que trabaja la
mnemónicos/comandos que computadora, comandos
permite escribir un código y datos almacenados en
fuente en bajo nivel. sistema binario/hexa.
Ensamblador: Assembler
Programa que se encarga de ensamblar o convertir
el código fuente en código máquina.
TIPOS DE LENGUAJE ENSAMBLADOR
• Intel y AMD
– x86 Assembly Language
– MASM: Macro Assembler (Microsoft)
– FASM: Flat Assembler (Tomasz Grysztar)
– NASM: Netwide Assembler (Simon Tatham)
– TASM: Turbo Assembler (Borland)
– [otros...]
– x64 Assembly Language
TIPOS DE LENGUAJE ENSAMBLADOR
• MAC (Apple)
– OS X Assembler
• Android
– ARM Assembly
• Microprocesarores
– 6800 de Motorola (Microprocesadores I)
– 68K de Motorola (Microprocesadores II)
• Microcontroladores
– PIC de Microchip (Diseño de Sistemas Digitales I)
– AVR de Atmel
IDE: WinAsm Studio
FASM
FASM: FLAT ASSEMBLER
• high speed
• size optimizations
• macro abilities
• operating system portability
– x86, x86-64
– Windows, Linux
VERSIONES DE FASM: WHAT’S NEW?
• version 1.71.22 (Sep 28, 2014)
[-] Format MZ no longer allows the table of relocations to overflow.
http://flatassembler.net/download.php
INSTALACIÓN DE FASM
• No se instala
• Sólo descomprimir y
copiar a la raíz del
disco C la carpeta:
fasmw17122
IDE: FASMW
c:\fasmw17122\FASMW.EXE
EJEMPLO
pa01_message_box.asm
pa01_message_box.asm
• El programa invoca una función de Windows:
– Invoke MessageBox, ...
← 2P
← EF
← SI