Приклад: Написати програму з використанням макросів для обчислення одного з виразів без попереднього математичного спрощення операцій:
2x - 3 + 8(2x -3);
Текст програми:
.686 ; директива визначення типу мікропроцесора
.model flat,stdcall ; завдання лінійної моделі пам'яті
; але угоди ОС Windows
option casemap:none ; відміну малих і великих літер
includelib \masm32\lib\kernel32.lib
ExitProcess proto:dword ; прототип API-функції
mSubB macro x,b ; макрос з ім'ям mSubB
mov al,x
shl al,1 ; занос змінної а
sub al,b ; віднімання а - b
mov res1,al ;; збереження результату в пам'яті
endm ; закінчення макросу
.data ; директива визначення дані
x 6 db ; збереження в комірці пам'яті, розміром байт операнда 6
b db 3
res1 db 0 ; резервування пам'яті для результату res1
res2 dw 0 ; резервування пам'яті для результату res2
.code ; директива початку програми
_start: ; мітка початку програми з ім'ям _start
xor eax,eax
xor ebx,ebx
mSubB [x][b] ; виклик макросу
mov al,8
mov bl,res1
mul bl
mov bl,al
mSubB [x][b] ; виклик макросу
mov al,res1 ; занос із розширенням розрядності
add bx,ax
mov res2,bx ; збереження остаточного результату
invoke ExitProcess, 0 ; повернення управління ОС Windows
end _start ; директива закінчення програми з ім'ям _start
Результат роботи програми: