Untuk menyederhanakan listing program dalam bahasa assembly, tidak hanya menggunakan prosedur saja, kita juga dapat menggunakan Macro. Coba bandingkan antara Contoh penggunaan prosedur dalam bahasa Assembly dengan contoh penggunaan Macro berikut ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | cetak_kalimat MACRO Kalimat lea dx,Kalimat mov ah,09 int 21h endM cetak_angka MACRO angka local ulang local cetak mov ax,angka mov bx, 10 xor cx,cx ulang : xor dx,dx div bx push dx inc cx cmp ax,0 jne ulang cetak : pop dx add dl,'0' mov ah,02 int 21h loop cetak endM .model small .code org 100h tdata : jmp proses arr dw 8,11,8 a dw ? teks1 db 13,10,'Nilai Elemen Array 1 = $' teks2 db 13,10,'Nilai Elemen Array 2 = $' teks3 db 13,10,'Nilai Elemen Array 3 = $' teks4 db 13,10,'Penjumlahan 1 + 2 = $' teks5 db 13,10,'Penjumlahan 2 + 3 = $' cmp1 db 13,10,'Penjumlahan 1 > Penjumlahan 2$' cmp2 db 13,10,'Penjumlahan 1 = Penjumlahan 2$' cmp3 db 13,10,'Penjumlahan 1 < Penjumlahan 2$' proses : cetak_kalimat teks1 cetak_angka arr cetak_kalimat teks2 cetak_angka arr[2] cetak_kalimat teks3 cetak_angka arr[4] cetak_kalimat teks4 mov ax,arr add ax,arr[2] cetak_angka ax cetak_kalimat teks5 mov ax,arr[2] add ax,arr[4] cetak_angka ax lea bx,arr mov ax,arr add ax,[bx+2] mov a,ax mov dx,[bx+2] add dx,[bx+4] cmp dx,a JB Kecil JE Sama JA Besar Kecil : cetak_kalimat cmp1 jmp akhir Sama : cetak_kalimat cmp2 jmp akhir Besar : cetak_kalimat cmp3 jmp akhir akhir : int 20h end tdata |
Ternyata jumlah baris pada listing di atas menjadi lebih sedikit dibanding dengan penggunaan Prosedur.


