'Omank dharmA' BaliRockers

Kamis, 21 April 2011

Transmisi Data

TRANSMISI DATA
1. KONSEP DAN TERMINOLOGI
Terminologi Transmisi
Transmisi data terjadi di antara transmiter dan receiver melalui beberapa media transmisi. Media transmisi dapat diklasifikasikan sebagai terpadu atau tak terpadu. Pada kedua hal itu, komunikasi berada dalam bentuk gelombang elektromagnetik. Dengan media terpadu (guided media), gelombang dikendalikan sepanjang jalur fisik, contoh-contoh guided media adalah twister pair, kabel koaksial, serta serat optic. Media tak terpadu (unguided media), juga disebut nirkabel, menyediakan alat untuk mentransmisikan gelombang elektromagnetik, tetapi tidak mengendalikannya, contohnya adalah perambatan (propagation) melalui udara, dan air laut.
Istilah link langsung (direct link) digunakan untuk menunjukkan jalur transmisi antara dua perangkat di mana sinyal dirambatkan secara langsung dari transmitter menuju receiver tanpa melalui peralatan perantara, berbeda dengan amplifier atau repeater yang digunakan untuk meningkatkan kekuatan sinyal. Perhatikan bahwa hal ini dapa diterapkan untuk media terpadu dan tak terpadu.
Media transmisi terpadu adalah titik-ke-titik (point-to-point) jika ia menyediakan link langsung di antara dua perangkat dan membagi media yang sama. Pada konfigurasi multititik (multipoint) terpadu, lebih dari dua perangkat membagi media yang sama.
Sebuah transmisi dapat berupa simplex (simplek), half duplex (dupleks setengah), atau full duplex (duplek penuh). Pada transmisi simplex, sinyal-sinyal ditransmisikan hanya dalam satu arah, satu stasiun sebagai transmitter dan yang lainnya sebagai receiver. Pada operasi half-duplex, kedua stasiun dapat mentrasmisikan, tetapi hanya satu stasiun pada saat yang sama. Pada operasi full-duplex, kedua stasiun dapat mentrasmisikan secara bersamaan. Pada kasus berikutnya, media media membawa sinyal pada kedua arah pada saat yang sama. Bagaimana hal ini dapat terjadi? Kita mencatat bahwa definisi-definisi yang diberikan merupakan yang paling umum digunakan di Amerika Serikat.

(definisi ANSI). Dalam definisi lainnya (definisi ITU-T), istilah simplex digunakan untuk menafsirkan half duplex yang didefinisikan sebelumnya, dan istilah duplex digunakan untuk menafsirkan pada full duplex yang baru saja dijelaskan.
Frekuensi, Spektrum,dan Bandwidht
Sebuah sinyal digerakkan oleh sebuah transmitter dan ditransmisikan melalui sebuah media. Sinyal merupakan fungsi dari waktu, tetapi sinyal juga dapat dinyatakan sebagai fungsi dari frekuensi; oleh karena itu,sinyal terdiri dari komponen-komponen frekunsi yang berbeda. Pandangan domain frekuensi (frequency domain) dari suatu sinyal lebih penting bagi pemahaman mengenai transmisi data dibandingkan denganvpandangan domain waktu (time domain).
Konsep-konsep Domain Waktu jika dipandang sebagai fungsi waktu,sebuah sinyal elektromagnetik dapat berupa analog dan digital. Sinyal analog adalah sinyal yang intensitasnya berubah-ubah dalam bentuk halus sepanjang waktu. Dengan kata lain, tidak ada snyal yang terputus atau dikontiniu. Sinyal digital adalah sinyal yang intensitasnya mempertahankan level yang konstan selama beberapa periode waktu dan dengan tiba-tiba berubah ke level konstan lainnya. Sinyal kontiniu dapat menggambarkan percakapan, dan sinyal diskrit dapat menggambarkan biner 1 dan 0.
Jenis sinyal semacam itu yang paling sederhana adalah sinyal periodik, di mana pola sinyal yang sama berulang sepanjang waktu. Sinyal kontiniu periodik (gelombang sinus) dan sinyal diskrit periodic (gelombang persegi). Secara matematis, sebuah sinyal s(t) didefinisikan periodik jika dan hanya jika
S(t + T) = s(t) -∞< t < + ∞
Dimana T konstanta adalah periode sinyal (T merupakan nilai terkecil yang memenuhi persamaan tersebut). Jika sebaliknya, maka sinyal tersebut tidak periodik (aperiodic).
Gelombang sinus adalah sinyal periodik dasar. Sebuah gelombang sinus umunya dapat digambarkan dengan tiga parameter: amplitudo tertinggi (A), frekuensi (f), dan fase (Ф). Amplitudo tertinggi adalah nilai atau kekuatan sinyal tertinggi sepanjang waktu; biasanya nilai ini diukur dalam ukuran volt. Frekuensi adalah kecepatan [dalam putaran per detik, atau Hertz (Hz)] di mana sinyal berulang-ulang. Parameter yang ekuivalen adalah periode (T) suatu sinyal, merupakan jumlah waktu yang diperlukan untuk melakukan satu pengulanan; jadi, T = 1/f. fase adalah ukuran posisi relative dalam satu waktu di dalam satu periode sinyal. Lebih formalnya, untuk suatu sinyal periodic f(t), fase merupakan sebagian kecil t/T dari periode T dimana t memiliki hubungan yang relative kuat dengan asal. Asal biasanya diambil dari bagian sebelumnya melalui titik 0 dari arah negative kea rah positif. Sebuah fungsi dengan bentuk persamaan sebelumnya dikenal dengan sinusoid.

Konsep-konsep Domain Frekuensi
Pada kenyataannya, sebuah sinyal elektromagnetik dibentuk dari banyak frekuensi. Sebagai contoh, sinyal
s(t) = [(4/π) x (sin(2πft) + (1/3)sin(2π(3f)t)]
Dapat ditunjukkan, dengan menggunakan suatu disiplin ilmu yang dikenal sebagai analisa Fourier, bahwa apa pun sinyal yang dibentuk dari komponen-komponen pada berbagai frekuensi, masing-masing komponen itu disebut sinusoid. Dengan menambahkan sinyal sinusoidal yang cukup, masing-masing dengan amplitude, frekuensi, dan fase yang bersesuaian, sinyal elektromagnetik apa pun dapat dibuat. Dengan kata lain, sinyal elektomagnetik apa pun dapat ditunjukkan memiliki sekumpulan sinyal analog periodik (gelombang sinus) pada amplitude, frekuensi dan fase yang berbeda. Pentingnya melihat sebuah sinyal dari sudut pandang frekuensi (domain frekuensi) dibandingkan dengan sudut pandang waktu (domain waktu).
Spektrum sebuah sinyal adalah rentang frekuensi di mana spectrum berada. Bandwidth mutlak dari suatu sinyal adalah lebar spektrum. Sebagian besar energi dalam sinyal ditempatkan dalam suatu band (pita) frekuensi yang relative sempit. Band ini disebut sebagai bandwidth efektif, atau hanya bandwidth.
Istilah final untuk menentukannya adalah komponen dc (dc component). Jika suatu sinyal mencakup sebuah komponen frekuensi nol, komponen itu adalah suatu arus langsung (dc) atau komponen konstan. Tanpa komponen dc, suatu sinyal memiliki amplitudo rata-rata sebesar 0. Dengan suatu komponen dc, sinyal memiliki frekuensi term pada f = 0 dan amplitudo rata-rata bukan 0.


Hubungan antara Kecepatan Data dan Bandwidth
Telah kita katakana bahwa bandwidth yang efektif adalah band dimana sebagian besar energi sinyal terkonsentrasi didalamnya. Istilah sebagian besar dalam konteks ini sedikit berubah-ubah. Hal terpenting disini adalah meskipun bentuk gelombang tertentuberisi frekuensi sepanjang jarak yang sangat panjang, sebagaimana hal-hal praktis yang berkaitan dengan berbagai system transmisi (transmitter plus media plus receiver) yang dipergunakan akan mampu mengakomodasi hanya satu frekuensi band terbatas. Hal ini, sebaliknya membatasi kecepatan data yang dibawasepanjang media transmisi.
Tentu saja, dapat pula ditunjukkan bahwa komponen-komponen frekuensi dari gelombang persegi dengan amplitude A dan –A dapat dinyatakan sebagai berikut.

Jadi, bentuk gelombang ini memiliki komponen-komponen frekuensi yang tidak terbatas dan oleh korena itu bandwidth yang tidak terbatas. Bagaimanapun juga, amplitude tertinggi dari komponen frekuensi ke-k, kf, hanyalah 1/k, sehingga sebagian besar energy bentuk gelombang ini berada dalam komponen-komponen awal.

3.2 TRANSMISI DATA DIGITAL DAN ANALOG
Secara kasar, istilah analog dan digital disamakan dengan kontiniu dan diskrit, secara berurutan. Dua istilah ini sering digunakan secara berkala dalam komunikasi data, sedikitnya dalam tiga konteks: data, pensinyalan dan transmisi.
Secara singkat, kita mendefinisikan data sebagai entitas yang menyampaikan arti, atau informasi. Sinyal adalah representasi data elektrik atau elektromagnetik. Pensinyalan adalah perambatan sinyal secara fisik melalui suatu media yang sesuai. Transmisi adalah komunikasi data melalui perambatan dan pemrosesan sinyal. Apa yang terjadi selanjutnya, kita berusaha untuk memperjelas konsep-konsep teoretes dengan membahas istilah analog dan digital seperti yang diterapkan terhadap data, sinyal, dan transmisi.

Data Analog dan Digital
Konsep-konsep data analog dan digital cukup sederhana. Data analog menerima nilai yang kontiniu pada beberapa interval. Sebagai contoh, suara dan video mengubah pola-pola intensitas secara kontniu. Sebagian besar data yang dikumpulkan oleh sensor, seperti suhu tan tekanan, dinilai secara kontiniu. Data digital menerima nilai-nilai diskri; contohnya, teks dan bilangan bulat. Contoh yang paling umum dari data analog adalah audio, yang dalam bentuk gelombang suara akustik, dapat dirasakan manusia secara langsung. Contoh umum lainnya mengenai data analog adalah video. Disini , lebih mudah untuk mengarakteristikkan data dipandang dari segi layar TV (tujuan) dibandingkan dengan tampilan asli (sumber) yang direkam oleh kamera TV. Untuk memproduksi suatu gambar pada layar, sebuah sinar elektron memindai (scan) sepanjang permukaan layar dari kiri ke kanan dan dari atas ke bawah. Untuk televise hitam-putih, jumlah iluminasi yang dihasilkan (dalam skala hitam ke putih) di titik manapun proposional terhadap intensitasyang dihasilkan (dalam skala hitam ke putih) di titik manapun proposional terhadap intensitas sinar ketika melewati titik tersebut. Jadi, dalam waktu tertentu sinar yang menerima nilai intensitas analog untuk menghasilkan kecerahan (brightness) yang diinginkan pada titik tersebut di atas layar. Lebih jauh lagi, ketika sinar memindai, nilai-nilai analog berubah. Oleh karena itu, gambar video dapat dianggap sebagai sinyal analog bergantung pada waktu. Untuk mencapai resolusi yang memuaskan, sinar memproduksi sejumlah 483 garis horizontal dengan kecepatan 30 layer penuh per detik.
Contoh umum dari data digital adalah teks dan string karakter. Data tekstual merupakan data yang paling nyaman untuk manusia, tetapi mereka, yang dalam bentuk karakter, tidak mudah untuk disimpan atau ditransmisikan oleh pengelola data dan system komunikasi. System seperti itu didesain untuk data biner. Jadi, sejumlah kode telah direncanakan sehinggakarakter dapat diwakili oleh sederetan bit. Mungkin awalnya contoh paling umum untuk hal ini adalah kode Morse. Saat ini, kode teks yang paling umum digunakan adalah International Reference Alphabet (IRA). Setiap karakter dalam kode ini diakili oleh pola 7-bit yang unik; sehingga 128 karakter yang berbeda dapat diwakili. Jumlah yang jauh lebih besar dari yang dibutuhkan, dan beberapa pola mewakili karakter kontrol yang terlihat. Karakter yang dikodekan dengan IRA hampir selalu disimpan dan ditransmisikan menggunakan 8-bit per karakter. Bit kedelapan adala bit paritas yang digunakan untuk deteksi kesalahan. Bit ini diatur sedemikian rupa hingga jumlah biner 1 dalam setiap oktet, selalu ganjil (paritas ganjil) atau selalu genap (paritas genap). Jadi suatu transmisi kesalahan yang dapat mengubah suatu bit tunggal, atau punjumlah bit yang ganjil, akan terdekteksi.

Sinyal-sinyal Analog dan Digital
Dalam sistem komunikasi, data disebarkan dari satu titik ke titik yang lain melalui sebuah sinyal elektromagnetik. Sinyal Analog adalah gelombang elektromagnetik yang senantiasa bervariasi yang mungkin disebarkan melalui berbagai macam media, bergantung pada spektrum; contohnya media kabel seperti twisted pair dan kabel koaksial; kabel serat optik, dan media media terpadu, seperti atmosfer dan perambatan ruang. Sinyal digital adalah suatu rangkaian pulsa tegangan yang mungkin ditransmisikan melalui media kabel, contohnya tingkat tegangan positif konstan mungkin mewakili biner 0 dan tingkat tegangan negative konstan mungkin mewakili biner 1.
Keuntungan utama dari pensinyalan digital adalah lebih murah dibandingkan pensinyalan analog dan tidak terlalu rentan terdapat gangguan noise. Kerugian utama adalah sinyal digital mengalami atenuasi lebih banyak dibandingkan sinyal analog. Oleh karena adanya atenuasi, atau pengurangan dari kekuatan sinyal pada frekuensi-frekuensi yang lebih tinggi, pulsa-pulsa tersebut membulat dan menjadi lebih kecil. Seharusnya sudah jelas bahwa atenuasi ini dapat segera dapat mengarahkan pada hilangnya informasi yang ada pada sinyal yang disebarkan.
Contoh yang paling dikenal dari informasi analog adalah audio, atau akustik, informasi dalam bentuk gelombang suara, dapat ditangkap secara langsung oleh manusia. Tentu saja, satu bentuk dari informasi akustik adalah percakapan manusia. Bentuk informasi ini mudah dikonversi dalam bentuk sinyal elektromagnetik untuk transmisi. Intinya, semua frekuensi suara, yang amplitudonya dihitung dalam ukuran kekerasan, dikonversi dalam bentuk frekuensi elektromagnetik, yang amplitutonya diukur dalam volt.

Turbo Assembler 5.0

Cara menginstall Turbo Assembler 5.0
  • Langkah pertama:
                Buat folder di drive C:\ bernama install
  •  Langkah kedua:
                Ekstak tasm5.zip hasil download ke folder install
                bisa di download pada link ini http://www.ipanardian.co.cc/2010/01/cara-menginstalasi-turbo-assembler-50.html
  • Langkah ketiga:
                Sekarang buka folder install disana ada folder bernama DISK1, DISK2, DISK3, dst.
Copy semua file dari DISK1, DISK2, DISK3, dst di jadikan dalam satu folder.
  • Langkah keempat:
                Klik INSTALL.EXE untuk menginstal turbo assembler 5.0, maka akan muncul gambar seperti di bawah ini:
Gambar 1
  • Langkah kelima:
Kemudian tekan ENTER, selanjutnya ganti A dengan C maka installasi akan berjalan sebagai gambar berikut:
Gambar source to use : A
Gambar source to use : C
tekan ENTER
  • Langkah keenam:
Setelah mengikuti intruksi gambar di atas, proses installasi pun selesai tinggal menekan intruksi F9 seperti gambar di bawah ini:
Setelah menekan F9 maka akan muncul gambar seperti ini:
  • Langkah ketujuh:
Ini merupakan langkah terakhir tekan tombol ESC pada keybord untuk mengakhiri proses installasi maka akan kembali ke command promt. Gambarnya sebagai berikut:
Aplikasi sudah siap digunakan.
Selamat mencoba semoga succses.




Cara membuat karakter nama pada turbo assembler
  
  • Langkah pertama:
              Buka Folder C:\TASM
  • Langkah kedua:
              Buat folder bernama LAT di dalam folder BIN sehingga struktur foldernya sperti berikut C:\TASM\BIN\LAT
  • Langkah ketiga:
              Buka notepad, sebagai contoh coba ketik syntax di bawah ini:

COBA SEGMENT
ASSUME CS:COBA
ORG 100h

START : MOV AH,02H
MOV DL,49H
INT 21H
MOV DL,20H
INT 21H
MOV DL,4BH
INT 21H
MOV DL,4FH
INT 21H
MOV DL,4DH
INT 21H
MOV DL,41H
INT 21H
MOV DL,4EH
INT 21H
MOV DL,47H
INT 21H
MOV DL,20H
INT 21H
MOV DL,47H
INT 21H
MOV DL,45H
INT 21H
MOV DL,44H
INT 21H
MOV DL,45H
INT 21H
MOV DL,20H
INT 21H
MOV DL,44H
INT 21H
MOV DL,48H
INT 21H
MOV DL,41H
INT 21H
MOV DL,52H
INT 21H
MOV DL,4DH
INT 21H
MOV DL,41H
INT 21H
INT 20H

COBA ENDS
END START

setelah membuat syntak selanjutnya simpan dengan nama COBA.ASM di folder LAT

  • Langkah keempat:
            Buka command prompt, ketik CD C:\TASM\BIN kemudian tekan ENTER, maka akan muncul gambarnya seperti di bawah ini:

  • Langah kelima:
             Ketik TASM LAT\COBA.ASM kemudian tekan ENTER, maka akan muncul gambarnya seperti di bawah ini:
  • Langkah keenam:
               Ketik TLINK/t COBA.OBJ kemudian tekan ENTER, maka akan muncul gambar seperti di bawah ini:
  • Langkah ketujuh:
             Sekarang tinggal mengeksekusi program, caranya ketik COBA kemudian tekan ENTER maka akan tampil gambar seperti di bawah ini:




maka akan muncullah karakter nama yang kita buat.
selamat mencoba




















Rabu, 06 April 2011

MAKRO

Makro (macro) adalah nama simbolik dari string teks atau satu blok kode yang akan digunakan berulang-ulang dalam program. Pada turbo assembler disediakan operator makro yang mudah dan fleksibel dengan kemampuan yang andal. Di samping itu juga terdapat fasilitas makro beberapa (multiline macros) baris dengan argumennya.

Makro teks adalah symbol yang mewakili karakter-karakter teks. Ketika turbo assembler menemukan symbol dalam ekspresi (atau situasi lain) maka assembler akan menggantikan dengan karakter teks symbol tersebut. Contoh, jika DoneMsg adalah teks makro yang mempunyai nilai “Returning to DOS” maka statemen berikut:
GoodBye DB DoneMsg
Menghasilkan
GoodBye DB ‘Returning to DOS’
EQU
Perintah EQU digunakan untuk mendefinisikan makro. Berikut ini sintaks untuk mendefinisikan makro:

Name EQU text_string

Text_string berhubungan dengan makro teks yang bernama Name.
Text_string ditulis di dalam notasi tanda<>, contoh:
DoneMsg EQU <’Returning to DOS’>
Berikut ini kemungkinan bias terjadi kesalahan pada pendefinisian makro, contoh:
Bumi EQU tanah ; Bumi = “tanah”
Planet EQU Bumi ; Planet = “tanah” (Salah !)
Planet EQU ; Planet = “Bumi” (Salah !)

CASTER

Perintah ini mendefinisikan makro teks baru dengan menggabungkan beberapa string secara bersamaan. CASTER mempunyai sintak sebagai berikut:

Name CASTER string[,string]…

CASTER menggabungkan string dari kiri ke kanan. Turbo assembler membuat makro teks baru dengan nama name.

SUBSTER

Perintah ini mendefinisikan makro teks baru yang merupakan sebagian string dari sebuah string. Sintaknya sebagai berikut:

Name SUBSTER string, position_expression[,size_expression]

Makro teks yang baru, Name terdiri dari bagian string yang dimulai dari karakter position_expression, dengan panjang sebanyak size_expression karakter. Jika size_expression tidak dituliskan maka secara otomatis seluruh sisa karakter dari mulai position_expression akan dimasukkan ke dalam makro teks name. turbo assembler menganggap karakter pertama string sebagai posisi 1.

INSTR

Perintah ini mengembalikan posisi suatu string di dalam string yang lain. Sintaknya sebagai berikut:

Name INSTR [start_expression,]string1,string2

Turbo assembler memberikan name nilai numeric posisi string2 dalam string1. Karakter pertama pada string1 mempunyai posisi 1. Jika string2 tidak ada dalam string1 maka nilai posisinya 0. Jika start_expression dituliskan maka pencarian dimulai dari karakter start_exspression tersebut dan karakter pertama string adalah 1.

SIZESTR

Perintah ini mengembalikan nilai banyaknya karakter dalam sebuah makro teks (jumlah karakter dalam string). Sintaknya sebagai berikut:

Name SIZESTR string

Name diberi nilai numeric panjang dan string. String null <> mempunyai panjang nol.

Contoh manipulasi makro teks:

VERSION T300

ABC EQU ; ABC = “abc”

ABC2 EQU ABC ; ABC2= “ABC”

ABC EQU ; ABC = “def” (definisi ulang)

ABC3 CATSTR ABC2,<,>,ABC,<,>,ABC2 ; ABC3= “ABC,DEF,ABC”

ABCLEN SIZESTR ABC ; ABCLEN = 3

ABC3LEN SIZESTR ABC3 ; ABC3STR = 11

COMMA1 INSTR ABC3,<,> ; COMMA1 = 4

COMMA2 INSTR COMMA1+1,ABC3,<,> ; COMMA2 = 8

ABC4 SUBSTR ABC3,5 ; ABC4 = “def,ABC”

ABC5 SUBSTR ABC3,5,3 ; ABC5 = “def”

ABC6 EQU 3+2+1 ; ABC6 = 6

ABC7 EQU %3+2+1 ; ABC7 = “6”

ABC8 EQU %COMMA1 ; ABC8 = “4”

MAKRO BANYAK BARIS

Fasilitas makro banyak baris digunakan untuk mendefinisikan batang tubuh intruksi, perintah, atau macro lain yang disertakan ke dalam program, di mana saja ,akro tersebut di tempatkan. Argument diberikan dalam makro dan turbo assembler akan menggantikan batang tubuh macro dalam module jika disertakan di dalamnya.

Sintak untuk mendefinisikan makro banyak baris secara umum:

Name MACRO parameter_list

Macro_body

ENDM

Name adalah nama makro banyak baris yang didefinisikan. Macro_body mengandung statemen-statemen yang membangun batang tubuh makro. Kita dapat menempatkan berbagi statemen valid turbo assembler dalam makro. ENDM adalah kata kunci untuk menutup makro.

Contoh berikut makro yang diberi nama PUSHALL, ketika dimasukkan ke dalam program, maka akan disertakan semua perintah yang ada di dalamnya.

PUSHALL MACRO

PUSH AX BX CX DX

PUSH DS SI

PUSH ES DI

ENDM

Parameter_list adalah symbol argument dami (dummy) untuk macro.

Sintaknya sebagai berikut:

[argument_dami[,argument_dami…]]

Kita bisa membuat argumen dami sepanjang baris atau dengan menggunakan karakter \ dapat meneruskan pada baris berikutnya.

Contoh:

ADDUP MACRO dest,

s1, s2

MOV dest, s1

ADD dest,s2

ENDM

Setiap argument dami mempunyai sintak:

Nama_dami [:tipe_dami]

Nama_dami adalah nama simbolik yang digunakan untuk tempat menyimpan argument actual yang ditransfer ke dalam makro pada saat d panggil. Tipe_dami adalah pilihan yang menspesifikasikan sesuatu bentuk di mana argument actual harus mengambilnya ketika makro disisipkan.

Makro adalah nama symbol yang diberikan terhadap satu atau banyak perintah bahasa assembly. Ketika dibuat, makro mungkin digunakan dalam program berulangkali sesuai dengan keperluan. Keuntungan mendefinisikan makro adalah perintah ini hanya dibuat sekali: setiap kali makro dipanggil, assembler membangkitkan perintah di dalamnya. Misalkan kita akan menuliskan instruksi berikut untuk menampilkan isi DL berkaliikali dalam program:

Mov ah, 2

Int 21 h

Kita bisa menyimpan intruksi-intruksi tersebut dalam prosedur dan memanggilnya setiap kali diperlukan. Namun, cara ini memerlukan intruksi tambahan yaitu CALL dan RET, yang menyebabkan program menjadi lambat. Cara yang lebih baik adalah membuat makro, misalnya diberi nama PUTCHAR.

Sekali PUTCHAR didefinisikan, dia dapat dipanggil dari mana saja dalam program. Memanggil makro berbeda dengan memanggil prosedur—ini berarti perintah-perintah dalam makro disisipkan dalam program di mana dia dipanggil. Misalkan, kita definisikan makro bernama PUTCHAR.

Putchar macro ; mulai pendefinisian makro

mov ah, 2

int 21 h

endm ; akhir pendefinisian makro

Dalam segmen kode kita dapat memanggil PUTCHAR hanya menggunakan namanya. Setiap kali makro dipanggil, assembler menyisipkan intruksi-intruksi yang ada dalam definisi makro ke dalam kode program:

Kode Sumber

.code

main proc





mov dl, ‘A’

putchar







mov dl, ‘*’

putchar





Kode yang Diperluas

.code

main proc





mov dl, ‘A’

mov ah, 2

int 21h





mov dl, ‘*’

mov ah, 2

int 21h





Perluasan tersebut dilaksanakan oleh assembler selama pembacaan pertama terhadap file sumber dan hasilnya ditunjukkan dalam file listing (.LST).

Makro dieksekusikan lebih cepat daripada prosedur karena tidak membutuhkan intruksi CALL dan RET sepert pada prosedur.

Melewatkan parameter. Satu fitur utama makro adalah kemampuannya untuk menangani parameter yang dikirim. Ketika memanggil PUTCHAR, misalnya kita akan memberikan nilai DL dengan karakter yang akan ditampilkan sebelum memanggil makro. Akan tetapi, jika kita menambah parameter pada definisi makro (char), kita dapat melewatkan karakter pada baris yang sama pada saat memanggil makro:

putchar makro char

mov ah, 2

mov dl, char

int 21h

endm

.code





putchar ‘A’

Pengiriman parameter dalam makro membuatnya lebih fleksibel dan baik serta dapat digunakan kapan saja.

Makro untuk membuat data. Makro mungkin dipanggil dari segmen data. Misalkan, makro dapat digunakan untuk mengalokasikan ruang untuk variable. Pada contoh berikut, setiap isi table dibuat oleh makro ALLOC yang derifi dari empat ruang dan empat byte nol:

alloc macro varname, numbyte

varnamedb numbyte dup (‘ ’, 0, 0, 0, 0)

endm





.data

alloc value1, 20

alloc value2, 50

kode yang diperluas:

value1 db 20 dup(‘ ’, 0, 0, 0, 0)

value2 db 50 dup(‘ ’, 0, 0, 0, 0)

Perlu diketahui, varname dan numbytes adalah parameter yang diperoleh dari argument yang dikirim pada saat makro dipanggil.

Sumber : Abdurohman, Maman. "Buku Pemrograman Bahasa Assembly". 2010