'Omank dharmA' BaliRockers

Senin, 20 Juni 2011

PENGGUNAN MAKRO LEBIH LANJUT

Pendefinisian Blok Berulang
Satu atau lebih perintah dapat diulang menggunakan perintah REPT, IRP dan IRPC. Hal ini memungkinkan bagi sebuah makro untuk membuat struktur data yang besar.
Perintah REPT. Perintah REPT mengulang stu blok instruksi berdasarkan pencacah. Sintaknya sebagai berikut:

REPT ekspresi
Statemen
ENDM
Ekspresi menentukan jumlah pengulangan dan mengevaluasi bilangan tidak bertanda 16-bit. Misalkan, kita ingin menggunakan REPT untuk mendefinisikan ruang untuk table yang mengandung data 100 mahasiswa:
index label byte
rept 100
db ? dup (?)
db 20 dup (?)
dw ?
endm
kita bisa menggunakan cara yang sama untuk makro yang dapat menggeser operand ke kiri dengan jumlah tertentu. Contoh berikut, count menentukan jumlah instruksi SHL yang dibangkitkan oleh assembler:
mshl macro dest, count
rept count
shl dest, 1
endm
endm
Ini merupakan definisi makr bersarang. Kita dapat melihat bagaimana makro ini dipanggil dengan dua cara, seperti berikut ini:
mshl ax, 1
mshl bx, 4
kode yang diperluas
shl ax, 1
shl bx, 1
shl bx, 1
shl bx, 1
shl bx, 1
Perintah IRP. Perintah IRP membuat pengulangan blok jika setiap pengulangan mengandung nilai yang berbeda. Sintaknya sebagai berikut:
IRP parameter,
Statemen
ENDM
Blok diulang sekali untuk setiap argument. Begitu mengulang, nilai argument sekarang digantikan untuk parameter. Perintah ini berguna untuk menginisialisasi table atau blok data dimana terdapat nilainya yang bervariasi. Argument mungkin berupa nama symbol, string atau konstanta numeric.
Statemen sumber
irp parm, <10, 20, 30, 40>
dw parm, parm*2, parm*3, parm*4
endm
Dibangkitkan oleh assembler
dw 10, 10*2, 10*3, 10*4
dw 20, 20*2, 20*3, 20*4
dw 30, 30*2, 30*3, 30*4
dw 40, 40*2, 40*3, 40*4
IRP dapat menginialisai table offset prosedur. Ini membuktikan kegunaan jika kita ingin mengkodekan pencabangan dengan berbagai cara berdasarkan nilai index. Contoh:
mov bx, indexvalue ; memilih table entry
call proctable [bx] ; pemanggilan tidak langsung
Empat nama prosedur dikirim sebagai argument dalam contoh IRP berikut. Masing-masing disisipkan ketika procname tampil, menghasilkan dalam table yang mengandung offset prosedur:
proctable label word
irp procname,
dw procname
endm
perintah-perintah berikut akan dibangkitkan:
proctable label word
dw movup
dw movdn
dw movlft
dw movrt
Makro Jump Tambahan. Program yang menggunakan loncat kondisional atau loop memungkinkan masuk dalam masalah ketika keluar dari range yaitu 127 byte. Seperti dalam makro LLOOP yang telah dibuat, kta dapat membuat makro extended jump yang mengizinkan loncatkondisional ke label terdekat, sebagai berikut:
jxe macro dest
local L1, L2
je L1
jmp short L2
L1 : jmp dest
L2 :
endm
Dengan makro ini, kita dapat membuat instruksi sebagai berikut, dimana loopTop dapat berada di mana saja dalam program.
jxe loopTop
Masalahnya di sini kita harus membuat makro yang terpisah untuk masing-masing instruksi jump yang berbeda. Di sinilah kelebihan instruksi IRP yang hanya perlu satu blok instruksi saja untuk mengakomodasi seluruh kondisi jump, sebagai berikut:
irp cond,
jxe&cond macro dest
local L1, L2
j&cond L1
jmp short L2
L1 : jmp dest
L2 :
endm
endm
Berikut ini contoh pemanggilan yang dapat dilakukan:
jxa L1 ; jump extended if above
jxae L3 ; jump extended if above or equal
jxz L1 ; jump extended if zero
jxne L4 ; jump extended if not equal
jxg L2 ; jump extended if greater
jxo L1 ; jump extended on overflow
Makro Penggeseran Generik. Di atas telah dibuat makro MSHL yang dapat melakukan penggeseran operand ke kiri sejumlah yang kita inginkan. Dengan mengombinasikan perintah IRP dan makro tersebut, kita dapat membuat suatu prosedur penggeseran yang lebih andal, sebagai berikut:
irp styp,
m&styp macro dest, count
rept count
&styp dest, 1
endm
endm
endm
Contoh pemanggilan makro tersebut adalah :
mshl ax, 3
mrcl count, 2
mshr bx, 4
mror ax, 5
Instruksi yang dibangkitkan oleh assembler adalah sebagai berikut:
mshl ax, 3
shl ax, 1
slh ax, 1
slh ax, 1
mrcl count, 2
rcl count, 1
rcl count, 1
Perintah IRPC. Perintah IRPC pada dasarnya sama dengan IRP, kecuali jumlah karakter dalam string argument menentukan jumlah pengulangan.
Sintaknya sebagai berikut:
IRPC parameter, string
Statement
ENDM
String harus ditutup dengan kurung siku (<>) jika mengandung spasi, atau karakter khusus lainnya. Contoh berikut membangkitkan lima variable (value_A, value_B dan sebagainya) menggunakan karakter dalam string ABCD sebagai argument:
irpc parm, ABCDE
value_&parm db ‘&parm’
endm
Menghasilkan perintah sebagai berikut:
value_A db ‘A’
value_B db ‘B’
value_C db ‘C’
value_D db ‘D’
value_E db ‘E’

LIBRARY MAKRO

Makro CCALL. Salah satu penggunaan makro yang sangat baik adalah meningkatkan set intsruksi Intel—ini akan memudahkan program untuk ditulis. Makro CCALL (condition call) memungkinkan untuk memanggil prosedur berdasarkan flag, menggunakan instruksi tunggal:
Ccall macro con, procname
local L1, L2
j&cond L1
jmp L2
L1 : call procname
L2 : exitm
endm
Makro dapat berdasarkan kondisi flag tertentu. Contoh, kita dapat memanggil prosedur DOS_ERROR ketika CF diset. Misalkan sebagai berikut:
Ccall c, DOS_error
Atau, kita memanggil LOWER jika value 1 kurang dari atau sama dengan AX:
Asal Kode yang dibangkitkan
cmp value 1, ax cmp value1, ax
Ccall le, lower jle ??0002
jmp ??0003
??0002 : call lower
??0003 :
Kita dapat memanggil NOT_EQUAL jika AX tidak sama dengan BX :
cmp ax, bx
Ccall ne, not_equal
Setelah membandingkan dua string, kita dapat memanggil EXCHANGE :
call compare
Ccall a, exchange
Makro CMPJ. Makro CMPJ (compare and jump) membandingkan dua operand dan loncat ke kabel berdasarkan flag:
cmpj macro dest, flag, source, label
cmp dest, source
j&flag label
endm
Contoh Pemanggilan
cmpj ax, le, bx, labell ; jika AX <= BX, loncat ke labell
cmpj cx, e, count, exit ; jika CX = count, loncat ke exit
Makro MULT. Seperti kita ketahui, instruksi MUL menyebabkan keterbatasan tertentu; AL atau AX merupakan operand tujuan otomatis, dan operand sumber immediate tidak diperbolehkan. Makro MULT pada contoh berikut melalkukan perkalian operand 16-bit oleh register, operand memori, atau operand immediate:
mult macro dest, source
push ax
push bx
mov ax, dest
mov bx, source
mul bx
mov dest, ax
pop bx
pop ax
endm
Makro MULT mengalikan dest dengan source, menempatkan hasilnya dalam dest. Jika hasilnya lebih besar dari 16 bit, maka CF diset dan bagian atas hasinya disimpan dalam DX.
Contoh berikut memenggil MULT mendemontrasikan fleksibilitas dalam perkalian operand berbagai tipe:
mov cx, value 1
mult cx, 5
mult value1, value2
mult value2, 5


value 1 dw 100h
value2 dw 2
Makro MMOVE. Set intruksi Intel tidak mempunyai instruksi pemindahan dari memor ke memori. Makro MMOVE dapat melakukan hal ini, seperti contoh berikut:
mmove macro dest, source
push ax
if (type dest) EQ 1
mov a1, source
mov dest, al
else
if (type dest) EQ 2
mov ax, source
mov dest, ax
endif
endif
pop ax
endm
Contoh Pemanggilan
mmove word2, word1 ; 16-bit move
mmove byte2, byte1 ; 8-bit move
Oleh karena operator TYPE digunakan pada makro ini maka pesan kesalahan akan ditampilkan jika tdak terdapat perintah. DATA pada file sumber sebelum definisi makro. Hal ini terjadi karena assembler memerlukan untuk meletakkan variable sebelum dapat mengevaluasi tipenya. Segmen berikut mungkin bisa digunakan:
.stack 100h
.data
(variabel)
(definisi makro)
.code
(intruksi)
Loncat Kondisioanal dan Liupan (Conditional Jumps and Loops). Set instruksi Intel mempunyai batasan jangkauan instruksi loncat kondisional—termasuk LOOP—sampai 127 ke depan atau 128 byte ke belakang. Khususnya, ketika program mempunyai sejumlah pemanggilan makro dalam jangkauan loncat kondisional atau liupan, ini mungkin menyebabkan keluar dari range. Misalkan, kita akan mengonversi prosedur WRITESTRNG, READSTRING dan WRITEIN menjadi makro dan menggunakannya dalam program:
Mov cx, 10
L1 : writestring promt
readstring buffer
writein 1000h, 10
loop L1
Contoh ini akan menyebabkan kesalahan sintak karena kode menghasilkan dengan makro di dalamnya, liupan yang lebih dari 127 byte sehingga LOOP akan keluar range.
Makro LLOOP. Makro LLOOP (long loop) mengizinkan kita untuk meliup ke suatu label dalam segment sekarang. Dia melakukan in dengan meliup ke instruksi JMP yang meloncat ke tujuan. JMP, tidak seperti LOOP, dapat menjangkau suatu label dalam segmen:
LLoop macro dest
local A1, A2
loop A1
jmp A2
A1 : jmp dest
A2 :
endm
Makro menggunakan instruksi LOOP tidak seperti biasanya. Dia meloncat ke depan kelabel A1. Pada lokasi ini, instruksi JMP kembali loncat ke dest. Ketika CX = 0, LOOP terjadi dan loncat ke A2, yaitu lokasi instruksi berikutnya.

Jumat, 10 Juni 2011

Membangun program assembly

Menjelaskan dasar-dasar pembuatan program assembly, cara penggunaan rutin-rutin i/o dan sebagai rutin bahasa pemrograman C.
Saat ini, sudah jarang sekali membuat program lengkap yang berdiri sendiri dengan menggunakan bahasa assembly. Assembly sangat berguna untuk keperluan rutin yang kritis dan sangat khusus.
Mengapa ?
Semua itu, sangat mudah jika diprogram dengan mengunakan sebuah bahasa pemrograman beraras tinggi jika dibandingkan dengan bahasa assembly. Juga, dengan menggunakan bahasa assembly membuat program sangat sulit untuk di pindahkan (di porting) ke platform yang lainnya (arsitektur komputer lainnya). Pada kenyataannya, sangat sulit membuat program dalam bahasa assembly secara keseluruhan.
Namun, mengapa banyak orang yang masih belajar bahasa assembly ?.
Alasannya adalah:

1. Kadang-kadang kode ditulis dalam bahasa assembly karena dapat lebih cepat eksekusinya daripada kode yang dihasilkan kompiler.
2. Assembly mengijinkan untuk mengakses perangkat keras secara langsung, hal ini mungkin sulit atau tidak mungkin dapat dilakukan oleh bahasa pemrograman tingkat tinggi.
3. Belajar program menggunakan bahasa assembly akan menolong sebagai penguatan untuk mengerti bagaimana komputer bekerja.
4. Belajar program menggunakan bahasa assembly akan menolong mengerti secara baik bagaimana kompiler dan bahasa pemrograman beraras tinggi seperti C bekerja

LIHAT SELENGKAPNYA : http://elektro.ub.ac.id/bsw/kuliah-1/bahasa-assembly/membuat-program-assembly

Teknik Komunikasi Data Digital

A. Transmisi Sinkron
Ada dua pendekatan yang umum digunakan untuk mencapai sinkronisasi yang diharapkan. Yang pertama yaitu transmisi asinkron, strategi dalam skema ini adalah menghindari masalah timing dengan cara tidak mengirimkan aliran bit yang panjang dan tidak putus-putus. Jadi, data ditransmisikan satu karakter sekaligus di mana setiap karakter panjangnya lima sampai delapan bit. Timing atau sinkronisasi harus dipertahankan hanya di dalam setiap karakter; receiver mempunyai kesempatan untuk melakukan sinkronisasi kembali pada permulaan setiap karakter baru.
Figur 1.1 mengilustrasikan teknik ini. Ketika tidak ada karakter yang ditransmisikan, jalur di antara transmiter dan receiver dinyatakan dalam status idle (luang). Definisi idle ekuivalen terhadap elemen-elemen pensinyalan untuk biner 1.
(a) Format karakter
(b) Aliran karakter asinkron 8-bit
(c) Dampak dari kesalahan timing
Permulaan karakter ditandai dengan start bit (bit permulaan) dengan nilai biner 0. Hal ini diikuti dengan 5 hingga 8 8 bit yang sebenarnyamerupakan karakter. Bit-bit karakter ditransmisikan, yang dimulai dengan bit yang secara signifikan merupakan yang paling sedikit. Sebagai contoh, untuk karakter IRA, bit-bit data biasanya diikuti oleh sebuah bit paritas, yang karenanya berada dalam posisi bit yang paling signifikan. Bit paritas disusun oleh transmitter semacam itu sehingga jumlah total bit-bit dalam karakter, termasuk bit paritas, dapat genap (paritas genap) atau ganjil (paritas ganjil), bergantung pada ketentuan yang digunakan. Bit ini digunakan oleh receiver untuk mendeteksi kesalahan. Elemen akhir adalah stop element (elemen penghentian), yang berupa biner 1. Panjang minimum untuk elemen akhir ditentukan, biasanya 1;1,5; atau 2 kali durasi bit biasa. Tidak tidak adanya nilai maksimum juga ditentukan. Oleh karena elemen akhir sama dengan status idle, transmitter tidak akan terus mentransmisikan elemen akhir sampai elemen akhir siap mengirimkan karakter berikutnya.
Persyaratan timing untuk skema ini sederhana saja, sebagai contoh karakter IRA biasanya dikirim sebagai unit 8-bit, termasuk bit paritas. Jika receiver 5% lebih lambat atau lebih cepat daripada transmitter, pemeriksaan delapan bit karakter akan dipindahkan per 45% dan masih diperiksa dengan benar.
Kesalahan seperti Figur1.1c terjadi karena dua hal. Pertama, sample bit terakhir tidak diterima dengan benar. Kedua, perhitungan bit kemungkinan di luar dari yang ditentukan. Jika bit 7 adalah 1 dan bit 8 adalah 0, bit 8 keliru karena dianggap sebagai bit awal. Kondisi ini disebut framing error (membingkai kesalahan), seperti karakter plus start bit dan elemen akhir yang kadang-kadang ditunjukkan sebagai frame. Membingkai kesalahan kadang-kadang terjadi bila beberapa noise (gangguan) menyebabkan munculnya start bit yang salah sepanjang status idle.
Trasmisi asinkron sangat sederhana dan murah, tetapi memerlukan overhead (tambahan) dua sampai tiga bit per karakter. Sebagai contoh, untuk karakter 8-bit dengan tanpa bit prioritas, menggunakan elemen akhir sepanjang 1-bit, dua dari setiap sepuluh bit membawa informasi, tetapi mereka hanya untuk sinkronisasi saja; sehingga tambahannya adalah 20%. Tentu saja, tambahan persentase dapat dikurangi dengan mengirim blok bit yang lebih besar di antara start bit dan elemen akhir. Bagaimanapun juga, seperti yang ditujukkan dalam Figur 1.1c, semakin besar blok bit, semakin besar tumpukan kesalahan timing. Untuk mencapai tingkat efisiensi yang lebih besar, digunakan transmisi sinkron.

B. Transmisi Sinkron
Dengan transmisi sinkron, suatu blok bit ditransmisikan dalam suatu aliran yang mantap tanpa kode start dan stop. Panjang blok tersebut dapat terdiri dari banyak bit. Untuk mencegah ketidaksesuaian waktu di antara transmiter dan receiver, detaknya bagaimanapun juga harus disinkronisasi. Salah satu kemungkinannya adalah dengan menyediakan sebuah jalur detak terpisah di antara transmiter dan receiver. Salah satu sisi (transmiter dan receiver) mengatur jalur secara teratur dengan satu pulsa pendek per waktu bit. Sisi lainnya menggunakan pulsa regular sebagai detak. Teknik ini bekerja dengan baik untuk jarak pendek, tetapi untuk jarak lebih panjang, pulsa detak akan menjadi sasaran gangguan-gangguan yang sama seperti yang terjadi pada sinyal data, ditambah lagi dengan adanya kesalahan timing. Alternative lainnya adalah dengan menyimpan informasi clocking (penguatan) pada sinyal data. Untuk sinyal-sinyal digital, hal ini dapat diperoleh dengan pengkodean Manchester atau Manchester diferensial. Untuk sinyal-sinyal analog, terdapat sejumlah teknik yang dapat digunakan, misalnya frekuensi pembawa itu sendiri juga dapat digunakan untuk menyinkronisasi receiver berdasarkan pada fase pembawa tersebut.
Dengan transmisi sinkron, terdapat level sinkronisasi yang diperlukan, yang memungkinkan receiver untuk menentukan awal dan akhir suatu blok data. Untuk mencapai hal ini, setiap blok diawali dengan pola bit preamble dan biasanya diakhiri dengan pola bit postamble.
Figur 1.2 Format Frame Sinkron
Figur di atas memperlihatkan, menurut istilah umum, bentuk frame khusus untuk transmisi sinkron. Umumnya, frame diawali dengan suatu preamble yang disebut flag, yang panjangnya 8-bit. Flag yang sama dipergunakan sebagai postamble. Receiver mencari pola flag untuk menandai permulaan frame. Hal ini diikuti oleh sejumlah field control (berisi informasi protocol data link control), kemudian field data (panjang variable untuk sebagian protocol), field control lagi, dan terakhir flag diulang lagi.
Untuk blok data yang cukup besar, transmisi sinkron jauh lebih efisien dari pada asinkron. Transmisi asinkron memerlukan tambahan 20% atau lebih. Kendali informasi, preamble, dan postamble dalam transmisi sinkron biasanya kurang dari 100 bit.

2.2 Tipe-Tipe Kesalahan
Pada system transmisi digital , kesalahan terjadi ketika bit berubah di antara transmisi dan penerimaan; yakni biner 1 ditransmisikan dan biner 0 diterima, atau biner 0 ditransmisikan dan biner 1 diterima. Dua tipe kesalahan yang umum dapat terjadi , kesalahan bit tunggal dan ledakan kesalahan. Kesalahan bit tunggal adalah kondisi kesalahan yang terisolasi yang mengubah satu bit, tetapi tidak mempengaruhi bit yang terdekat. Ledakan kesalahan dengan panjang B adalah sederetan bit B di mana bit pertama dan terakhir serta sejumlah bit menengah diterima dalam kesalahan.
Lebih tepatnya, IEEE Std dan ITU-T Recommendation Q.9 mendefinisikan kedua ledakan kesalahan sebagai grup bit di mana dua bit mengalami kesalahan berturut-turut selalu dipisahkan kurang dari sejumlah x bit yang benar. Bit yang mengalami kesalahan terakhir dalam ledakan dan bit pertama yang mengalami kesalahan pada ledakan berikutnya dipisahkan oleh x atau lebih bit yang benar.
Jadi, dalam ledakan kesalahan terdapat kluser bit dimana terjadi sejumlah kesalahan, meskipun tidak semua bit dalam kluser mengalami kesalahan. Kesalahan bit tunggal dapat terjadi dengan adanya noise putih, ketika rasio signal-to-signal yang sedikit memburuk secara acak cukup untuk membingungkan keputusan receiver mengenai bit tunggal. Ledakan kesalahan lebih umum terjadi dan lebih sulit untuk ditangani. Ledakan kesalahan dapat dapat disebabkan oleh noise impuls dan fading.

2.3 Deteksi Kesalahan
Terlepas dari desain sistem transmisi, pasti akan terjadi kesalahan yang menghasilkan perubahan satu atau lebih bit-bit dalam frame yang ditransmisikan. Selanjutnya, kita asumsikan data itu ditransmisikan sebagai satu atau lebih rangkaian deratan bit yang disebut frame. Kita mendefinisikan probabilitas yang berkaitan dengan kesalahan dalam frame yang ditransmisikan :
Pb : probabilitas bit yang diterima dalam kesalahan; juga dikenal sebagai laju
kesalahan bit (BER)
P1 : probabilitas frame tiba tanpa kesalahan bit
P2 : probabilitas bahwa, dengan algoritma deteksi kesalahan yang digunakan,
sebuah frame tiba dengan satu atau lebih kesalahan yang tidak terdeteksi
P3 : kemungkinan bahwa, dengan algoritma deteksi kesalahan yang digunakan,
sebuah frame tiba dengan satu atau lebih kesalahan yang tidak terdeteksi,
namun tidak ada kesalahan bit yang terdeteksi
Pertama, mempertimbangkan kasus di mana tidak dilakukan apa pun untuk mendeteksi kesalahan. Dengan demikian, probabilitas kesalahan yang terdeteksi (P3) adalah nol. Untuk menyatakan probabilitas yang tersisa, asumsikan probabilitas bit apa pun yyang mengalami kesalahan (Pb) adalah konstan yang tersisa dan indepanden untuk masing-masing bit.

Kemudian kita mendapatkan :
P1 = (1 - Pb)F
P2 = 1 - P1
di mana F adalah jumlah bit per frame. Dengan kata lain, probabilitas sebuah frame tiba tanpa kesalahan bit berkurang ketika probabilitas kesalahan bit tunggal bertambah, seperti yang kita harapkan. Juga, probabilitas sebuah frame tiba tanpa kesalahan bit berkurang dengan penambahan panjang frame, semakin panjang frame maka semakin banyak bit yang dimilikinya dan semakin tinggi probabilitas salah satunya mengalami kerusakan.
Figur 1.3 Proses Deteksi Kesalahan
Hal ini merupakan salah satu hasil yang mendorong penggunaan teknik-teknik deteksi kesalahan. Semua teknik ini beroperasi dengan prinsip-prinsip seperti pada Figur 1.3. Pada kerangka bit tertentu, bit tambahan yang merupakan sebuah kode deteksi kesalahan ditambahkan oleh transmiter. Kode ini dihitung menjadi sebuah fungsi dari bit lain yang ditransmisikan. Biasanya untuk sebuah blok data untuk menghasilkan sebuah kerangka sebesar k bit, algoritma deteksi kesalahan menghasilkan sebuah kode deteksi kesalahan sebesar n - k bit, dengan (n – k)

Sekarang didefinisikan,
T = frame n bit yang akan ditransmisikan
I = blok data k bit (pesan), k bit pertama dai T
F = FCS (n – k) bit, bit (n – k) terakhir dari I
P = pola dari n – k + 1 bit, ini adalah pembahgi yang telah ditentukan
Kita menginginkan T/P tanpa sisa, jadi jelas :
T = 2n – k D +
Jadi dengan mengalikan D dengan 2n – k , kita bergeser ke kiri n – k bit dan memperpanjang hasil tersebut dengan nol. Penambahan F menghasilkan rangkain D dan F , yang merupakan T. Kita menginginkan T dapat dibagi dengan P. Misalkan kita membagi 2n – k D dengan P.
Terdapat hasil bagi dan sisa, oleh karena itu pembagian ini adalah modulo 2, sisanya setidaknya selalu satu bit lebih kecil dari pembagi. Kita akan menggunakan sisa ini sebagai FCS. Maka dari itu di dapat :T = 2n – k D + R
Apakah R ini memenuhi kondisiT/P tanpa sisa? Untuk mengetahui bahwa ini tanpa sisa, lihatlah :
Substitusikan persamaan 1.1, maka akan kita peroleh :
Berapapun juga, angka biner apa pun yang ditambahkan kepada dirinya sendiri, maka modulo 2 akan menghasilkan nol. Dengan demikian :
Tidak terdapat sisa, dan oleh karena itu T dapat dibagi dengan tepat oleh P. Jadi, FCS mudah untuk dibuat hanya dengan membagi 2n – k D dengan P dan menggunakan sisa (n – k) bit sebagai FCS. Pada proses penerimaan, receiver akan membagi T dengan P dan akan menerima tanpa sisa jika tidak terdapat kesalahan.
Pola P dipilih satu bit lebih panjang daripada FCS yang diinginkan, dan pola bit yang tepat bergantung pada tipe kesalahan yang diharapkan. Pada minimum, baik berorde tinggi maupun rendah dari P harus sama dengan 1.
Terdapat metode singkat untuk menentukan kehadiran satu atau lebih kesalahan. Satu kesalahan menghasilkan pembalikan sebuah bit data. Hal ini ekuivalen dengan pengambilan XOR dari bit dan 1 (modulo 2 penambahan 1 ke bit) : 0 + 1 = 1 dan 1 + 1 = 0. Kemudian kesalahan pada frame n bit dapat direpresentasikan oleh field n bit dengan 1 dalam masing-masing posisi kesalahan. Frame Tr yang dihasilkan dapat dinyatakan sebagai :
Dimana :
T = frame yang ditransmisikan
E = pola kesalahan dengan 1 dalam posisi di mana terjadi kesalahan
Tr = frame yang diterima
Jika terdapat kesalahan ( E = 0), receiver akan gagal mendeteksi kesalahan jika dan hanya jika Tr dapat dibagi P yang sama dengan E dapat dibagi P. Secara tidak sengaja, hal ini terlihat tidak seperti kejadian.
Polinom
Proses kedua untuk melihat proses CNC adalah menyatakan semua nilai sebagai polinom dalam veriabel dummy X, dengan koefisien biner. Koefisien yang bersesuaian dengan bit dalam angka biner. Dengan demikian, untuk D = 110011, kita mendapatkan D(X) = X5 + X4 + X + 1, dan untuk P = 11001, kita mendapatkan D(X) = X4 + X3 + 1. Sekali lagi, operasi aritmatikanya adalah modulo 2. Sekarang proses CRC dapat dideskripsikan sebagai :
Bandingkan persamaan ini dengan persamaan (1.1) dan (1.2)
Kesalahan E(X) akan tidak terdeteksi hanya jika dapat dibagi dengan P(X). Hal itu dapat diperlihatkan [PETE61, RAMA88] bahwa semua kesalahan tersebut tidak dapat dibagi dengan P(X) yang dipilih dank arena itu dapat dideteksi.
• Semua kesalahan bit tunggal, jika P(X) mempunyai lebih dari satu bukan nol.
• Semua kesalahan bit ganda, selama P(X) mempunyai tipe polinom special, yang disebut polinom primitive, dengan eksponen maksimum L, dan panjang frame adalah kurang dari 2L -1.
• Beberapa kesalahan jumlahnya ganjil, selama P(X) berisi factor (X + 1).
• Beberapa ledakan kesalahan di mana panjang ledakan adalah kurang dari atau sama dengan n – k; yakni, kurang dari atau sama dengan panjang FCS.
• Fraksi ledakan kesalahan dengan panjang n – k + 1; fraksi sama dengan 1 – 2 –(n – k – 1)
• Fraksi ledakan kesalahan dengan panjangh lebih besar dari n – k + 1; fraksi sama dengan 1 – 2 –(n – k – 1)
• Fraksi ledakan kesalahan dengan panjang lebih besar dari n – k +1 ; fraksi sama dengan 1 – 2 – (n – k)
Pada penambahan, hal itu dapat diperlihatkan jika semua pola kesalahan dianggap hampir sama, kemudian untuk ledakan kesalahan dengan panjang r + 1, probabilitas dari kesalahan yang tidak terdeteksi (E(X) dapat dibagi dengan (P(X)) adalah ½ r – 1, dan untuk ledakan yang paling panjang, kemungkinannya adalah ½ r , dimana r adalah panjang FCS.
Empat versi P(X) yang digunakan secara luas :
CRC-12 = X12 + X11 + X3 + X2 + X + 1
CRC-16 = X16 + X15 + X2 + 1
CRC-CCITT = X16 + X12 + X5 + 1
CRC-32 = X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 + X8 + X7 + X5 + X4 + X2 + X + 1

Sistem CRC-12 digunakan untuk transmisi aliran karakter 6-bit dan menghasilkan FCS 12-bit. CRC-16 dan CRC-CCITT populer untuk karakter 8-bit, di Amerika Serikat dan Eropa, secara berturut-turut, dan keduanya menghasilkan 16-bit FCS. Hal ini akan terlihat cukup untuk sebagian besar aplikasi, meskipun CRC-32 dispesifikasikan sebagai opsi dalam beberapa transmisi sinkron titik ke titik dan digunakan dalam standar IEEE 802 LAN.
Logic Digital proses CRC dapat dipresentasikan dengan, dan benar-benar diterapkan sebagai, sebuah sirkuit pembagi yang terdiri dari gerbang XOR dan shift register (register geser). Shift register adalah sebuah string dari perangkat storage (penyimpanan) 1-bit. Setiap perangkat memiliki sebuah jalur output, yang mengindikasikan nilai yang tersimpan saat ini, dan sebuah jalur input. Dalam waktu yang terpisah, dikenal sebagai waktu detak (clock time), nilai dalam perangkat storage diganti dengan nilai yang diindikasikan oleh jalur input. Keseluruhan register di-clock secara simultan, menyebabkan pergeseran 1-bit di seluruh register. Sirkuit tersebut diimplementasikan sebagai berikut.
1. Register berisi n – k bit, sama dengan panjang FCS
2. Terdapat lebih dari n – k gerbang XOR
3. Ada atau tidak adanya gerbang berhubungan dengan ada dan tidaknya suku dalam pembagi polinom, P(X), tidak termasuk suku 1 dan X n – k.

Arsitektur sirkuit CRC adalah penjelasan paling baik dengan pertama-tama mempertimbangkan contoh yang diilustrasikan dalam Figur 6.5. Pada contoh ini, kita menggunakan :
Data D = 1010001101 D(X) = X9 + X7 + X3 + X2 + X + 1
Pembagi P = 110101 P(X) = X5 + X4 + X2 + 1
Figur 1.5a memperlihatkan implementasi shift register. Prosesnya dimulai dengan dihapuskannya shift register (semua nol). Pesan atau dividen, kemudian dimasukkan satu bit dalam satu waktu, dimulai dengan shift signifikan. Figur 1.5b merupakan table yang memperlihatkan nilai yang tersimpan saat ini dalam lima elemen shift register. Sebagai tambahan baris memperlihatkan nilai yang terlihat pada output dari tiga sirkuit XOR. Akhirnya, baris memperlihatkan nilai input bit berikutnya, yang tersedia untuk mengoperasikan langkah selanjutnya.
Perhatikan bahwa pengoperasian XOR mempengaruhi C4, C2, dan C0 pada shift berikutnya. Hal ini identik dengan proses panjang divisi biner yang telah diilustrasikan sebelumnya. Proses berlanjut melalui semua pesan bit. Untuk memproduksi output yang tepat, digunakan dua switch. Bit data input diberikan dengan kedua switch pada posisi A. Hasilnya, untuk 10 langkah pertama, bit input diberikan shift register dan juga digunakan sebagai bit output. Setelah data terakhir diproses, shift register akan berisi pengingat (FCS) (diperlihatkan berbayang). Secepat data terakhir menyajikan shift register, kedua switch disetel ke posisi B. Hal ini mempunyai dua efek : 1. Semua gerbang XOR menjadi mudah dilewati ; tidak ada bit yang berubah, dan 2. Seiring dengan berlanjutnya proses shifting, 5 bit CRC adalah outputnya.
Pada receiver, logic yang sama digunakan. Seiring dengan setiap bit M tiba, bit tersebut disisipi ke dalam shift register. Jika di sana tidak terdapat kesalahan, shift register akan berisi pola bit untuk R sebagai hasil dari M. Sekarang, bit dari R yang ditransmisikan mulai berdatangan, dan akibatnya semua nol keluar dari register sehingga pada penerima, register berisi semua 0.
(a) Implementasi Shift-register
(b) Contoh dengan input 1010001101 dimana input (I) adalah pesan yang dikirim

Figur 1.5 Sirkuit dengan Shift Register untuk Pembagian dengan Polinom X5 + X4 +X2 + 1
Figur 1.6 Arsitektur CRC Umum untuk Implementasi Pembagi (1 + A1X + A1X2 + … + An-1Xn-k-1 + Xn-k)
Figur 1.6 menunjukkan arsitektur umum dari implementasi shift register CRC untuk polinom P(X) = Ai X i , dimana A0 = An-k dan semua Ai lain yang sama dengan 0 atau 1.



2.4 Koreksi Kesalahan
Deteksi kesalahan merupakan teknik yang bermanfaat, ditemukan dalam protokol data link control, seperti HDLC, dan dalam protokol transport, seperti TCP. Bagaimanapun juga, koreksi kesalahan menggunakan kode deteksi kesalahan, membutuhkan blok data yang akan ditransmisikan ulang, seperti yang dijelaskan pada Bab 7. Untuk aplikasi nirkabel, pendekatan ini tidaklah mencukupi untuk dua alasan.
1. Laju kesalahan bit pada link nirkabel dapat menjadi sangat tinggi, yang akan menyebabkan sejumlah besar transmisi ulang.
2. Pada beberapa kasus, terutama link satelit, penundaan perambatan sangat lama dibandingkan dengan waktu transmisi sebuah frame tunggal. Hasilnya adalah sistem sangat tidak efisien. Seperti yang dibahas dalam Bab 7, pendekatan umum untuk transmisi ulang adalah untuk menstransmisi ulang frame yang mengalami kesalahan plus semua urutan frame-frame berikutnya. Dengan data link yang panjang, sebuah kesalahan dalam sebuah frame tunggal mengakibatkan transmisi ulang banyak frame.
Oleh karenanya, diharapkan receiver mampu mengoreksi kesalahan dalam sebuah transmisi yang akan datang berdasarkan bit dalam transmisi tersebut. Figur 1.7 menunjukkan bagaimana secara umum hal ini dilakukan. Pada akhir transmisi, setiap blok data k-bit dipetakan ke dalam sebuah blok n-bit (n > k) yang disebut codeword, menggunakan encoder FEC (forward error correction). Codeword tersebut kemudian ditransmisikan. Selama transmisi, sinyal tersebut marepakan sasaran gangguan-gangguan yang mungkin menghasilkan kesalahan bit dalam sinyal. Pada receiver, sinyal yang dating didemodulasi untuk menghasilkan sebuah string bit yang serupa dengan codeword asli, tetapi mungkin berisi kesalahan. Blok ini dikirim melalui sebuah decoder FEC, dengan satu dari tempat hasil yang mungkin terjadi :
1. Jika tidak terdapat kesalahan bit, input ke decoder FEC identik dengan codeword asli, dan decoder tersebut manghasilkan blok data asli sebagai output.
2. Untuk pola kesalahan tertentu, decoder mungkin saja mendeteksi dan mengoreksi kesalahan tersebut. Jadi, meskipun blok data yang datang berbeda dengan codeword yang ditransmisikan, decoder FEC dapat memetakan blok ini ke dalam blok data asli.
3. Untuk pola kesalahan tertentu, decoder dapat mendeteksi, tetapi tidak mengoreksi kesalahan tersebut. Pada kasus ini, decoder tersebut hanya melaporkan kesalahan yang tidak dapat diperbaiki.
4. Untuk pola kesalahan tertentu yang jarang ditemui, decoder tidak mendeteksi adanya kesalahan yang telah terjadi dan memetakan blok data n-bit yang akan datang ke dalam blok k-bit yang berbeda dengan blok k¬-bit yang asli.
Figure 1.7 Proses Koreksi Kesalahan

Bagaimana mungkin decoder mengkoreksi kesalahan bit? Pada dasarnya, koreksi kesalahan bekerja dengan menambahkan pengulangan pada pesan yang ditransmisikan. Pengulangan tersebut memungkinkan receiver tersebut menyimpulkan isi pesan asli, meskipun di hadapan tingkat laju kesalahan tertentu.

Prinsip prinsip Kode Blok
Sebagai permulaan, kita mendefinisikan sebuah istilah yang akan bermanfaat bagi kita. Jarak Hamming d (v1, v2) di antara dua buah deretan biner n-bit, v1 dan v2 adalah jumlah bit di mana v1 dan v2 tidak cocok. Sebagai contoh, jika :
v1 = 011011, v2 = 1100011
kemudian
d(v1,v2) = 3
Mari kita amati teknik kode blok untuk koreksi kesalahan. Misalkan kita ingin mentransmisikan blok-blok data dengan panjang k-bit. Daripada mentransmisikan masing-masing blok sebagai k-bit, kita memetakan setiap deretan k¬-bit ke dalam sebuah codeword n-bit unik.
Kode blok (n,k) mengkodekan bit data ke dalam codeword n-bit. Umumnya, setiap kodeword valid menghasilkan bit data k asli dan menambahkan check bit (n – k) ke mereka untuk membentuk codeword n-bit. Jadi desain sebuah kode blok ekuivalen dengan desain sebuah fungsi berbentuk vc = f(vd) adalah sebuah vector bit data k dan vc adalah sebuah vector bit codeword n.
Dengan sebuah kode blok (n, k) terdapat 2k codeword valid di luar jumlah total codeword 2n yang mungkin. Rasio dari bit pengulangan terhadap bit data, (n – k)/k,disebut pengulangan dari kode tersebut, dan rasio dari bit data terhadap total bit, k/n,disebut kecepatan kode. Kecepatan kode adalah sebuah ukuran dari seberapa banyak bandwidth tambahan yang dibutuhkan untuk membawa data pada kecepatan data yang sama seperti tanpa kode. Sebagai sontoh, kecepatan kode dari ½ membutuhkan kapasitas transmisi dua kali dari sebuah sistem tidak terkode untuk mempertahankan kecepatan yang sama. Contoh yang kita gunakan memiliki kecepatan kode 2/5 sehingga membutuhkan 2,5 kali dari kapasitas sistem tidak terkode. Sebagai contoh, jika input kecepatan data ke encoder adalah 1 Mbps, maka output dari encoder harus berada pada kecepatan 2,5Mbps.
Untuk sebuah kode yang terdiri dari codeword w1, w2, …, ws, dengan s = 2n , jarak minimum dmin dari kode tersebut didefinisikan sebagai :

Dapat ditunjukkan bahwa kondisi berikut ini dipertahankan. Untuk sebuah nilai bilangan bulat t yang ditentukan, jika sebuah kode memenuhi dmin (2t + 1), maka kode tersebut dapat mengkoreksi semua kesalahan bit hingga mencakup kesalahan bit t. Jika dmin 2t, maka semua kesalahan (t – 1) bit dapat diperbaiki dan kesalahan dari t bit dapat dideteksi, tetapi umumnya tidak dapat diperbaiki. Sebaliknya, kode apapun untuk semua kesalahan dengan besar t yang akan diperbaiki harus memenuhi dmin (2t + 10), dank ode apapun untuk semua kesalahan dengan besar (t – 1) diperbaiki dan semua kesalahan dari besar t dideteksi harus memenuhi dmin 2t.
Cara lain untuk menempatkan hubungan antara dmin dan t adalah dengan menyatakan jumlah maksimum dari kesalahan yang dijamin dapat diperbaiki per codeword memenuhi
Dimana [ x ] berarti bilangan bulat terbesar tidak melampaui x (contoh, [ 6,3 ] = 6). Lebih jauh lagi, jika kita hanya memperhatikan deteksi kesalahan dan tidak koreksi kesalahan, maka jumlah kesalahan t yang dapat dideteksi memenuhi
t = dmin – 1
Figur 1.8 Cara Pengkodean Meningkatkan Kinerja Sistem
Untuk melihat ini, perhatikan bahwa jika dmin kesalahan terjadi, hal ini dapat mengubah satu codeword valid ke yang lain. Jumlah yang lebih kecil dari dmin tidak dapat menghasilkan codeword valid lainnya.
Desain dari sebuah kode blok mencakup sejumlah pertimbangan, antara lain :
1. Untuk nilai n dan k yang ditentukan, kita menginginkan nilai dmin terbesar mungkin.
2. Kode tersebut seharusnya relative mudah untuk dikodekan dan didekokan, membutuhkan memori dan waktu pemrosesan minimal.
3. Kita menginginkan sejumlah bit tambahan (n – k) menjadi kecil, untuk mengurangi bandwidth.
4. Kita menginginkan sejumlah bit tambahan (n – k ), menjadi besar untuk bandwidth.


Jelas terlihat bahwa dua tujuan terakhir saling bertentangan, dan tawar-menawar harus dibuat.
Hal yang penting untuk mengamati Figur 1.8 berdasarkan [LEBO98]. Literatur pada kode koreksi kesalahan sering kali melibatkan grafik jenis ini untuk mendemontrasikan keefektifan dari berbagai skema pengkodean. Pada Figur 1.8 ambang batasnya adalah 5,4 dB. Di bawah ambang batas tersebut, check bit tambahan memberikan tambahan ke sistem tersebut yang mengurangi energy per bit data, hal ini menyebabkan kesalahan meningkat. Di atas ambang batas, daya koreksi kesalahan dari kode dikompensasikan lebih untuk Eb yang berkurang menghasilkan sebuah bati pengkodean.

2.5 Konfigurasi Kanal
Dua karekteristik yang membedakan berbagai konfigurasi data link adalah topologi dan apakah link tersebut half duplex atau full duplex
Topologi
Topologi data link menunjukkan susunan stasiun secara fisik pada medium transmisi. Jika hanya terdapat dua stasiun (contohnya terminal dan computer atau dua computer), linknya adalah titik ke titik. Umumnya link multititik digunakan dalam kasusu sebuah computer (stasiun primer) dan serangkaian terminal (stasiun kedua). Saat ini topologi multititik banyak ditemukan pada local area network.
Topologi multititik tradisional memungkinkan jika terminal hanya mentransmisi dalam waktu singkat. Figure 1.9 mengilustrasikan keuntungan konfigurasi multititik. Jika masing-masing terminal mempunyai link titik ke titik pada komputernya, maka computer harus mempunyai satu port I/O untuk masing0masing terminal. Juga terdapat link transmisi terpisah dari computer ke masing-masing terminal. Pada konfigurasi multititik, computer hanya membutuhkan port I/O tunggal dan jalur transmisi tunggal, yang menghemat biaya.



Figur 1.9 Konfigurasi Terminal/Komputer Tradisional

Full Duplex dan Half Duplex
Perpindahan data melalui jalur transmisi dapat diklasifikasikan sebagai full duplex atau half duplex. Dengan transmisi half-duplex, hanya satu dari dua stasiun pada link titik ke titik yang dapat melakukan transmisi saat itu juga. Mode ini juga disebut sebagai alternative dua cara (two-way alternate), fakta sugestifnya adalah dua stasiun harus menjadi alternative dalam transmisi. Hal ini dapat dibandingkan dengan jembatan satu-jalur, dua-cara (one-lane, two-way brigde). Bentuk transmisi ini selalu digunakan untuk interaksi terminal ke computer. Ketika pengguna memasuki dan mentransmisi data, computer dicegah untuk mengirimkan data ke terminal, yang akan muncul pada layar terminal dan menyebabkan kebingungan.
Untuk transmisi half-duplex, dua stasiun dapat secara simultan mengirim dan menerima data dari yang lainnya. Oleh karena itu, mode ini dikenal dengan dua-cara secara simultan (two-way simultaneous) dan mungkin dibandingkan dengan jembatan satu-jalur dua-cara. Untuk perpindahan data computer ke computer bentuk transmisi ini lebih efisien dari pada transmisi half-duplex.
Dengan pensinyalan digital, yang memerlukan transmisi terpandu, operasi full-duplex biasanya memerlukan dua jalur transmisi terpisah (contohnya, dua twisted pairs) , sedangkan half-duplex memerlukan satu saja. Untuk pensinyalan analog, hal itu bergantung pada frekuensi, contohnya jika stasuin transmisi dan receiver berada pada frekuensi yang sama, maka harus dioperasikan pada mode half-duplex untuk transmisi nirkabel, walaupun dimungkinkan untuk dioperasikan pada pada mode full-duplex untuk transmisi terpandu yang menggunakan dua jalur transmisi terpisah. Jika stasuin mentransmisi pada frekuensi dan menerima dari yang lainnya, maka hal itu dapat dioperasikan dalam mode full-duplex untuk transmisi nirkabel dan dalam mode full-duplex dengan jalur tunggal untuk satu transmisi terpandu.
Sangat mungkin untuk mentransmisikan sinyal digital secara simultan ke dua arah pada jalur transmisi tunggal dengan menggunakan teknim yang disebut echo cancellation (pembatalan echo). Hal ini merupakan teknik pengolahan sinyal yang penjelasannya malampaui cakupan pada pembahasan ini.

2.6 Bacaan yang Disarankan
Pembahasan secara klasik mengenai kode deteksi kesalahan dan CRC adalah [PETE61], [RAMA88] merupakan tutorial yang baik untuk CRC.
[STAL05] mendiskusikan penggunaan kode koreksi kesalahan secara luas, [ADAM91] memberikan pembahasanyang komperenshif mengenai kode koreksi kesalahan. [SKLA01] berisi penulisan yang baik dan jelas dari subjek. Dua survey yang bermanfaat untuk artikel adalah [BERL87] dan [BHAR83]. Pembahasan secara teoritis dan matematis dari kode koreksi kesalahan dapat bibaca di [ASH90], dan [FREE98] memberikan cakupan yang baik mengenai standar antarmuka lapisan fisik.





2.7 Istilah Penting
Bit paritas
Cek paritas
Codeword
Circuit interchange
Cyclic redundancy check (CRC)
Deteksi kesalahan
EIA-232
Forward error correction (FEC)
Frame
Frame check sequence (FCS)
Full duplex
Half duplex
Integrated service digital network (ISDN)
Jarak hamming
Kode deteksi kesalahan
Kode hamming
Koreksi kesalahan
Kode koreksi kesalahan(error correcting code – ECC)
Kode siklik
Titik ke titik
Transmisi asinkron
Transmisi sinkron

Perintah Dasar Assembler

Berikut beberapa perintah dasar pada assembler yang biasa digunakan:

• 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.

• 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:
1. 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.
2. 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.

• Q (Quit)
Bila kita mengetik Q dan menekan Enter, maka akan segera kembali ke DOS Prompt.

• H (Hexa)
Perintah yang melaksanakan penjumlahan dan pengurangan terhadap dua bilangan hexa.
Bentuk Umum Instruksi:
H operand1 operand2

• R (Register)
Perintah ini adalah untuk mengetahui isi masing-masing register pada saat mengetik R dan menekan Enter.

• A (Assembler)
Perintah ini berguna untuk tempat menulis program Assembler.

• N (Name)
Perintah ini untuk memasukkan nama program setelah program dibuat.
Bentuk Umum Instruksi:
N [Drive]: [nama program]

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


sumber : http://www.belajarti.co.cc/2010/03/perintah-dasar-assembler.html
DOWNLOAD : http://www.ziddu.com/download/9586433/ModulAssembling.doc.html

Satuan Bit dan Byte

BIT - merupakan satuan data terkecil. Terdiri dari 1 atau 0. Biasa disebut dengan “Binary”.
BYTE – terdiri dari 8 bit. Memiliki nilai maksimal 225 (0-225). Biasa disebut sebagai “base 16 system” sedangkan binary disebut “base 2 system”.
WORD – merupakan 2 byte atau 16 bit. Word memiliki nilai maksimal 0FFFFh atau 65535d.
DOUBLE WORD – terdiri dari 2 word atau 32 bit. Nilai maksimal = 0FFFFFFFF atau 4294967295d.
KILOBYTE – 1000 bytes?? Bukan. 1 kilobyte tidak sama dengan 1000 bytes. 1 kilobyte sama dengan 1024 (32 * 32) bytes.
MEGABYTE – 1 Megabyte tidak sama dengan 1000000 bytes, tetapi 1024 * 1024 atau 1048578 bytes.
II. Register
Register adalah tempat khusus pada komputer, dimana kita bisa melakukan penyimpanan data. Kita bisa melihat register sebagai sebuah “kotak”, dimana di dalamnya kita bisa menyimpan sesuatu seperti : nama, nomor, kalimat. Kita bisa melihat register sebagai tempat penyimpanan.
Saat ini, kebanyakan komputer menggunakan 9 register 32bit. Yaitu :
EAX: Extended Accumulator Register
EBX: Extended Base Register
ECX: Extended Counter Register
EDX: Extended Data Register
ESI: Extended Source Index
EDI: Extended Destination Index
EBP: Extended Base Pointer
ESP: Extended Stack Pointer
EIP: Extended Instruction Pointer
Umumnya, ukuran register adalah 32 bit (4 bytes). Bisa menampung data dari 0 – 0FFFFFFFF. Pada awal, kebanyakan register mempunyai fungsi utama yang memiliki nama yang berarti, seperti ECX = Counter, tetapi saat ini kita bisa menggunakan register apapun yang kita sukai sebagai counter. Fungsi EAX, EBX, ECX, EDX, ESI, dan EDI akan dijelaskan saat saya menjelaskan fungsi tertentu yang digunakan pada register tersebut.

EBP : EBP paling banyak berhubungan dengan stack dan stack frames.
ESP : ESP menunjuk ke stack dari proses yang sedang terjadi. Stack adalah tempat dimana data disimpan, dan akan digunakan nantinya (untuk lebih detail, kita pelajari dahulu proses pop/push)
EIP : EIP selalu menunjuk kepada instruksi berikutnya yang akan dieksekusi.
Ada 1 hal penting yang perlu kita ketahui tentang register : walaupun besarnya 32bit, tapi beberapa bagian (16bit bahkan 8bit) tidak bisa diakses secara langsung. Yang memungkinkan yaitu :
32bit Register 16bit Register 8bit Register
EAX AX AH/AL
EBX BX BH/BL
ECX CX CH/CL
EDX DX DH/DL
ESI SI —–
EDI DI —–
EBP BP —–
ESP SP —–
EIP IP —–
Sebuah register terlihat seperti berikut :
|—————————— EAX: 32bit (=1 DWORD =4BYTES) ————————-|
|——- AX: 16bit (=1 WORD =2 BYTES) —-|
|- AH:8bit (=1 BYTE)-|- AL:8bit (=1 BYTE)-|
Jadi EAX adalah nama dari register 32 bit, AX adalah “Low Word” (16 bit) dari EAX dan AL/AH (8 bit) adalah nama dari “Low Part” dan “High Part” dari AX. Btw, 4 bytes adalah 1 DWORD dan 2 bytes adalah WORD. Masih ingat kan :D ?
Pengelompokkan berdasarkan ukuran
1. Byte-size-register : Seperti namanya, register ini memiliki ukuran tepat 1 byte. Hal ini tidak berarti 32 bit diisi semuanya dengan data. Register yang kosong diisi dengan 0. Berikut adalah register-register byte-size, semuanya berukuran 1 byte atau 8 bit.

* AL dan AH
* BL dan BH
* CL dan CH
* DL dan DH

2. Word-size-register : berukuran 1 word (= 2 bytes = 16 bit). Sebuah register word-size terdiri dari 2 register byte-size. Kita bisa mengelompokkannya berdasarkan tujuan yaitu :
a. Umum

* AX (word-size) = AH + AL -> “+” bukan berarti menjumlahkan. AH dan AL bersifat independent., tapi mereka bersama berada pada AX. Hal ini berarti jika kita mengubah AL atau AH, secara otomatis kita juga mengubah AX. :)
* AX -> accumulator, sering digunakan untuk operasi matematika
* BX -> base , digunakan sebagai konjungsi pada stack
* CX -> counter
* DX -> data , kebanyakan digunakan sebagai reminder pada operasi matematika disimpan
* DI -> Destination Index , sebagai contoh sebuah string dicopykan pada DI
* SI -> Source Index, sebagai contoh sebuah string dicopykan dari SI

b. Index

* BP -> Base Pointer, menunjuk pada posisi tertentu pada stack
* SP -> Stack Pointer, menunjuk pada posisi tertentu pada stack

c. Segment

* CS -> Code Segment, instruksi aplikasi yang dieksekusi
* DS -> Data Segment, data yang dibutuhkan
* ES -> Extra Segment

d. Spesial

* IP -> Instruction Pointer , menunjuk ke instruksi berikutnya

3. DoubleWord-size-register
2 words = 4 bytes = 32 bits. EAX, EBX, ECX, EDX, EDI, …
Jadi kalau ada huruf “E” di depan 16bit, itu berarti 32 bit. Jadi AX = 16 bits, dan EAX adalah versi 32bit.
Sumber : Woodmann

Komunikasi Data

Komunikasi data adalah transmisi atau proses pengiriman dan penerimaan data dari dua atau lebih device (sumber), melalui beberapa media. Media tersebut dapat berupa kabel koaksial, fiber optic (serat optic) , microware dan sebagainya.

Komunikasi data merupakan gabungan dari beberapa teknik pengolahan data. Dimana telekomunikasi yang dapat diartikan segala kegiatan yang berhubungan dengan penyaluran informasi dari titik ke titik lain. Sedangkan pengolahan data adalah segala kegiatan yag berhubungan dengan pengolahan.

1. KOMPONEN DASAR KOMUNIKASI DATA & BAGAN

A. Sumber (pemancar atau pengirim)

yaitu pengirim atau pemancar informasi data. Karena pembahasan berkisar pada sistem computer maka pemancar adalah sistem komputer. Komunikasi data dapat juga berlangsung dua arah sehingga pemancar juga dapat berfungsi sebagai penerima.

B. Media Transmisi

yaitu saluran tempat informasi tersebut disalurkan ketempat tujuan. Media yang dipergunakan dapat berupa : kabel, udara, cahaya dan sebagainya.

C. Penerima

yaitu alat yang menerima informasi yang dikirimkan.

D. Gambar Bagan Proses Komunikasi Data




1. SINYAL ANALOG & SINYAL DIGITAL


A. Sinyal Analog

Sinyal analog adalah sinyal data dalam bentuk gelombang yang yang kontinyu, yang membawa informasi dengan mengubah karakteristik gelombang. Dua parameter/ karakteristik terpenting yang dimiliki oleh isyarat analog adalah amplitude dan frekuensi. Isyarat analog biasanya dinyatakan dengan gelombang sinus, mengingat gelombang sinus merupakan dasar untuk semua bentuk isyarat analog. Hal ini didasarkan kenyataan bahwa berdasarkan analisis fourier, suatu sinyal analog dapat diperoleh dari perpaduan sejumlah gelombang sinus. Dengan menggunakan sinyal analog, maka jangkauan transmisi data dapat mencapai jarak yang jauh, tetapi sinyal ini mudah terpengaruh oleh noise. Gelombang pada sinyal analog yang umumnya berbentuk gelombang sinus memiliki tiga variable dasar, yaitu amplitudo, frekuensi dan phase.

· Amplitudo merupakan ukuran tinggi rendahnya tegangan dari sinyal analog.

· Frekuensi adalah jumlah gelombang sinyal analog dalam satuan detik.

· Phase adalah besar sudut dari sinyal analog pada saat tertentu.

B. Sinyal Digital

Sinyal digital merupakan sinyal data dalam bentuk pulsa yang dapat mengalami perubahan yang tiba-tiba dan mempunyai besaran 0 dan 1. Sinyal digital hanya memiliki dua keadaan, yaitu 0 dan 1, sehingga tidak mudah terpengaruh oleh derau/noise, tetapi transmisi dengan sinyal digital hanya mencapai jarak jangkau pengiriman data yang relatif dekat. Biasanya sinyal ini juga dikenal dengan sinyal diskret. Sinyal yang mempunyai dua keadaan ini biasa disebut dengan bit. Bit merupakan istilah khas pada sinyal digital. Sebuah bit dapat berupa nol (0) atau satu (1). Kemungkinan nilai untuk sebuah bit adalah 2 buah (21). Kemungkinan nilai untuk 2 bit adalah sebanyak 4 (22), berupa 00, 01, 10, dan 11. Secara umum, jumlah kemungkinan nilai yang terbentuk oleh kombinasi n bit adalah sebesar 2n buah.




2. TCP/IP

Transmission Control Protocol/Internet Protocol (TCP/IP) adalah satu set aturan standar komunikasi data yang digunakan dalam proses transfer data dari satu komputer ke komputer lain di jaringan komputer tanpa melihat perbedaan jenis hardware. Protokol TCP/IP dikembangkan dalam riset pertama kali oleh Defense Advanced Research Projects Agency (DARPA) di Amerika Serikat dan paling banyak digunakan saat ini yang implementasinya dalam bentuk perangkat lunak (software) di system operasi. Protokol TCP/IP dikembangkan dalam riset pertama kali oleh Defense Advanced Research Projects Agency (DARPA) di Amerika Serikat dan paling banyak digunakan saat ini yang implementasinya dalam bentuk perangkat lunak (software) di system operasi.

· IP (internet protocol) yang berperan dalam pentransmisian paket data dari node ke node. IP mendahului setiap paket data berdasarkan 4 byte (untuk versi IPv4) alamat tujuan (nomor IP). Internet authorities menciptakan range angka untuk organisasi yang berbeda. Organisasi menciptakan grup dengan nomornya untuk departemen. IP bekerja pada mesin gateaway yang memindahkan data dari departemen ke organisasi kemudian ke region dan kemudian ke seluruh dunia.

· TCP (transmission transfer protocol) berperan didalam memperbaiki pengiriman data yang benar dari suatu klien ke server. Data dapat hilang di tengah-tengah jaringan. TCP dapat mendeteksi error atau data yang hilang dan kemudian melakukan transmisi ulang sampai data diterima dengan benar dan lengkap.

Sockets yaitu merupakan nama yang diberikan kepada subrutin paket yang menyediakan akses ke TCP/IP pada kebanyakan sistem.


3. ROUTER, BRIDGE & REPEATOR DAN FUNGSI-FUNGSINYA.

A. ROUTER

Router adalah sebuah alat jaringan komputer yang mengirimkan paket data melalui sebuah jaringan atau Internet menuju tujuannya, melalui sebuah proses yang dikenal sebagai routing. Proses routing terjadi pada lapisan 3 (Lapisan jaringan seperti Internet Protocol) dari stack protokol tujuh-lapis OSI.

Router berfungsi sebagai penghubung antar dua atau lebih jaringan untuk meneruskan data dari satu jaringan ke jaringan lainnya. Router berbeda dengan switch. Switch merupakan penghubung beberapa alat untuk membentuk suatu Local Area Network (LAN).



Analogi Router dan Switch

Sebagai ilustrasi perbedaan fungsi dari router dan switch merupakan suatu jalanan, dan router merupakan penghubung antar jalan. Masing-masing rumah berada pada jalan yang memiliki alamat dalam suatu urutan tertentu. Dengan cara yang sama, switch menghubungkan berbagai macam alat, dimana masing-masing alat memiliki alamat IP sendiri pada sebuah LAN.

Router sangat banyak digunakan dalam jaringan berbasis teknologi protokol TCP/IP, dan router jenis itu disebut juga dengan IP Router. Selain IP Router, ada lagi AppleTalk Router, dan masih ada beberapa jenis router lainnya. Internet merupakan contoh utama dari sebuah jaringan yang memiliki banyak router IP. Router dapat digunakan untuk menghubungkan banyak jaringan kecil ke sebuah jaringan yang lebih besar, yang disebut dengan internetwork, atau untuk membagi sebuah jaringan besar ke dalam beberapa subnetwork untuk meningkatkan kinerja dan juga mempermudah manajemennya. Router juga kadang digunakan untuk mengoneksikan dua buah jaringan yang menggunakan media yang berbeda (seperti halnya router wireless yang pada umumnya selain ia dapat menghubungkan komputer dengan menggunakan radio, ia juga mendukung penghubungan komputer dengan kabel UTP), atau berbeda arsitektur jaringan, seperti halnya dari Ethernet ke Token Ring.

Router juga dapat digunakan untuk menghubungkan LAN ke sebuah layanan telekomunikasi seperti halnya telekomunikasi leased line atau Digital Subscriber Line (DSL). Router yang digunakan untuk menghubungkan LAN ke sebuah koneksi leased line seperti T1, atau T3, sering disebut sebagai access server. Sementara itu, router yang digunakan untuk menghubungkan jaringan lokal ke sebuah koneksi DSL disebut juga dengan DSL router. Router-router jenis tersebut umumnya memiliki fungsi firewall untuk melakukan penapisan paket berdasarkan alamat sumber dan alamat tujuan paket tersebut, meski beberapa router tidak memilikinya. Router yang memiliki fitur penapisan paket disebut juga dengan packet-filtering router. Router umumnya memblokir lalu lintas data yang dipancarkan secara broadcast sehingga dapat mencegah adanya broadcast storm yang mampu memperlambat kinerja jaringan.


A. BRIGDE

Bridge itu bisa dikatakan sebagai media expander untuk menambah jangkauan dari sebuah jaringan LAN dan menghubungkannya dengan jaringan yang lain pada lokasi yang berbeda.

Memang ada kemiripannya dengan Hub/Switch, hanya saja Hub/Switch lebih kepada menghubungkan sebuah jaringan lokal saja (menggunakan kabel ethernet) dan masih berada pada satu lokasi yang sama karena jangkauannya yang terbatas, sebagai contoh jika menggunakan kabel ethernet maka maximum jangkauan tidak boleh lebih dari 100 meter dan itupun masih harus berkutat dengan instalasi kabel yang cukup memakan waktu.

Sedangkan bridge biasanya dilakukan dengan mengadopsi teknologi nirkabel, sehingga tidak dibatasi oleh lokasi, tetapi kita tetap harus melakukan pengaturan pada setiap titik point agar dapat saling berkomunikasi satu sama lain, perhatikan model bridging dibawah ini:


LAN A <----------> Bridge <-----------> LAN B


LAN A terdiri atas beberapa client pada sebuah jaringan lokal, demikian juga dengan LAN B. Bridge berfungsi untuk menghubungkan kedua jaringan lokal tersebut meskipun dipisahkan oleh jarak yang cukup jauh misalnya 5 km, dengan menggunakan teknologi nirkabel.



Fungsi BRIDGE adalah sebagai jembatan komunikasi antar komputer

Adapun alasan menggunakan bridge adalah sebagai berikut :

· Keterbatasan jaringan, hal ini terkait erat dengan jumlah maksimum stasiun, panjang maksimum segmen, dan bentang jaringan

· Kehandalan dan keamanan lalu lintas data, bridge dapat menyaring lalu lintas data antar dua segmen jaringan

· Semakin besar jaringan, performa atau unjuk kerja semakin menurun

· Bila dua sistem pada tempat yang berjauhan disambungkan, penggunaan bridge dengan saluran komunikasi jarak jauh jauh lebih masuk akal dibandingkan dengan menghubungkan langsung dua sistem tersebut



B. REPEATER

Repeater adalah suatu perangkat dengan program yang digunakan untuk mengatasi keterbatasan (jarak, kualitas sinyal) fisik suatu segmen jaringan (komputer).Dapat juga digunakan untuk menggabungkan beberapa segmen suatu jaringan yang besar (misalnya Ethernet to Ethernet). Namun dalam membangun jaringan fisik yang besar, perlu diperhatikan bahwa aturan panjang kabel maksimum tidak dapat dilampaui dengan menggunakan repeater ini. Repeater tidak dapat menghubungkan misalnya antara protokol data link layer yang berbeda (misalnya Ethernet dengan Token Ring). Hal ini karena repeater mempunyai bit korespondensi dengan data link atau network layer.
Contoh repeater adalah Hub. Oleh karena itu Hub kadang juga disebut sebagai multiport/modular repeater. Cara kerja repeater menyebarkan traffic data ke seluruh jaringan, tanpa memandang apakah traffic data tsb diperlukan atau tidak di seluruh jaringan. Jika jumlah station semakin banyak, dan traffic data sangat tinggi. Maka akan berakibat kinerja menurun (akses lambat).

Untuk merancang sebuah network, seorang network administrator harus tahu tentang topologi fisik, logic, manajemen traffic jaringan, jenis dan karakteristik protocol pada masing-masing physical sampai dengan application layer sangat diperlukan.

REPEATER berfungsi untuk penguat sinyal dari kabel , misalnya pada sebuah jaringan LAN dengan topologi start yang menggunakan kabel UTP . Bila komputer pada jaringan yang luas, otomatis signal yang dikirimkan dari komputer (node) ke komputer yang lain akan semakin lemah karena hambatan yang ada. Oleh karena itu, repeater digunakan untuk menguatkan signal lemah menjadi kuat kembali sehingga data yang dikirimkan dari komputer ke komputer lain dalam jaringan bisa diterima dengan baik.