Jam Ne

Rabu, 22 Juni 2011

PERINTAH DASAR ASSEMBLER



  1. Mov
Perintah untuk mengisi, memindahkan, memperbaharui isi suatu register, variabel ataupun suatu lokasi memori.
Penulisan perintah:
MOV [operand A],[operand B]
Dengan ketentuan operand A merupakan register, variabel, lokasi memori dan ketentuan isi operand B berupa register, variabel, lokasi memori ataupun bilangan.
Operand B merupakan bilangan asal yang akan diisikan ke operand A, dengan kata lain operand A merupakan tujuan pengisian atau penduplikatan dari operand B.
Contoh:
MOV AH, AL
Operand A dari perintah diatas adalah register AH
Operand B dari perintah diatas adalah register AL
Hal yang dilakukan dari perintah diatas adalah menduplikatkan isi register AL ke register AH
MOV AH,02
Operand A dari perintah diatas adalah register AH
Operand B dari perintah diatas adalah bilangan 02
Hal yang dilakukan dari perintah diatas adalah memasukkan 02 ke register AH

  1. Int (Interrupt)
Perintah Int (Interrupt) mempunyai cara kerja yang sama dengan perintah GOSUB pada BASIC, hanya pada Int, subrotine yang akan dipaggil sudah tersedia pada memori komputer.
Subrotine yang dipanggil menggunakan perintah Int (interrupt) terdiri dari 2 jenis, yaitu:
a.       Bios Interrupt yaitu Int yang disediakan oleh BIOS (Basic Input Output System). Interrupt yang termasuk dalam Interrupt BIOS adalah Int 0 hingga Int 1F hexa.
b.      DOS Interrupt yaitu Int yang disediakan oleh DOS (Disk Operating System). Interupt yang termasuk dalam Interrupt DOS adalah Interrupt diatas Int 1F hexa. Misal: Interrupt 20 hexa, Interrupt 21 hexa dll.
  • Int 20
Int 20h merupakan salah satu dari DOS Interrupt. Tugas Int 20h adalah memberhentikan proses komputer terhadap suatu program COM. Bila pada semua program Com tidak terdapat Int 20h, maka sudah bisa dipastikan bahwa bila program diproses, maka akan terjadi hanging pada komputer. Hal ini terjadi karena komputer tidak menemukan perintah pemberhentian proses.
  • Int 21h Service 02
Int 21h juga merupakan salah satu dari DOS Interrupt. Int 21h mempunyai banyak tugas, maka tugasnya dibagi-bagi menjadi beberapa bagian. Untuk memanggil bagian-bagian itu, perlu disertakan nomor bagiannya yang disebut Service Number.
Untuk menjalankan fungsi Int 21h service 02 harus dipenuhi beberapa syarat:
o   Register AH, harus berisi service number dari Int 21h yang akan dijalankan (02h)
o   Register DL, harus berisi bilangan hexa dari karakter ASCII yang akan dicetak

  1. Q (Quit)
Bila kita mengetik Q dan menekan Enter, maka akan segera kembali ke DOS Prompt.
Contoh:
A>DEBUG
-Q
A>

  1. H (Hexa)
Perintah yang melaksanakan penjumlahan dan pengurangan terhadap dua bilangan hexa.
Bentuk Umum Instruksi:
H operand1  operand2
Contoh:
-H  2204   2012
42162
Pada perintah diatas terdapat dua bilangan. Bilangan sebelah kiri adalah penjumlahan kedua bilangan tersebut dan sebelah kanan adalah pengurangan kedua bilangan tersebut.

  1. R (Register)
Perintah ini adalah untuk mengetahui isi masing-masing register pada saat mengetik R dan menekan Enter.
Contoh:
-R
AX=0000 BX=0000 CX=0000 DX=0000 SP=CE2E BP=0000 SI=0000 DI=0000
DS=0FD8 ES=0FD8 CS=0FD8 IP=0100     MV  UP  DI  PL  MZ  MA  PO  NC
0FD8:0100  E603                   OUT    03,AL

  1. A (Assembler)
Perintah ini berguna untuk tempat menulis program Assembler.
Contoh:
-A100
0fD8:100
Pada sebelah kiri bawah huruf A terdapat angka yang merupakan pernyataan segment dan offset dimana anda menempatkan program.

  1. N (Name)
Perintah ini untuk memasukkan nama program setelah program dibuat.
Bentuk Umum Instruksi:
N [Drive]: [nama program]
Contoh:
-N B:COBA.COM

  1. RCX (Register CX)
Perintah untuk mengetahui dan memperbaharui isi register CX yang merupakan tempat penampungan panjang program yang sedang aktif sebelum dijalankan (running).
Contoh:
-RCX
CX  0000

  1. RIP (Register IP)
Perintah yang memberitahu komputer untuk memulai proses program dari titik tertentu (selalu dimulai dari 100 hexa).
Contoh:
-RIP
IP 0100

  1. W (Write)
Setelah selesai membuat program dan menentukan RCX dan RIP dari program yang dibuat, adalah menulis program itu dahulu sebelum memprosesnya.
Contoh:
-W
Writing 0008 bytes

  1. G (Go)
Untuk memproses di dalam DEBUG ketik huruf G dan tekan Enter, maka program yang ditulis akan dijalankan.
Contoh:
-G
A
Program terminated normally

  1. T (Trace)
Perintah ini untuk memproses sebaris program saja.
Contoh:
-T
AX=0200 BX=0000 CX=0008 DX=0000 SP=CE2E BP=0000 SI=0000 DI=0000
DS=0FD8 ES=0FD8 SS=0FD8 CS=0FD8 IP=0102 MV UP DI PL NZ NA PO NC
0FD8:0102 B241                    MOV   DI,41

  1. U (Unassemble)
Fungsi ini sama dengan fungsi LIST pada BASIC, yaitu untuk melihat ptogram yang sedang aktif saat itu, maka yang ditampilkan adalah program sepanjang 21h.
Contoh:
-U
0FD8:0102  B241                   MOV               DI,41
0FD8:0104  CD21                  INT                 21
0FD8:0106  CD20                  INT                 20
0FD8:0108  D9B90300          FSTCW           [BX+DI+0003]
0FD8:010C F3                        REPZ
0FD8:010D A4                       MOVSB
0FD8:010E B020                    MOV               AL,20
0FD8:0110 AA                       STOSB
0FD8:0111 C3                                    RET
0FD8:0112 3C80                    CMP                AL,80
0FD8:0114 7214                     JB                    012A
0FD8:0116 2C80                    SUB                AL,80
0FD8:0118 1E                                    PUSH              DS
0FD8:0119 53                         PUSH              DX
0FD8:011A BE1E9142          MOV               DS:[4291]
0FD8:011E C51E040C          LDS                BX,[0C04]

Untuk menentukan sendiri panjang program yang ingin dilihat dapat digunakan perintah L (Length) dibelakang U.
Bentuk Umum Instruksi:
U [tempat memulai Unassemble]  L [panjang program]
Contoh:
-U100  L 0D
0FD8:0100  B910000             MOV               CX,0010
0FD8:0103  B402                               MOV               AH,02
0FD8:0105  B241                               MOV               DL,41
0FD8:0107  CD21                              INT                 21
0FD8:0109  E2F8                               LOOP             0103
0FD8:010B  CD20                             INT                 20

UTILITY ASSEMBLER
Menjalankan Assembler
Untuk memulai pembuatan program, harus dijalankan DEBUG.COM terlebih dahulu.
Contoh:
A>Debug
-A100
0FD8:0100
Pada saat mengetik A100 berarti bahwa kita memulai sebuah program Assembler dengan byte pertama program yang diletakkan pada posisi 100 hexa.

Selasa, 21 Juni 2011

DISASSEMBLER

Disassembler adalah program komputer yang menerjemahkan bahasa mesin ke bahasa-operasi perakitan terbalik bahwa assembler. Sebuah disassembler berbeda dari Decompiler, yang menargetkan bahasa tingkat tinggi daripada bahasa assembly. Pembongkaran, output dari disassembler, sering diformat untuk manusia-dibaca daripada kesesuaian untuk input ke assembler, sehingga prinsipnya alat reverse-engineering.
Majelis bahasa kode sumber umumnya

memungkinkan penggunaan konstanta dan komentar pemrogram. Ini biasanya dihapus dari kode mesin dirakit oleh assembler. Jika demikian, disassembler operasi pada kode mesin akan menghasilkan pembongkaran kurang konstanta ini dan komentar; output dibongkar menjadi lebih sulit bagi manusia untuk menafsirkan dari kode sumber asli dijelaskan. Beberapa disassemblers menggunakan informasi debugging simbolik hadir dalam objek file seperti ELF. Para Disassembler Interaktif memungkinkan pengguna manusia untuk membuat simbol mnemonik untuk nilai-nilai atau wilayah kode dalam sesi interaktif: pemahaman manusia diterapkan pada proses pembongkaran sering paralel kreativitas manusia dalam proses menulis kode.
Pembongkaran bukan ilmu pasti: Pada platform CISC dengan variabel-lebar instruksi, atau di hadapan diri-memodifikasi kode, adalah mungkin untuk program tunggal untuk memiliki dua atau lebih disassemblies wajar. Menentukan instruksi yang benar-benar akan ditemui selama menjalankan program mengurangi untuk masalah-unsolvable menghentikan terbukti.

         Menulis disassembler yang menghasilkan kode yang bila dirakit, menghasilkan persis biner yang sama, adalah non-sepele, sering ada perbedaan. Namun, bahkan ketika pembongkaran sepenuhnya benar diproduksi, masalah tetap jika program ini harus dimodifikasi. Sebagai contoh, bahasa mesin instruksi jump yang sama dapat dihasilkan oleh kode perakitan yang melompat ke lokasi yang ditentukan (misalnya, untuk mengeksekusi kode tertentu), atau yang melompat oleh sejumlah byte tertentu (misalnya, untuk melewatkan sebuah cabang yang tidak diinginkan ). Disassembler tidak bisa tahu apa yang dimaksudkan, dan dapat menggunakan sintaks baik, menghasilkan pembongkaran yang mereproduksi biner asli. Namun, jika programmer ingin menambahkan instruksi antara instruksi jump dan tujuan, adalah perlu untuk memahami operasi program untuk menentukan apakah melompat harus absolut atau relatif, yaitu, apakah tujuan harus tetap di lokasi yang tetap, atau pindah sehingga untuk melewatkan kedua instruksi asli dan ditambahkan.
Disassembler A dapat berdiri sendiri atau interaktif. Sebuah disassembler berdiri sendiri, ketika dijalankan, menghasilkan sebuah file bahasa assembly yang dapat diperiksa, satu interaktif menunjukkan efek dari setiap perubahan pengguna membuat segera. Sebagai contoh, Disassembler awalnya mungkin tidak tahu bahwa bagian dari program ini sebenarnya kode, dan memperlakukannya sebagai data, jika pengguna menentukan bahwa itu adalah kode, kode dibongkar hasilnya ditunjukkan segera, memungkinkan pengguna untuk memeriksa dan mengambil lanjut aksi selama jangka yang sama.
Setiap debugger interaktif akan mencakup beberapa cara melihat pembongkaran program yang sedang debugged. Seringkali, alat pembongkaran yang sama akan dikemas sebagai Disassembler mandiri didistribusikan bersama dengan debugger. Sebagai contoh, objdump, bagian dari GNU binutils, berkaitan dengan gdb debugger interaktif.

  • IDA 
  • OllyDbg adalah 32-bit assembler tingkat menganalisis debugger 
  • SIMON adalah tes / debugger / animator dengan disassembler terintegrasi untuk Assembler, COBOL, dan PL / 1

PROTOKOL DATA LINK CONTROL

1 Flow Control
            Flow control adalah sebuah teknik untuk meyakinkan bahwa entisitas pengirim tidak melebihi entitas yang diterima data. Entisitas yang diterima secar khas mengalokasi sebuah bufer data dengan beberapa panjang maksimum untuk sebuah transmisi. Ketika data diterima, receiver harus melakukan sejumlah pengolahan tertentu sebelum memindahkan data ke piranti lunak yang levelnya-lebih-tinggi. Dengan tidak adanya flow control, bufer receiver mungkin terisi dan terlalu penuh ketika sedang mengolah data lama.
1.1 Stop-and-Wait Control
            Bentuk yang paling sederhana dari flow control, dikenal sebagai stop-and-wait flow control, bekerja sebagai berikut. Entisitas sumber mengirimkan sebuah frame. Setelah entisitas tujuan menerima frame tersebut, hal ini mengindikasikan keinginan untuk menerima frame lain dengan mengirimkan kembali jawaban bahwa frame baru saja diterima. Entisitas sumber harus menunggu sampai ia menerima jawaban tersebut sebelum mengirimkan frame tersebut. Dengan demikian, entisitas tujuan dapat memberhentikan aliran data dengan menahan jawaban. Prosedur ini bekerja dengan baik dan, sesungguhnya, mungkin sulit untuk dikembangkan ketika pesan dikirmkan dalam beberapa frame besar. Bagaimanapun, sering kali terjadi kasus di mana sebuah sumber akan memisahkan sejumlah besar blok data ke dalam blok data yang lebih kecil dan mentransmisikan data tersebut dalam banyak frame.
1.2 Sliding-Window Flow Control
            Inti dari permasalahan yang digambarkan sejauh ini adalah bahwa hanya satu frame pada satu waktu yang dapat dikirimkan. Pada situasi ketika panjang bit dari link lebih besar dari panjang frame (a > 1), menghasilkan ketidakefisienan yang serius. Efisiensi dapat sangat dikembangkan dengan membiarkan berbagai frame dikirimkan pada waktu yang sama operasi ini disebut dengan sliding-window flow control.
2 Control Kesalahan
            Kontrol kesalahan mengarah pada mekanisme untuk mendeteksi dan mengoreksi kesalahan yang terjadi pada saat transmisi frame. Sebagai tambahan, kita mengakui kemungkinan adanya dua tipe kesalahan :
  1. Frame hilang
Sebuah frame yang tidak berhasil tiba di tempat tujuannya. Sebagai contoh, sebuah suara ledakan mungkin merusak sebuah frame, sampai pada tingkat di mana penerima tidak sadar bahwa sebuah frame telah dikirimkan.
  1. Frame rusak
Sebuah frame dikenali memang tiba, tetapi beberapa bitnya salah (telah berubah selama transmisi)
Teknik yang paling umum untuk kontrol kesalahan didasari oleh beberapa atau seluruh komponen berikut ini :
  • Deteksi kesalaha
  • Jawaban positif
tujuannya mengembalikan jawaban positif yang berhasi diterima, frame tanpa kesalahan
  • Transmisi ulang setelah waktu habis
Sumber mentransmisikan ulang sebuah frame yang belum dijawab setelah sejumlah waktu yang ditentukan
  • Jawaban negatif dan transmisi ulang
Tujuan mengembalikan sebuah frame jawaban negatif di mana kesalahan terdeteksi. Sumber akan mentransmisikan ulang. Sumber akan mentransmisikan ulang frame seperti itu
Secara kolektif, mekanisme ini dikenal sebagai pinta automatik pengulangan (autumatic repaeT request­- ARQ); pengaruh ARQ adalah untuk mengubah data link yang tidak dapat diandalkan menjadi dapat diandalkan. Ketiga versi ARQ telah distandarisasi, yaitu :
  1. Stop-and-Wait ARQ
  2. Go-Back-N ARQ
  3. Selective-Reject ARQ
3 High-Level Data Link Control (HDLC)
            Hal yan paling penting dari sebuah protokol data link control adalah HDLC. HDLC sebagai dasar bagi banyak protokol data link control lainnya, yang digunakan untuk format yang sama atau mirip dan mekanisme yang sama seperti dalam HDLC.
3.1 Karakteristik
            Untuk memuakan berbagai aplikasi, HDLC mendefinisikan tiga tipe stasiun, du alink, dan tiga mode operasi data transfer. Tiga stasiun tersebut, yaitu :
  1. Stasiun primer
Bertanggung jawab mengendalikan operasi link. Frame yang dihasilkan dari stasiun primer disebut perintah
  1. Stasiun sekunder
Beroperasi di bawah kendali stasiun primer. Frame yang dihasilkan oleh stasiun sekunder disebut respons. Stasiun mempertahankan link logic yang terpisah dengan setiap stasiun sekunder di setiap jalur.
  1. Stasiun gabungan
Menggabungkan fitur primer dan sekunder. Sebuah stasiun yang digabungkan menghasilkan perintah da respons.
Konfigurasi dua link tersebut adalah :
  1. Konfigurasi tidak seimbang
Terdiri dari satu primer dan satu atau lebih stasiun sekunder serta pendukung, baik transmisi full-duplex maupun half-duplex
  1. Konfigurasi seimbang
Terdiri dari dua stasiun yang digabungkan dan pendukung, baik transmisi full-duplex maupun half-duplex
Adatiga mode transfer, yaitu :
  1. Normal response mode (NRM)
Digunakan dengan konfigurasi yang tidak seimbang. Stasiun utama mungkin menginisiasi transfer data ke sebuah stasiun sekunder, tetapi sebuah stasiun sekunder hanya dapat mentrasmisikan data sesuai respons dari perintah stasiun primer.
  1. Asynchronous balanced mode (ABM)
Digunakan dalam konfigurasi yang seimbang. Stasiun gabungan dapat menginisiasi transmisi tanpa menerima izin dari stasiun gabungan lainnya
  1. Asychronous response mode (ARM)
Digunakan dalam konfigurasi yang tidak seimbang. Stasiun sekunder dapat menginisiasi transmisi tanpa secara eksplisit memperoleh izin dari stasiun primer. Stasiun primer masih memiliki tanggunga jawab terhadap jalur, termasuk inisiasi transmisi, pemulihan kesalahan, dan putusnya koneksi logis.
3.2 Struktur Frame
            HDLC menggunakan transmisi sinkron. Seluruh transmisi dalam bentuk frame, dan sebuah format frame tunggal mencukupi untuk semua pertukaran tipe data dan kontrol. Struktur frame HDLC adalah tanda (flag), alamat, dan kontrol yang mendahului hal-hal yang berkaitan dengan informasi disebut kepala (header). FCS dan field flag yang mengikuti hal-hal yang berkaitan dengan data disebut sebagai trailler. Field-field dalam HDLC :
  • Field alamat
  • Field kontrol
  • Field informasi
  • Field frame check sequnce.
3.3 Operasi
            Operasi HDLC terdiri dari pertukaran I-frame, dan U-frame di antara dua stasiun. Berbagai perintah dan respons yang ditetapkan untukk tipe-tipe frame ini terdaftar dalat tabel 7.1

 Operasi HDLC melibatkan tiga fase. Pertama, satu sisi atau sisi lainnya menginisiasi data link sehingga frame mungkin saja ditukar dalam bentuk yang berurutan. Selama fase ini, operasi yang digunakan sesuai dengan yang disetujui. Setelah inisialisasi, pertukaran data pengguna di kedua sisi dan kendali informasi untuk memamfaatkan flow control dan kontrol kesalaha. Pada akhirnya, satu dari kedua sisi memberikan sinyal untuk mengakhiri operasi.

JARINGAN SELULER NIRKABEL

1 Prinsip-Prinsip Jaringan Seluler
            Radio seluler adalah sebuah teknik yang dikembangkan untuk meningkatkan kapasitas yang tersedia untuk layanan telepon radio mobile. Sebelum pengenalan radio seluler, layanan telepon radio hanya disediakan oleh transmitter/receiver berdaya tinggi. Sistem umum akan mendukung sekitar 25 kanal dengan jari-jari efektif sekitar 80 km. Cara untuk meningkatkan kapasitas sistem tersebut adalah menggunakan sistem berdaya rendah dengan jari-jari lebih pendek dan untuk menggunakan banyak transmitter/receiver. Kita memulai bagian ini dengan pandangan sebuah organisasi dari sistem seluler kemudian mengamati beberapa detail dari implementasi mereka.
1.1 Organisasi Jaringan Seluler
            Inti dari jaringan seluler adalah penggunaan transmitter multiple berdaya rendah, dengan urutan 100 W atau kurang. Oleh karena jangkauan dari transmitter seperti itu kecil, sebuah area dapat dibagi dalam sel-sel, masing-masing berperan sebagai antenanya sendiri. Setiap sel dialokasikan sebuah band frekuensi dan dilayani oleh sebuah stasiun dasar, terdiri dari transmitter, receiver, dan unit kontrol. Sel-sel terdekat ditugaskan pada frekuensi-frekuensi yang berbeda untuk mencegah interfrensi atau crosstalk. Bagaimanapun, sel yang cukup jauh satu sama lain dapat menggunakan band frekuensi yang sama.
1.2 Operasi Sistem Seluler
Elemen-elemen penting dari sistem seluler. Pada perkiraan pusat dari setiap sel adalah sebuah stasiun dasar (base station-BS). BS mencakup sebuah antena, pengendali, dan sejumlah transceiver, untuk berkomunikasi pada kanal yang diberikan pada sel tersebut. Pengendali tersebut digunakan untuk menangani proses panggilan antara unit mobile dan sisa dari jaringan tersebut. Pada waktu apa pun, sejumlah unit pengguna mobile mungkin aktif dan berpindah di sekitar dalam sel, berkomunikasi dengan BS. Masing-masing BS dikoneksikan ke sebuah mobile telecommunications switching office (MTSO), dengan satu MTSO melayani banyak BS. Umumnya, link antara MTSO dan MS adalah sebuah kabel, meskipun link tanpa kabel juga memungkinkan. MTSO menghubungkan panggilan antara unit mobile. MTSO juga dihubungkan ke telepon umun atau jaringan telekomunikasi dan dapat membuat sebuah koneksi antara pelanggan tak bergerak ke jaringan publik dan pelanggan mobile ke jaringan seluler. MTSO menugaskan kanal suara ke setiap panggilan, melakukan handoff, dan memonitor panggilan untuk informasi penagihan.
1.3 Dampak Perambatan Radio Mobile
            Komunikasi radio mobile memperkenalkan kerumitan yang tidak ditemukan dalam komunikasi kabel atau komunikasi nirkabel tetap. Dua area umum yang dibahas adalah kekuatan sinyal dan efek perambatan sinyal
  • Kekuatan sinyal
Kekuatan sinyal antara stasiun dasar dan unit mobile harus cukup kuat untuk mempertahankan kualitas sinyal pada penerima yang tak bergerak, tetapi tidak sekuat untuk menerima banyak interferensi dari kanal pembantu dengan kanal dalam sel lain yang menggunakan band frekuensi yang sama. Terdapat beberapa faktor yang membuatnya rumit. Derau (noise) yang dibuat manusia sangat beragam, menghasilkan tingkat noise yang bervariasi.
  • Fading
Meskipun kekuatan sinyal dalam jangkauan yang efektif, efek perambatan sinyal mungkin menggangu sinyal dan menyebabkan kesalahan.
Ketika merancang layout seluler,, teknisi komunikasi harus memperhitungkan beragam efek perambatan, tingkat daya transmisi maksimum yang diinginkan pada stasiun dasar dan unit mobile, tinggi umum dari antena unit mobile, dan tinggi yang tersedia dari antena BS. Faktor-faktor ini akan menentukan ukuran sel individu. Sayangnya, seperti yang dijelaskan, efek perambatan bersifat dinamiss dan sulit untuk diprediksi. Hal terbaik yang dapat dilakukan adalah dengan menggunakan sebuah model berdasarkan data empiris dan menerapkan model itu ke lingkungan yang diberikan untuk mengembangkan panduan-panduan ukuran sel.
1.4 Fading Dalam Lingkungan Mobile
            Mungkin masalah teknis yang paling menantang yang dihadapi oleh para teknisi sistem komunikasi adalah fading dalam lingkungan mobile. Istilah fading mengacu pada variasi waktu dari daya sinyal yang diterima yang disebabkan oleh perubahan-perubahan dalam media transmisi atau jalur. Pada lingkungan tetap, fading dipengaruhi oleh perubahan-perubahan dalam kondisi atmosferik, seperti hujan. Akan tetpai, dalam lingkungan mobile, di mana satu dari dua antena dipindahkan relatif terhadap yang lain, lokasi relatif dari berbagai hambatan berubah sepanjang waktu, menciptakan transmisi kompleks.
2.Analog Generasi Pertama
            Jaringan telepon seluler awal menyediakan kanal lau lintas; jaringan ini sekarang disebut sebagai sistem generasi-pertama. Sejak tahun 1980-an, sistem generasi pertama yang paling umum di Amerika Utara adalah Advanced Mobile Phone Service (AMPS) yang dikembangkan oleh AT &T. Pendekatan ini juga umu di Amerika Selatan, Australia, dan China. Meskipun secara perlahan digantikan oleh sistem generasi-kedua. AMPS masih umum digunakan.
3 CDMA Generasi Kedua
            Jaringan seluler generasi pertama, seperti AMPS, cepat sekali menjadi populer, mengancam meluapnya kapasitas yang tersedia. Sistem generasi kedua telah dikembangkan untuk menyediakan sinyal dengan kualitas yang lebih baik, kecepatan data yang lebih tinggi untuk mendukung layanan digital, kapasitas lebih besar. BLAC99b menuliskan hal berikut sebagai perbedaan antara dua generasi :
  • Kanal lalu lintas
Perbedaan yang paling penting antara dua generasi tersebut adalah sistem generasi- pertama hampir murni analog, sedangkan sistem generasi-kedua adalah digital
  • Enkripsi
Oleh karena semua lalu lintas kontrol, digitalkan dalam sistem generasi-kedua, hal itu relatif sederhana untuk mengkodekan semua lalu lintas untuk mencegah penyadapan. Semua sistem generasi-kedua menyediakan pengamanan seperti ini.
  • Deteksi dan koreksi kesalahan
Aliran lalu lintas digital dari sistem generasi-kedua juga memberikan mamfaat teknologi deteksi dan koreksi kesalahan. Hasilnya tentu saja berupa penerimaan suara yang sangat jelas
  • Akses kanal
Pada sisteme generasi-pertama, masing-masing sel mendukung sejumlah kanal. Pada waktu tertentu, sebuah kanal dialokasikan hanya ke satu pengguna. Sistem generasi-kedua juga menyediakan banyak kanal per sel, tetapi setiap kanal secara dinamis dibagi oleh sejumlah pengguna menggunakan division multiple access (TDMA) atau code multiple access (CDMA)
4 Sistem Generasi Ketiga
Tujuan komunikasi nirkabel generasi-ketiga (3G) adalah untuk menyediakan komunikasi nirkabel berkecepatan-tinggi secara wajar untuk mendukung multimedia, data, dan video sebagai penambahan suara. ITU milik International Mobile Telecommunications pada tahun 2000 (IMT-2000) berinisyatif untuk mendefinisikan pandangan ITU mengenai kemampuan generasi-ketiga :
  • Kualitas suara yang dapat dibandingkan dengan jaringan telepon umum
  • Kecepatan data 144-kbps yang tersedia untuk pengguna dalam kendaraan bermotor berkeecepatan-tinggi di atas area yang besar
  • 384 kbps yang tersedia untuk pejalan kaki yang berdiri dan bergerak lambat di atas area yang kecil
  • Mendukung (untuk difasekan dalam) untuk 2,084 Mbps untuk penggunaan kantor
  • Kecepatan transmisi data yang simetris dan asimetris
  • Mendukung, baik untuk layanan data paket-switched maupun sirkuit swithed
  • Sebuah antarmuka yang dapat menyesuaikan diri terhadap internet untuk merefleksikan sistem asimetri antara lalu lintas pulang dan pergi secara efisien
  • Penggunan yang lebih efisien akan spektrum yang tersedia secara umum
  • Mendukung berbagai jenis peralatan mobile
  • Fleksibilitas untuk memberikan pengenalan terhadap layanan dan teknologi baru.

Bahasa Assembly Layanan Input/Output


  1. 1.     PROSEDUR / SUBRUTIN
Prosedur adalah suatu blok intruksi yang secara logic melakukan suatu tugas tetentu yang dapat dipanggil oleh program utama atau prosedur lain. Setap prosedur mempunyai suatu tugas otomik yang tidak tergantung pada program lain. Pada beberapa bahasa pemrograman, prosedur juga sering disebut subrutin.
Unsur penting dalam suatu prosedur adalah nama prosedur. Suatu prosedur dapat digunakan oleh prosedur lain atau program utama dengan cara memanggil nama prosedurnya. Penggunaan prosedur dapat dilakukan berulang-ulang sesuai keperluan.
Dalam pemrograman high level, terdapat dua istilah yang memiliki karakteristik yang sedikit berbeda, yaitu konsep prosedur dan fungsi. Fungsi adalah ssubrutin yang mengembalikan hasil, sedangkan prosedur tidak. Istilah subrutin merupan istilah umum dari keduanya. Kata prosedur dan subrutin sering dipakai secara bergantian.
KEYWORD PROC, ENDP, CALL DAN RET
Dalam bahasa assembly, KEYWORD PROC dan ENDP menandai awal dan akhir prosedur. Pada contoh program dibawah ini terdapat dua prosedur yang diberi nama “main” dan “first_proc”. Dalam prosedur main terdapat perintah call, yaitu perintah untuk memanggil prosedur. Pada akhir prosedur first_proc terdapat perintah ret, yaitu perintah untuk kembali ke intruksi pada prsedur pemanggil.
.code
Main PROC
...
Mov ax,1
Mov dx,ax
Call first_proc
...
...
Main ENDP
First_proc PROC
...
Mov cx, 2
Mov bx, 3
...
...
First_proc ENDP
Contoh program : FIRST2PROC.ASM
Pada contoh berikut terdapat dua buah prosedur, yaitu prosedur input_char dan calc_sum. Prosedur input_char berfungsi untuk memasukkan karakter dari keyboard dan mengembalikanya kedalam AL. Prosedurnya sangat sederhana, hanya mengandung dua intruksi yang diperlukan untuk memanggil fungsi 1 DOS (input keyboard). DOS otomatis mengembalikan karakterke dalam AL. Jadi, nilai akan tersimpan disana ketika input_char kembali kepemanggilnya, yaitu prosedur main.
Title contoh program subrutin
Dosseg
.model small
.stack 100h

.data
Char db ?
Array dw 100h, 200h,300h,400h,500h
Array_size equ 5
Sum dw ?

.code
Main proc
Mov ds, ax
Call input_char
Mov char, al
Mov bx,offset array
Mov cx,array_size
Call calc_sum
Mov sum,ax

Mov ax,4000h
Int 21h
Main endp

Cala_sum proc
Push bx
Push cx
Mov ax,0
Cls :
Add ax,[bx]
Add bx,2
Loop csl
Pop cx
Pop bx
Ret
Calc_sum endp
End main
Prosedur calc_sum menghitung jumblah isi array integer sampai 65,535 integer. Untuk memangggil prosedur ini, pada prosedur main dilakukan settiing offset array. Nilai offset array ditempatkan dalam register bx. Untuk menghitung jumlah elemen, digunakan register cx. Program pemanggil harus menyesuaikan parameter sesuai keperluan subrutin yang dipangggil
TIPE PROSEDUR NEAR DAN FAR
NEAR
Pemanggilan prosedur NEAR dilakukan ketika pemangil dan surutin berada dalammsegment program yang sama. Dalam hal ini assembler akan membuat kode mesin untuk near call. Sebelum mengakses subrutin, intruksi call menyimpan nilai IP (INTUKTION POINTER) saat ini kedalam stack. Kemudian nilai IP diganti dengan nilai offset subrutin. Dengan cara inilah subrutin dijalankan.
Intruksi RET (kependekan dari Return) pada akhir prosrdur berfungsi untuk mengembalikan eksekusi intuksi pada program pemanggil. Proses yang terjadi adalah nilai yang terdapat dalam stack diambil kembali dan dimasukkan kedalam IP. Dengan cara ini maka intruksi yang akan eksekusi berikutnya adalah intruksi yang terdapat pada program pemanggil.
 
Tabel diatas menjelaskan tentang proses pemanggilan prosedur NEAR dengan contoh offset.
FAR
          Pemanggilan prosedur FAR dilakukan ketika pemanggil dan subrutin berada pada segment kode yang berbeda. Dalam hal ini assembler akan membuat kodee mesin untuk far call. Sebelum mengaksees subrutin, intruksi CALL terlebiih dahulu menyimpan nilai register CS dan IP saat inii kedalam stack. Kemudian, intruksi tersebut mengambil alamat segment subrutin kedalamm CS dan offsetnya kedalam IP.
 
Tabel diatas menunjukkan prosedur main membuat pemanggiln prosedur FAR terhadap subrutin dalam segmen berbeda. Deklarasi FAR harus ditambahkan sesudah nama subrutin 1 dan operator FAR PTR  ditambahkan pada intruksi call pada saat memanggil. Pada akhir subruti 1, assembler akan membuat intruksi mesin khusus RETF. Intruksi ini berfungsi untuk mengembalikan eksekusi kepada pemanggilnya. Waktu eksekusi untuk prosedur FAR lebih lambat dari pada prosedur NEAR karena adnya penambahan proses push dan pop untuk nilai segmennya ( CS ). 
2. INTERRUPT
Interrupt terdiri dari dua jenis yaitu :
A.    Interrupt Perangkat Keras
          Interrupt perangkat keras adalah sinyal yang dikirim perangakat keras sistem yang memerlukan respons segera dari CPU. Interrupt perangkat keras ini dihasilkan oleh chip khusus, controlle interrupt, yang memberi sinyal pada CPU untuk menangguhkan eksekusi program yang sedang dieksekusi dan memproses intrrupt. Contoh sederhana interrupt perangkat keras adalah akses input dari keyboard. Pada saat salah satu kunci (key) ditekan maka CPU akan menangguhkan program yang sedang dieksekusi dan mengalikannya untuk mengeksekusi rutin BIOS yang membaca karakter dari port input keyboard dan menyimpannya dalam buffer memori. CPU dapat melanjutkan mengeksekusi intruksi yang tertunda setelah proses interrupt selesai.
          Dalam pemrograman ada saatnya progremer harus menghentikan interrupt perangkat keras secara termporer. Misalnya pada saat melakukan operasi yang sensitif pada registe segmen dan stck. Untuk mematikn sementara interrupt perngkat keras, diguunakan intruksi CLI ( clear interrupt flag). Setelah normal kembali, untuk mengaktifkannya, digunakan intruksi STI ( set interrupt flag ).

B.     Interrupt Perangkat Lunak
          Interrupt perangkat lunak adalah proses pemanggilan salah satu rutin layanan interrup BIOS atau DOS. Interrupt jenis ini sebenarnya interrupt tiruan, bukan interrupt sesungguhnya. Istilah interrupt masih digunakan karena proses yang terjadi mirip dengan interrupt pada perangkat keras. Interrupt perangkat lunak menyediakan menyediaan akses untuk menangani proses I/O secara rinci. Intruksi interrupt ditandai dengan intruksi INT ( kependekan dari interrupt ). Intruksi INT meminta layanan dari sistem operasi, biasanya untuk I/O. Layanan ini adalah program kecil yang berlokasi di dalam BIOS dan bagian resident DOS.
Intriksi INT
Intriksi INT berfungsi untuk memanggil subrutin yang yang terdapat pada sistem operasi. Identifikasi jenis interrupt ditentukan oleh angka yang nilainya dalam range 00h-FFh. Untuk melengkapi intruksi INT, sebelumnya register AH harus diisi terlebih dahulu dengan nomor fungsi yang mengidentifikasikan subrutin yang diinginkan. Sintak intruksi INT adalah :
INT nomor
Intriksi INT digunakan untuk tampilan konsol baik input maupun output, manipulasi file dan video dan berbagai layanan lain yang disediakan oleh BIOS dan DOS.

INTERRUPT  VECTOR TABLE ( IVT )
      Dalam proses interrupt, CUP mengakses interrupt vector table, yaitu alamat memori yang besarnya 1 KB. Tabel IVT adalah kumpulan pointer yang lebarnya 32 bit yang menunjukkan kesubrutin yang terdapat pada sisstem operasi. Gambar dibawah ini mengilustrasikan langkah-langkah yang diambil oleh CPU pada saat intruksi INT ditemukan dalam program :
 
  • Nomor yang interrupt pada intruksi INT digunakan oleh CPU untuk mengakses data pada interrupt vector table. Dalam contoh, INT 10h. Intruksi ini berfungsi untuk meminta layanan video. 
  • Langkah berikutnya, CPU akan mengambil alamat yang terdapat pada IVT, yaitu (F000:F065). 
  • Alamat ini digunakan untuk mengakses subrutin DOS yang menangani interrupt pada alamat F000:F065, CPU akan mengeksekusi fungsi yang terdapat pada alamat tersebut sampai ditemukan alamat intruksi IRET.
                      Sti
                      Cld
                      Push es
                      Push ds
                      …
                      …
                     IRET
  • Pada saat ditemukan intruksi IRET maka CPU akan mngeksekusi kembali intruksi pada program pemanggil.
               Interrupt prangkat lunak memanggil rutin layanan interrupt dalam BIOS atau DOS. Beberapa interrupt yang serring digunakan :
1.      INT 10h : layanan video; rutin layanan video yang mengatur posisi kursor, geser layar, dan menampilkan grafik video.

2.      INT 16h : layanan keyboard; rutin yang membaca keyboard dan mengecek statusnya.
3.      INT 17h : layanan printer ; rutin untuk instalasi, pint dan mengembalikan status printer.
4.      INT 1Ah : rutin yang mendapat nmor jam pada saat mesin dinyalakan, atau menset pencacah dengan nilai baru.
5.      INT 1Ch : intrrup waktu bagi pengguna; ruti kosong tang dieksekusi 18.2 kali per detik.
6.      INT 21h : layanan DOS ; rutin layanan DOS untuk masukan/ keluaran, penanganan file, manajemen memori dan dikenal sebagai fungsi call DOS.
2.3 FUNGSI CALL DOS
            INT 21h disebut juga fungsi call DOS. Terdapat 87 fungsi berbeda yang didukung oleh interrupt ini,didentifikasikan oleh nomor fungsi yang ditempatkan dalam register AH. Berikut ini daftar fungsi 00h sampai 0Ch :


1.      01H : INPUT KONSOL DENGAN ECHO
Fungsi 1 DOS menunggu karakter yang akan ditampilkan yang diinputkan dari konsol dan menyimpannya dalam register AL. (karakter yang sedang berada dalam buffer secara otomatis akan disimpan kedalam AL).
CTRL-BREAK aktif. Dalam contoh berikut sebuah karakter akan diinput dan ditempatkan dalam variable bernama char :
Mov ah, 1
Int 21h
Mov char, al

2.      02H : OUTPUT KARAKTER

Fungsi 2 DOS mengirim karakter ke konsol. CTRL-BREAK aktif. Karakter yang akan ditampilkan disimpan dalam register DL, seperti contoh berikut :
Mov ah, 2
Mov DL, ‘*’
Int 21h
AL diubah oleh DOS selama pemanggilan int 21h. agar nilainya bias digunakan kembali maka terlebih dahulu harus disimpan dalam stack sebelum pemaggilan int 21h. pada saat selesai pemanggilan int 21h nilai AL dpat iambil kembali.

1.      05H : OUTPUT PRINTER
Untuk mecetak karakter, tempatkan karakter dalam DL dan panggil fungsi 5. DOS menunggu sampai printer siap untuk menerima karakter. Output akan keluar keprinter 1(nama perangkat LPT 1). Contoh berikut mencetak karakter dolar ($).
Mov ah, 5
Mov DL,’$’
INT 21h
Mov dl, 0Dh
INT 21h
2.      06H : INPUT OUTPUT KONSOL LANGSUNG
Fungsi 6 DOS melakukan proses baca atau tulis pada konsol. CTRL-BREAK tidak aktif dan tidak ada filter terhadap karakter. Untuk meminta konsol inpt (tanpa menunggu), register DL harus ber nilai 0FFh. Karakter disimpan dalam register AL. contoh berikut untuk input/output :
Input karakter
Moov ah, 6
Mov dl, 0FFh
Int 21h
Output karakter
Mov ah, 6
Mov dl, ‘&’
Int 21h
Menghapus buffer keyboard. Program aplikasi biasanya dibutuhkan untuk menghapus buffer keyboard. Berikut ini contoh prosedur yang menggabungkan INT 21h dengan intruksi Loop untuk menghapus buffer :
Hapus_keyboard proc
Mov cx, 15
L1 :
Mov ah,6
Mov dl,0FFh
Int 21
Loop L1
Ret
Hapus_keyboard endp

3.      07H : INPUT KONSOL LANGSUNG
Fungsi 7 menunggu karakter yang tidak terfilter dari konsol. Karakter tidak ditampilkan di konsol dan CTRL-BREAK aktif. Fungsi input ini cocok untuk karakter khusus seperti karakter fungsi dan panah kursor.
Contoh program:
Mov ah, 7
Int 21h
Mov char,al
4.      08H : INPUT KONSOL TANPA ECHO
Fungsi 8 menunggu karakter yang tidak difilter dari konsol tanpa menampilkannya, sementara CTRL-BREAK aktif. Karakter disimpan dalam register AL. fungsi input ini cocok untuk larakter khusus.
Contoh :
Mov ah, 8
Int 21h
Mov char, al

5.      09H : OUTPUT STRING
Fungsi 9 menampilkan string karakter pada konsol. Alamat offset string harus ada dalam DX, dan string harus diakhiri oleh karakter dolar ($).
Contoh :
Mov ah, 9
Mov dx, offset string
Int 21h
String db ‘hallo kota bandung.’,Odh, Oah,’$’

6.      0AH : BUFFER INPUT KONSOL
Fungsi 0Ah membaca string karakter sampai 255 karakter dari konsol dan menyimpannya dalam buffer. Enter digunakan untuk mengakhiri input. CTRL-BREAK aktif dan seluruh karakter ditampilkan pada konsol.
Sebelum fungsi dipanggil, DX harus diisi dengan offset area parameter keyboard. Format area sebagai berikut :
 
Dalam byte offset 0 ditempatkan jumlah maksimum karakter yang bias diinput. Jika jumlahnya 5, misalnya, dos akan mengizinkan 4 karakter tambah enter yang diinput. Sesudah interrupt dipanggil, dos menempatkan jumlah karakter yang benar-benar pada byte offset 1. Karakter tersebut sisimpan mulai offset 2. Contoh :

Mov ah, 0Ah
Mov dx, offset max_kunci
Int 21h
Max_kuncidb 32
Chars_input db ?
Buffer db 32 dup(0)
Misalnya, kita meninputkan 21 karakter dari konsol :
       Nama saya Demian Saba
Maka isi buffer akan sebagai berikut :

 
1.      0B H : MENGAMBIL STATUS INPUT KONSOL
Fungsi 0Bh adalah menerima buffer keyboard DOS untuk melihat karakter dalam buffer. Jika ada karakter, DOS mengembalikan nilai 0FFh dalam register AL. jika tidak, DOS mengembalikan 00 dalam register Al, sementara CTRL-BREAK aktif. Contoh :
Mov ah, 0Bh
Int 21
2.      0CH : MEMBERSIHKAN BUFFER INPUT, MENEMUKAN FUNGSI INPUT
Fungsi  0Ch membersihkan buffer keyboard dan memanggil fungsi input konsol. Funsi yang dipanggil (1,6,7,dan 8) diidentifikasikan oleh nilai dalam AL. karakter input akan dikembalikan dalam AL.contoh :
Mov ah, 0Ch
Mov al, 1
Int21h
Mov chr, al
Input keyboard level BIOS (INT 16H)
Cara langsung untuk mengambil input keyboard adalah dengan mengunakan int 16h layanan keyboard dalam system BIOS. Berikut ini daftar layanan INT 16h :