Biblioteka Allegro w wersji 4 nie jest już rozwijana. Jednak pokażę w tym wpisie jak skorzystać z tej biblioteki posługując się asemblerem. Wykorzystam NASM. Strona oficjalna projektu znajduje się pod adresem www.nasm.us
Potrzebny również będzie kompilator gcc i jego biblioteki. Można pobrać z tej strony - GNU GCC Collection
Dla programujących pod Windows wystarczy zainstalować MinGW.
Dla chcących coś więcej Cygwin powinien zadowolić swoją funkcjonalnością.

Program graf1.exe działa w trybie okienkowym. Wyświetla napis i rysuje prostą i okrąg. Następnie czeka na wciśnięcie klawisza, po czym zostaje zamknięty.

; Program graf1.exe wykorzystuje bibliotekę Allegro
;
; Autor: Bogdan D., bogdandr (at) op.pl 
; Modyfikacja: Sylvi91 
;
; kompilacja:
; 
; nasm -f win32 -o graf1.o graf1.asm
; 
; linkowanie dynamiczne. Uwaga program wymaga biblioteki .dll do działania!
;
; gcc -o graf1 graf1.o -L"YourDirectorylib" -lalleg -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lole32 -ldinput -lddraw -ldxguid -lwinmm -ldsound
;
; linkowanie statyczne.
;
; gcc -o graf1 graf1.o -L"YourDirectorylib" -lalleg_s -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lole32 -ldinput -lddraw -ldxguid -lwinmm -ldsound
;



section .text
; wymagane przez Allegro:
global _main		
global _mangled_main
global _mangled_main_address

; deklaracje elementów zewnętrznych:
extern	_install_allegro
extern	_install_keyboard
extern	_set_color_depth
extern	_set_gfx_mode
extern	_allegro_exit
extern	_text_mode
extern	_set_palette
extern	_default_palette
extern	_clear_to_color
extern	_screen
extern	_textout
extern	_font
extern	_line
extern	_makecol
extern	_circle
extern	_readkey

%define GFX_AUTODETECT 0		; autowykrywanie sterownika
%define GFX_AUTODETECT_WINDOWED 2		; autowykrywanie sterownika

_main:			; TO WŁĄCZYĆ, JEŚLI ALLEGRO WYMAGA FUNKCJI MAIN
_mangled_main:
	; inicjalizacja biblioteki:
	push	dword 0
	push	err			; nasza zmienna do błędów
	push	dword 0
	call	_install_allegro
	add	esp, 3*4		; zdjęcie parametrów ze stosu

	; instalacja klawiatury
	call	_install_keyboard

	; ustawienie głębi kolorów:
	push	dword 8
	call	_set_color_depth
	add	esp, 1*4		; zdjęcie parametrów ze stosu

	; ustawienie rozdzielczości:
	push	dword 0			; wysokość okna
	push	dword 0			; szerokość okna
	push	dword 480		; wysokość całego trybu
	push	dword 640		; szerokość całego trybu
	push	dword GFX_AUTODETECT_WINDOWED
	call	_set_gfx_mode
	add	esp, 5*4

	; sprawdź, czy się udało
	cmp	eax, 0
	jne	koniec

	; ustaw tło pod tekstem
	push	dword -1
	call	_text_mode
	add	esp, 1*4

	; ustaw domyślną paletę
	push	dword _default_palette
	call	_set_palette
	add	esp, 1*4

	; wyczyść ekran
	push	dword 0			; czyść na czarno
	push	dword [_screen]		; co czyścić
	call	_clear_to_color
	add	esp, 2*4

	; wyświetl napis
	push	dword 15		; kolor
	push	dword 10		; współrzędna Y
	push	dword 10		; współrzędna X
	push	dword napis		; napis do wyświetlenia
	push	dword [_font]		; czcionka
	push	dword [_screen]		; gdzie wyświetlić
	call	_textout
	add	esp, 6*4

	; stwórz kolor biały do narysowania linii
	push	dword 255		; składowa niebieska
	push	dword 255		; składowa zielona
	push	dword 255		; składowa czerwona
	call	_makecol
	add	esp, 3*4

	; narysuj linię
	push	eax			; kolor
	push	dword 240		; współrzędna Y końca
	push	dword 320		; współrzędna X końca
	push	dword 400		; współrzędna Y początku
	push	dword 540		; współrzędna X początku
	push	dword [_screen]
	call	_line
	add	esp, 6*4

	; stwórz kolor zielony do narysowania koła
	push	dword 0
	push	dword 255
	push	dword 0
	call	_makecol
	add	esp, 3*4

	; narysuj koło
	push	eax			; kolor
	push	dword 20		; promień
	push	dword 240		; współrzędna Y środka
	push	dword 320		; współrzędna X środka
	push	dword [_screen]
	call	_circle
	add	esp, 5*4

	; czekaj na klawisz
	call	_readkey

koniec:
	; zamknij Allegro
	call	_allegro_exit
	; powróć z naszej funkcji głównej
	ret

section .data
napis			db	"Allegro", 0	; napis do wyświetlenia
_mangled_main_address	dd	_mangled_main	; wymagane
err			dd	0		; nasza zmienna błędów

Przykład pochodzi z tej strony.


... i to tyle.