Berlangganan via Email

.:exops weblog:.

Dec
14th

Contoh penggunaan Macro dalam bahasa Assembly

Author: exops | Files under Asm, Kuliah

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.

Post a Comment

:D :P :-/ :)) =)) :(( B-) more »