Jumat, 17 Juni 2011

Jaringan Kom.data

JARINGAN KOMUNIKASI DATA

Jaringan Komunikasi data atau Jaringan Komputer merupakan sekumpulan komputer yang saling terhubung satu sama lain menggunakan protokol dan media transmisi tertentu. Berdasarkan luas area cakupan yang dicapai jaringan komputer dapat diklasifikan menjadi : Local Area Network (LAN) dan Wide area Network (WAN). Luas cakupan LAN lebih kecil dari WAN biasanya terdiri dari sekelompok gedung yang saling berdekatan.

TOPOLOGI JARINGAN

Topologi jaringan merupakan suatu cara untuk menghubungkan komputer atau terminal-terminal dalam suatu jaringan. Model dari topologi jaringan yang ada antara lain: Star, Loop, ring dan Bus.

Topologi Star

Pada topologi ini LAN terdiri dari sebuah cntral node yang berfungsi sebagai pengatur arus informasi dan penanggung jawa komunikasi dalam suatu jaringan. Jadi jika node yang satu ingin berkomunikasi dengan node yang lain maka harus melalui sentral node. Fungsi central node disini sangat penting, biasanya dalam sistem ini harus mempunyai kehandalan yang tinggi.

Topologi Bus

Pada topologi bus ini, node yang satu dengan node yang lain dihubungkan dengan jalur data atau bus. Semua node memiliki status yang sama antara satu dengan yang lainnya.

Topologi Loop

Topologi Loop ini menghubungkan antar node secara serial dalam bentuk suatu lingkaran tertutup. Semua node memiliki status yang sama.

Pada topologi loop ini, setiap node dapat melakukan tugas untuk operasi yang berbeda-beda. Topologi ini memiliki kelemahan, jika salah satu node rusak maka akan dapt menyebabkan gangguan komunikasi antar node satu dengan yang lainnya.

Topologi Ring

Topologi ring atau topologi cincin ini merupakan topologi hasil penggabungan antara topologi loop dengan topologi bus. Keuntungannya adalah bahwa jika salah satu node rusak, maka tidak akan mengganggu jalannya komunikasi antar node karena node yang rusak tersebtu diletakkan terpisah dari jalur data.

komponen dalam kom data

Berikut ini penjelasan dari contoh komunikasi data tersebut

1. Source (Sumber). Peralatan ini membangkitkan data sehingga dapat ditransmisikan. Misalkan telepon dan PC (Personal Computer)
2.

Transmiter (Pengirim). Biasanya data yang dibangkitkan dari sistem sumber tidak ditransmisikan secara langsung dalam bentuk aslinya. Sebuah transmisi cukup memindah dan menandai informasi dengan cara yang sama seperti menghasilkan sinyal-sinyal elektromagnetik yang dapat ditransmisikan melewati beberapa sistem transmisi berurutan. Sebagai contoh, sebuah modem tugasnya menyalurkan suatu digital bit stream dari suatu alat yang sebelumnya sudah dipersiapkan misalnya PC, dan menstransformasikan bit stream tersebut menjadi suatu sinyal analog yang dapat ditransmisikan melalui jaringan telepon.

1.

Sistem Transmisi. Berupa jalur transmisi tunggal atau jaringan kompleks yang menghubungkan antara sumber dengan tujuan.
2.

Receiver (Penerima). Receiver menerima sinyal dari sistem transmisi dan menggabungkannya ke dalam bentuk tertentu yang dapat ditangkap oleh tujuan. Sebagai contoh, sebuah modem akan menerima suatu sinyal analog yang datang dari jaringan atau jalur transmisi dan mengubahnya menjadi suatu digital bit stream.
3.

Destination (Tujuan). Menangkap data yang dihasilkan okeh receiver.

BENTUK-BENTUK KOMUNIKASI DATA

Suatu sistem komunikasi data dapat berbentuk offline communication system (sistem komunikasi offline) atau online communication system (sistem komunikasi online). Sistem komunikasi data dapat dimulai dengan sistem yang sederhana, seperti misalnya jaringan akses terminal, yaitu jaringan yang memungkinkan seorang operator mendapatkan akses ke fasilitas yang tersedia dalam jaringan tersebut. Operator bisa mengakses komputer guna memperoleh fasilitas, misalnya menjalankan program aplikasi, mengakses database, dan melakukan komunikasi dengan operator lain. Dalam lingkungan ideal, semua fasilitas ini harus tampak seakan-akan dalam terminalnya, walaupun sesungguhnya secara fisik berada pada lokasi yang terpisah

makalah assembly

BAB I
PENDAHULUAN



1.1 Latar Belakang

Di zaman dan perkembangan pesat ini sangat dibutuhkan sesuatu yang sangat berguna bagi kita semua, salah satunya adalah komputer, Melalui komputer kita juga dapat melakukan banyak hal, diantaranya menjalankan program-program aplikasi yang terdapat pada system operasi tersebut, di dalam system operasi terdapat beberapa cara untuk membuatnya, dalam membuat suatu program kita harus mengerti tentang suatu bahasa pemrograman.
Dengan adanya bahasa pemrograman kita dapat dengan mudah mengerjakan atau membuat suatu program yang kita inginkan, salah satu bahasa pemrograman tersebut adalah bahasa assembly, banyak terdapat bahasa pemrograman lainnya, tapi dalam hal ini saya akan menjelaskan sedikit tentang bahasa assembly saja.



1.2 Rumusan Masalah
1. Apa itu Aritmetika ?
2. Bagaimana Instruksi-instruksi pada aritmetika ?
3. Bagaimana aplikasi-aplikasi pada aritmetika ?


BAB II
PEMBAHASAN


ARITMETIKA

Perhitungan aritmetik dalam bahasa assembly melibatkan type bilangan integer dan floating point. Intruksi-instruksi yang terdapat pada proses perhitungan aritmetik adalah instruksi geser, putar, penjumlahan, pengurangan, perkalian, pembagian dan perintah-perintah lain. Instruksi-instruksi tersebut melakukan operasi pada operand dengan lebar 8-bit atau 16-bit.



2.1 INSTRUKSI GESER DAN ROTASI

Instruksi geser dan rotasi berfungsi untuk mengubah posisi bit operand. Berikut ini instruksi geser dan rotasi dengan beberapa variasinya :

SHL (Shift Left) = geser kiri
SHR (Shift Right) = geser kanan
SAL (Shift Arithmetic Left) =geser kiri aritmetik
SAR (Shift Arithmetic Right) = geser kanan aritmetik
ROL (Rotate Left) = Rotasi Kiri
ROR (Rotate Right) = Rotasi Kanan
RCL (Rotate Carry Left) = Rotasi kiri dengan carry
RCR (Rotate Carry Right) = Rotasi kanan dengan carry




Instruksi SHL
Instruksi SHL menggeser setiap bit operand ke kiri, mengisi bit terendah dengan nilai nol. Bit tertinggi dipindah ke CF (Carry Flag) dan bit dala CF ditimpa.



Keterangan :
Penomoran bit dimulai dari bit yang paling kanan. Bit paling kanan adalah bit dengan nomor yang paling rendah sering disebut LSB(Left Significant Bit), sementara bit yang paling kiri adalah bit dengan penomoran yang paling tinggi sering disebut MSB (Most Significant Bit).
Sintaknya sebagai berikut :
SHL dest, 1
SHL dest, CL

CL tidak diubah ketika instruksi SHL menggunakannya sebagai counter geser. Berikut ini contoh penggunaan instruksi SHL pada operand memory :
Shl bl, 1
Shl wordval, 1
Shl byte ptr[si], 1
Mov cl, 4 ; isi CL=4 artinya proses penggeserannya sebanyak 4 bit
Shl al, cl

Pada contoh berikut, BL digeser sekali ke kiri. Bit tertinggi disalin ke dalam register CF (carry flag), dan bit paling rendah diisi dengan nilai nol :
Mov bl, 8Fh ; BL = 10001111b
Shl bl, 1 ; BL = 00011110b, CF = 1
Contoh berikut akan menggeser DX ke kiri sebanyak 3 bit :
Mov dx, 000Fh ; DX 0000000000001111b
Mov cl, 3 ; jumlah geser = 3
Shl dx, cl ; 0000000000111000b


Instruksi SHR
SHR berfungsi untuk menggeser setiap bit ke kanan dan mengganti bit tertinggi dengan nilai nol. Bit paling rendah disalin ke dalam CF, dan bit dalam CF ditimpa :


Sintak instruksi SHR :
SHR dest, 1
SHR dest, CL

Nilai CL setelah instruksi SHR selesai tidak berubah. Berikut ini contoh penggunaan instruksi SHR dengan operand register dan memory :
Shr bl, 1
Shr wordval, 1
Shr byte ptr [si], 1
Mov cl, 4
Shr al, cl


Instruksi SHR dapat digunakan untuk membagi bilangan dengan 2 contoh, kita dapat membagi 32 dengan 2, sebagai berikut :
Mov dl, 32 ; DL = 00100000b
Shr dl, 1 ; DL = 00010000 = 16

Instruksi SAL dan SAR
Instruksi SAL dan SAR adalah instruksi penggeseran yang khusus untuk bilangan bertanda. Instruksi SAL mrip dengan instruksi SHL dan disertakan dalam set instruksi hanya untuk pelengkap. SAR menggeser setiap bit ke kanan dan menyalin bit tanda (MSB). Setelah instruksi SAR dijalankan, nilai MSB tidak berubah.





Sintaknya sebagai berikut :
SAR dest, 1
SAR dest, CL
SHR dest, 1
SHR dest, CL

Contoh berikut menunjukan bagaimana SAR menggandakan bit tanda. AL bernilai negative sebelum dan sesudah digeser ke kanan :
Mov al, 0F0h ; AL = 11110000b (-16)
Sar al, 1 ; AL = 11111000b (-8), CF = 0

Contoh berikut, -32768 digeser ke kanan 5 kali. Proses ini sama dengan membagi bilangan dengan 2 pangkat 5 (32). Hasilnya adalah -1024 :
Mov dx, 8000h ; DX = 1000000000000000b = -32768
Mov cl, 5
Sar dx, cl ; DX = 1111110000000000b = - 1024



Instruksi ROL (Rotate Left)
Instruksi ROL memindahkan setiap bit ke kiri. Bit tertinggi disalin ke dalam CF dank e bit terendah sebagai berikut :


Sintaknya sebagai berikut :
ROL dest, 1
ROL dest, CL

Contoh berikut menggambarkan penggunaan ROL pada nilai byte dan word :
Byte_value :
Mov cl, 4
Mov cl, 26h
Rol al, cl
Rol byteval, cl
Word_value :
Mov cl, 8
Mov ax, 0203h
Rol ax, cl
Rol wordval, cl
………..
……….
Byteval db 0Fh
Wordval dw 1234h





Instruksi ROR
Instruksi ROR (Rotate Right) memindahkan setiap bit ke kanan. Bit paling rendah disalin ke dalam CF dank e bit tertinggi pada saat yang sama.


Sintaknya sebagai berikut :
ROR dest, 1
ROR dest, CL

Contoh berikut menggambarkan bit terendah disalin ke dalam CF dank e dalam bit tertinggi :
Mov al, 01h ; AL = 00000001b
Ror al, 1 ; AL = 10000000b, CF = 1
Ror al, 1 : AL = 01000000b, CF = 0

Instruksi RCL dan RCR
Instruksi RCL menggeser setiap bit ke kiri dan menyalin bit tertinggi ke dalam CF. CF disalin ke dalam bit terendah, sebagai berikut :


Dalam contoh ini, instruksi CLC menghapus nilai CF. instruksi RCL pertama memindahkan tinggi ke dalam CF, dan menggeser semua bit lainnya ke kiri. Instruksi RCL kedua memindahkan CF ke dalam posisi bit terendah, dan menggeser semua bit yang lain ke kiri :
Clc ; CF = 0
Mov bl, 88h ; BL = 10001000b
Rcl bl, 1 ; BL = 00010000b, CF = 1
Rcr bl, 1 ; BL = 00100001b, CF = 0

Instruksi RCR. Instruksi ini menggeser setiap bit ke kanan dan menyalin bit terendah ke dalam CF. CF disalin ke dalam bit tertinggi :


Pada contoh berikut , STC menset CF sebelum melaksanakan rotasi :
Stc ; CF = 1
Mov ah, 10h ; AH = 00010000b, CF = 1
Rcr ah, 1 ; AH = 10001000b, CF = 0




2.2 APLIKASI GESER DAN ROTASI
Instruksi geser dan rotasi digunakan sewaktu-waktu. Berikut ini beberapa contoh aplikasi yang menggunakan perintah tersebut.


APLIKASI MENGGESER BEBERAPA BYTE
Misalkan kita akan menggeser semua bit di dalam table ke kanan, seperti pada gambar grafik bit-map. Misalnya digunakan tiga byteoperand, kita dapat memulai dengan byte yang paling kiri, menggeser bit rendahnya dalam CF, hasil penggeseran sekali ke kanan adalah sebagai berikut:

Byte 1 byte 2 byte 3
Sebelum: 00111011 01000110 11111111
Sesudah: 00011101 10100011 01111111

Setelah digeserkan, bytel sama dengan 00011101 dan CF = 1, kemudian RCR di gunakan untuk merotasi byte 2 ke kanan ketika menyalin isi CF ke dalam bit posisi tertinggi byte 2. sesudah rotasi, byte 2 sama dengan 10100011b. terakhir, byte 3 rotasi ke kanan, menghasilkan 0111111b.

Tiga tahap diulangi setiap kali kita menggeser semua bit dalam ketiga byte. Intruksi berikut menggeser bit dalam semua byte ke kanan empat kali. Berikut ini contoh program untuk implementasi fungsi tersebut.
Mov cx, 4
L1 : shr byte 1, 1
rcr byte 2, 1
rcr byte 3, 1
loop L1
byte1 db 3 Bh
byte2 db 46h
byte3 db 0FFh



PERKALIAN DAN PEMBAGIAN
Seperti yang di jelaskan sebelumnya bahwa intruksi SHL dan SHR dapat digunakan untuk operasi perkalian dan pembagian dengan efesiensi ketika satu operand-nya merupakan pangkat dari 2. (misalnya 2,4,8,16….)

Jika operand-nya bukan pangkat dari 2, kita bisa memfaktorkannya sehingga salah satu faktornya adalah bilangan pangkat dari 2. misal, untuk mengalikan bilangan nilai dalam BX dengan 36, kita memanfaatkan keuntungan dengan aturan perkalian distribusi sebagai berikut:
BX * 36 = BX * (32+4)
= (BX* 32) + (BX * 4)
Berikut ini contoh penggunaan intruksi SHL dalam perkalian variabel 16-bit dengan 36. hasilnya, 360 yang merupakan penjumlahan dua perkalian, yaitu 320 dan 40 :
Mov bx, intval
Mov cl, 5
Shl bx, cl
Mov product, bx
Mov bx, intval
Shl bx, 1
Shl bx, 1
Add product, bx
Intval dw 0Ah
Product dw?




MENAMPILKAN BILANGAN DALAM BINER ASCII
Cara yang baik untuk mengaplikasikan intruksi SHL adalah menampilkan byte dalam format biner ASCII. Kita dapat mengambil memanfaatkan register CF. register CF menyalin nilai bit tertinggi setiap kali byte digeser ke kiri.

Program tampil. ASM berikut menampilkan setiap bit dalam register AL. Keluarannya adalah pola bit 6Ch : 01101100.
Title tampilan ASCII biner
Dosseg
.model small
.stack 100h
.code
Main proce
mov al, 6Ch
mov cx, 8
L1 : shl al, 1
Mov dl,’0’
Jnc L2
Mov dalam, ‘1’
L2 : push ax
Mov ah, 2
Int 21h
Pop ax
Loop L1

Mov ax, 4000h
Int 21h
Main endp
End main


MENGISOLASI STRING BIT

Untuk mengambil sebuah field, kita dapat menggeser bit-bit ke kanan pada alamat terendah register DX. Cara ini dapat di lakukan dengan menggunakan intruksi SHR. Setelah digeser kanan, kemudian bit yang tidak relevan di-AND-kan dengan nol. Berikut ini contoh mengambil hari dari register DX:
mov al, dl
and al, 00011111b
mov day, al
untuk mengambil nilai bulan, berikut inicontohnya:
mov ax, dx
mov cl, 5
shr ax, cl
and al, 00001111b
mov month, al
untuk mengambil nilai tahun, contohnya sebagai berikut:
mov al, dh
shr al, 1
mov ah, 0
add ax, 1980
mov year, ax

2.3 PENJUMLAHAN DAN PENGURANGAN KOMPLEK
Penjumlahan dan pengurangan komplek melibatkan beberapa register dan melibatkan beberapa proses yang lumayan komplek sehingga diistilahkan sebagai penjumlahan dan pengurangan komplek.

INTRUKSI ADC(ADD WITH CARRY)
Intruksi ADC berfungsi untuk menjumlahkan dan mengurangkan dengan operand banyak byte dan banyak word. Nilai operand sumber dan register CF keduanya ditambahkan ke dalam operand tujuan. sintaknya sebagai berikut:

ADC tujuan,sumber
Lebar operand sumber dan tujuan bisa 8-bit ataupun 16-bit

Berikut ini contoh penjumlahan dua operand multiword dan kemudian menyimpannya dalam memori. Fungsi ini di lakukan dalam prosedur MULTIWORD_ADD. Dalam prosedur ini diasumsikan bahwa setiap nilai disimpan dengan least significant pada alamat paling rendah:
Title contoh penjumlahan multiword
Dosseg
.model small
.stack 100h
.code
Main proc
Mov ax,@data
Mov ds,ax

Mov si,offset op 1
Mov di,offset op 2
Mov bx, offset result
Mov cx,2
Call multiword_add

Mov ax, 4000h
Int 21 h
Main endp
.data
Op1 dd 02B2A406h
Op2 dd 080108700h
Result dw 3 dup(0)
.code
Multiword_add proc
Push ax
Push bx
Push cx
Push si
Push di
Clc

L1:
Mov ax, [si]
Adc ax, [di]
Pushf
Mov [bx], ax
Add si, 2
Add di, 2
Add bx, 2
Popf
Loop L1
Adc word ptr[bx], 0
Pop di
Pop si
Pop cx
Pop bx
Pop ax
Ret
Multiword_add endp
End main

INTRUKSI SBB (SUBSTRACT WITH BORROW)
Intruksi SBB berguna untuk pengurangan multibyte atau multiword.
Sintaknya sebagai berikut:

SBB tujuan,sumber
Lebar operand tujuan dan sumber dapat 8-bit atau 16-bit. Proses pertama, operand sumber dikurangkan dari tujuan, kemudian CF dikurangkan dari tujuan.

Contoh program quadword, yang melakukan proses pengurangan pada operand quadword (8-byte), sebagai berikut:
mov cx, 8
mov si, 0
clc
L1 :
mov al, byte ptr op1 [si]
sbb al, byte ptr op2 [si]
mov byte ptr result [si], al
inc si
loop L1
…….
…….
Op1 dq 20403004362047A1h
Op2 dq 055210304 A2630B2h
Result dq 0

Intruksi SBB pada baris ke-6 berfungsi mengurangkan nilai CF dan isi dari op2 dari AL.

Perintah DQ menyimpan byte dalam memori dengan urutan terbalik. Proses pengurangan dapat diringakas sebagai berikut:
Op1 20 40 30 04 36 20 47 A1h
Op2 05 52 10 30 4A 26 30 B2h

Hasil 1A EE IF D3 EB FA 16 EF
Pada contoh ini op1 lebih besar dari op2 sehingga hasilnya positif. Jika hasilnya negatif, CF akan diset juga setelah loop selesai, dan hasilnya akan disimpan dalam bentuk two’s complement.

2.4 PERKALIAN DAN PEMBAGIAN
Terdapat intruksi untuk melaksanakan perkalian dan pembagian integer pada bilangan 8-bit dan 16-bit. Semua operand diasumsikan bilangan biner. Jadi, jika terdapat operand bilangan decimal maka harus dibuat penyesuaian ke dalm biner. Operasi floating-point ditangani oleh coprosesor matematika Intel terpisah atau emulasi perangkat lunak yang di dukung oleh library dalam bahasa pemrograman. Intruksi MUL (multiply) dan DIV (divide)
Digunakan untuk bilangan integen biner bertanda.

INTRUKSI MUL DAN IMUL
Intruksi MUL dan IMUL mengalikan operand 8-bit atau 16-bit dengan AL atau AX. Jika operand sumber yang ada lebarnya 8-bit maka otomatis perkalian dengan AL dan hasilnya disimpan dalam AX dan hasilnya disimpan dalam DX dan AX (16 bit yang lebih tinggi dalam DX) format sintaknya sebagai berikut:
MUL sumber
IMUL sumber
Operand sumber mungkin berupa operand register atau memori, tetapi tidak boleh data immediate. Contoh perkalian AL dengan 10h:
Mov al, 5h
Mov bl, 10h
Mul bl
Mov ax,val1
Mul val2
……
…..
Val 1 dw 2000h
Val 2 dw 0010h
Perkalian intergen 1 dengan byte 1 dan menyimpan hasilnya dalam variable 32-bit yang diberi nama result:
Mov ax, integer 1
Mov bh, 0
Mov bl, byte 1
Mul bx
Mov word ptr result, ax
Mov word ptr result+2, dx
……
…..
Byte1 db 20h
Integer 1 dw 1234h
Result dd ?

INTRUKSI IMUL
Intruksi IMUL mengalikan nilai biner tidak bertanda. Untuk perkalian 8-bit, IMUL menggunakan register CF dan OF dengan cara menset CF=1 dan OF=1. untuk perkalian 16-bit, CF dan OF diset 1. tiga contoh berikut mengilustrasikannya intruksi IMUL:
Operasi 8-bit : 48 x 4= 192
Mov al, 48
Mov bl, 4
Imul bl
Hasil kali dalam AX adalah 00C0h (+192). Oleh karena AH bukan perpanjangan tanda AL, CF dan OF diset 1. hal ini memberi tahu kita bahwa sign magnitude hasil lebih besar dari 8 bit:
Operasi 8-bit : -4 x 4 = -16
Mov al, -4
Mov bl, 4
Imul bl
Hasil kali dalam AX adalah FFF0h (-16) dan AH adalah perpanjangan tanda AL. dalam kata lain, hasil bertanda dapat disimpan dalam AL.
Operasi 16-bit : 48 x 4 = 192
Mov ax, 48
Mov bx, 4
Imul bx
Hasil kali dalam DX : AX adalah 000000C0h. oleh karena tanda DX dan AX adalah sama (positif), hasilnya dapat disimpan dalam AX, dengan nilai CF=0 DAN OF=0

INTRUKSI DIV DAN IDIV
Intruksi DIV dan IDIV melaksanakan fungsi pembagian bilangan 8-bit atau 16-bit, bertanda dan tidak bertanda. Terdapat operand tunggal (operand register atau memori), yang di asumsikan sebagai pembagian format sintak DIV dan IDIV sebagai berikut:
DIV sumber
IDIV sumber
Jika pembagi panjangnya 8-bit maka nilai yang dibagi diletakan dalam register AX,AL hasil bagi dan AH sisanya. Jika pembagi 16 bit, DX : AX yang akan dibagi maka hasil bagi diletakan dalam register AX dan sisa bagi diletakan dalam register DX.
Yang dibagi/ pembagi = Hasil bagi sisa
AX operand AL AH
DX : AX operand AX BX
Contoh 1. Pembagian 8-bit ( 83h/2=41h, sisa 3)
Mov ax, 0083h , yang akan dibagi
Mov bl, 2 ; pembagi
Div bl ;AL = 41h dan AH = 01h
Contoh 2. Pembagian 16-bit (8003h/100h = 80h, sisa 3)
DX berisi nilai yang akan dibagi pada posisi tinggi, jadi kita harus menggosongkannya sebelum pembagian. Sesudah pembagian, hasil baginya disimpan dalam register AX dan sisanya dalam register DX:
Mov dx, 0
Mov ax, 8003h
Mov cx, 100h
Div cx
Contoh 3. pembagian 16-bit menggunakan operand memori sebagai pembagi:
Mov dx, 0
Mov ax, dividend
Div divisor
Dividend dw 8003h
Divisor dw 100h

INTRUKSI IDIV
Intruksi IDIV melaksanakan operasi pembagian bertanda. Untuk pembagian 8-bit, nilai yang akan dibagi diletakkan dalam register AX, jadi tandanya ditentukan oleh bit ke-15. contohnya, kita akan membagi- 48 dengan 5, menghasilkan AL = -9 dan AH = 3
Mov ax,-48 ;AX = FFD0h
Mov bl, 5
Idiv bl
Satu kesalahan umum yang biasa dilakukan adalah meletakan nilai yang akan dibagi dengan memindahkan -48 kedalam AL. jika AH sama dengan 00h maka IDIV akan salah mengasumsikan yang akan dibagi yaitu bernilai + 208 (00D0h).

INTRUKSI CBW (CONVERT BYTE TO WORD) DAN CDW (CONVERT WORD TO BYTE)
Jika nilai yang akan dibagi dalam AL harus bertanda diperlebar dengan menggunakan register AH maka dapat menggunakan intruksi CBW. Misalkan kita akan membagi operand memori 8-bit dengan 10. intruksi CBW sebaiknya mempersiapkan hasil bagi, mengonversi 80h ke FF80h:
aByte db – 128
……..
…….
Mov al,aByte
Cbw
Mov bl, 10
Idiv
Untuk nilai yang akan dibagi 32-bit, CDW memperpanjang tanda AX ke dalam DX:
Mov ax,-5000
Cwd
Mov bx, 256
Idiv bx

OVERFLOW PEMBAGIAN
Jika operasi pembagian menyebabkan hasil yang terlalu besar dan tidak dapat dimuat pada register hasil bagi maka terjadi kondisi overflow. Kejadian ini akan memicu pemanggilan sistem interrupt 0. Pada beberapa mesin hal ini menyebabkan komputer menjadi hang. Pembagian dengan nol juga akan menghasilkan overflow pembagian. Bahasa tingkat tinggi telah membuat perlindungan untuk mengatasi hal ini, tetapi CPU sendiri tidak melaksanakan pengecekan kesalahan sebelum pembagian.

Salah satu cara untuk mengatasi hal ini adalah dengan memecah nilai yang dibagi 32-bit menjadi dua bagian yang bernilai word. Contoh, jika kita membagi 08010020h dengan 10h, kita akan menghasilan overflow pembagian karena hasil bagi (0801002h) tidak pas untuk AX. Pembagian mungkin dilakukan dengan dua tahap, sebagai berikut:
Mov ax, dividend + 2
Cwd
Mov cx, divisor
Div cx
Mov bx, ax
Mov ax, dividend
Div cx
Mov remainder, dx
……
……
……
Dividend label word
Dd 08010020h
Divisor dw 10h
Remainder dw ?
Pertama kita membagi word yang paling tinggi yang akan dibagi. Baris 1 dan 2 mengambil nilai yang akan dibagi kedalam AX dan tanda dilebarkan kedalam register DX. Baris 4 membagi bagian lebih tinggi dari nilai yang dibagi (0801h) dengan 10h. Hasil bagi 0080h dan sisanya 0001h:
0000:0801h / 10h = 0800h, sisa 1
(DX:AX) (CX) (AX) (DX)





BAB III
PENUTUP


KESIMPULAN

Dari makalah di atas dapat saya simpulkan bahwa dalam suatu bahasa pemrograman yaitu bahasa assembly, terdapat suatu aritmetika yang terdiri dari penjumlahan, pengurangan, perkalian dan pembagian, juga banyak terdapat instruksi-instruksi dalam aritmetika yang mendukung daripada bahasa pemrograman tersebut.




















DAFTAR PUSTAKA

Buku Bahasa Assembly
Penerbit : Maman Abdurahman

jenis memory

Berdasarakan waktu pengaksesan (Access Time) :
1. Memory dengan pengaksesan random (Random access memory)
• Setiap data menempati lokasi sendiri
• Masing-masing data terletak di lokasi terpisah
• Masing-masing data mempunyai waktu akses sama
• Masing-masing data dapat diakses secara random

Contohnya : - SD RAM
-DD RAM
- DDR1
- DDR2

2. Memory dengan pengaksesan sekuensial (Sequential Access Memory)
• Setiap data menempati lokasi setelah data sebelumnya
• Untuk mengakses data di lokasi tertentu harus melalui data yang paling awal ( tidak dapat diakses langsung)
• Waktu akses data tergantung dari jauh dekatnya lokasi data dari head pembacanya
• Banyak dipakai di type magnetic disk

Contohnya :
- Hard disk
- Diskete
- CD


Berdasarkan Lamanya Penyimpanan Informasi :
1. Memory dengan penyimpanan sementara (Temporary Storage Memory)
Informasi yang disimpan di dalam memory bersifat sementara, data akan hilang kalau power supply dimatikan.

Contohnya : RAM
 Static RAM : memory yang terdiri dari kumpulan flip flop
 Dynamic RAM : memory yang terdiri dari kumpulan kapasitor, yang menggunakan sifat charge dan discharge saat pengisian dan pengambilan data

2. Memory dengan penyimpanan tetap (Permanent Storage Memory)
Informasi yang disimpan di dalam memory bersifat tetap, data tetap ada walaupun power supply mati.

Contohnya : ROM (Read Only Memory )

Media Transmisi

Media Transmisi

Media transmisi data merupakan jalur dimana proses pengiriman data daari satu sumber ke penerima data. Beberapa media transmisi data yang dapat digunakan jalur transmisi atau carrier dari data yang dikirimkan, dapat berupa kabel, gelombang elektromagnetik, dan lain-lain. Dalam hal ini berfungsi sebagai jalur informasi untuk sampai pada tujuannya.

Ada beberapa hal yang berhubungan dengan transmisi data yaitu kapasitas dan tipe channel transmisi, kode transmisi, mode transmisi, protokol yang digunakan dan penggunaan kesalahan transmisi.

Beberapa media transmisi yang digunaka antara lain: twisted pair, kabel coaxial, serat optik dan gelombang elektromagnetik.

Rabu, 15 Juni 2011

Sistem bilangan oktal dan heksadesimal

Sistem Oktal dan Heksa Desimal
Bilangan oktal adalah bilangan dasar 8, sedangkan bilangan heksadesimal atau sering disingkat menjadi heks. ini adalah bilangan berbasis 16. Karena oktal dan heks ini merupakan pangkat dari dua, maka mereka memiliki hubungan yang sangat erat. oktal dan heksadesimal berkaitan dengan prinsip biner!

1. Ubahlah bilangan oktal 63058 menjadi bilangan biner !

6 3 0 5  oktal
110 011 000 101  biner

Note:
• Masing-masing digit oktal diganti dengan ekivalens 3 bit (biner)
• Untuk lebih jelasnya lihat tabel Digit Oktal di bawah!

2. Ubahlah bilangan heks 5D9316 menjadi bilangan biner !

heks  biner
5  0101
D  1101
9  1001
3  0011

Note:
• Jadi bilangan biner untuk heks 5D9316 adalah 0101110110010011
• Untuk lebih jelasnya lihat tabel Digit Heksadesimal di bawah!

3. Ubahlah bilangan biner 1010100001101 menjadi bilangan oktal !

001 010 100 001 101  biner
3 2 4 1 5  oktal

Note:
• Kelompokkan bilangan biner yang bersangkutan menjadi 3-bit mulai dari kanan!

4. Ubahlah bilangan biner 101101011011001011 menjadi bilangan heks !

0010 1101 0110 1100 1011  biner
2 D 6 C B  heks







Tabel Digit Oktal
Digit Oktal Ekivalens 3-Bit
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111



Tabel Digit Heksadesimal
Digit Desimal Ekivalens 4-Bit
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A (10) 1010
B (11) 1011
C (12) 1100
D (13) 1101
E (14) 1110
F (15) 1111

Aritmetika bilangan biner

Aritmatika Biner
Pada bagian ini akan membahas penjumlahan dan pengurangan biner. Perkalian biner adalah pengulangan dari penjumlahan; dan juga akan membahas pengurangan biner berdasarkan ide atau gagasan komplemen.

Penjumlahan Biner
Penjumlahan biner tidak begitu beda jauh dengan penjumlahan desimal. Perhatikan contoh penjumlahan desimal antara 167 dan 235!

1  7 + 5 = 12, tulis “2” di bawah dan angkat “1” ke atas!
167
235
---- +
402

Seperti bilangan desimal, bilangan biner juga dijumlahkan dengan cara yang sama. Pertama-tama yang harus dicermati adalah aturan pasangan digit biner berikut:
0 + 0 = 0
0 + 1 = 1
1 + 1 = 0  dan menyimpan 1

sebagai catatan bahwa jumlah dua yang terakhir adalah :
1 + 1 + 1 = 1  dengan menyimpan 1

Dengan hanya menggunakan penjumlahan-penjumlahan di atas, kita dapat melakukan penjumlahan biner seperti ditunjukkan di bawah ini:



1 1111  “simpanan 1” ingat kembali aturan di atas!
01011011  bilangan biner untuk 91
01001110  bilangan biner untuk 78
------------ +
10101001  Jumlah dari 91 + 78 = 169

Silahkan pelajari aturan-aturan pasangan digit biner yang telah disebutkan di atas!

Contoh penjumlahan biner yang terdiri dari 5 bilangan!
11101 bilangan 1)
10110 bilangan 2)
1100 bilangan 3)
11011 bilangan 4)
1001 bilangan 5)
-------- +

untuk menjumlahkannya, kita hitung berdasarkan aturan yang berlaku, dan untuk lebih mudahnya perhitungan dilakukan bertahap!

11101 bilangan 1)
10110 bilangan 2)
------- +
110011
1100 bilangan 3)
------- +
111111
11011 bilangan 4)
------- +
011010
1001 bilangan 5)
------- +
1100011  Jumlah Akhir .

sekarang coba tentukan berapakah bilangan 1,2,3,4 dan 5! Apakah memang perhitungan di atas sudah benar?

Pengurangan Biner
Pengurangan bilangan desimal 73426 – 9185 akan menghasilkan:

73426  lihat! Angka 7 dan angka 4 dikurangi dengan 1
9185  digit desimal pengurang.
--------- -
64241  Hasil pengurangan akhir .

Bentuk Umum pengurangan :
0 – 0 = 0
1 – 0 = 0
1 – 1 = 0
0 – 1 = 1  dengan meminjam ‘1’ dari digit disebelah kirinya!

Untuk pengurangan biner dapat dilakukan dengan cara yang sama. Coba perhatikan bentuk pengurangan berikut:

1111011  desimal 123
101001  desimal 41
--------- -
1010010  desimal 82

Pada contoh di atas tidak terjadi “konsep peminjaman”. Perhatikan contoh berikut!

0  kolom ke-3 sudah menjadi ‘0’, sudah dipinjam!
111101  desimal 61
10010  desimal 18
------------ -
101011  Hasil pengurangan akhir 43 .