Rabu, 31 Maret 2010
- Maret 31, 2010
- JuanitaOke
- Celoteh
- No comments
Senin, 29 Maret 2010
- Maret 29, 2010
- JuanitaOke
- Bahasa rakitan
- 1 comment
Bahasa Rakitan/Assembler
- Komputer “bicara/berkomunikasi” dgn menggunakan suatu bahasa
- Bahasa-bahasa pemrograman menyediakan tools u/ mengekspresikan pemrosesan data secara simbolik
- Setiap bahasa memiliki sintaks dan grammar yang dirumuskan dgn baik
- Bahasa Assembler/Rakitan adalah bahasa komputer yang mempunyai kedudukan diantara bahasa tingkat tinggi dan bahasa tingkat rendah dan bertugas mengkonversi program source kode ke bahasa mesin.
o Bahasa rakitan merupakan representasi teks dari bahasa mesin
o Satu statement bahasa rakitan merepresentasikan satu instruksi mesin
o Bahasa rakitan merupakan abstarksi antara program tingkat tinggi dan kode mesin
- Bahasa Tingkat Tinggi/High Level Language adalah bahasa komputer yang menggunakan kata-kata dan pernyataan yang mudah dimengerti oleh manusia, walaupun jauh berbeda dengan bahasa yang digunakan untuk komunikasi sehari-hari. Contoh Java, C++, Pascal, Basic dll
- Bahasa Tingkat Rendah/Low Level Language/Bahasa Mesin adalah kumpulan kode biner yang hanya bisa di mengerti oleh komputer, kode-kode ini kemudian diterjemahkan sebagai instruksi-instruksi yang harus dijalankan oleh komputer.
- Bahasa mesin merupakan bahasa ibu/alamiah dari komputer
- Bahasa mesin merupakan representasi bit dari operasi mesin dieksekusi oleh hardware
- Hirarki bahasa pemrograman:
- Mengetahui lebih dalam tentang arsitektur komputer dan sistem operasi
- Mengetahui lebih lanjut tentang komputer dan bagaimana bahasa komputer membangkitkan kode mesin, karena bhs rakitan mempunyai hubungan yang dekat dgn bhs mesin
- Mempelajari utilitasnya.
Tipe pemrogramman tertentu sulit atau tidak mungkin dilakukan dgn bhs tingkat tinggi. Contoh:
- Komunikasi langsung dgn SO komputer
- Program color high-speed graphics dgn memori rendah
- Program interfacing
- Program telekomunikasi
- Sebagai Solusi akibat batasan-batasan pada bhs tingkat tinggi.
- Sebagai alat belajar (learning tool) .. terutama menyakut kerja OS
Aplikasi Bahasa Rakitan
- Digunakan sebagai program subroutine khususnya untuk aplikasi spesifik
- Program subroutine ini dapat di panggil oleh bahasa tingkat tinggi. Kombinasi ini akan menambah kekuatan bahasa tingkat tinggi
- Misalnya bahasa pemrograman Borland Delphi ditambah subroutine bahasa assembler yang digunakan untuk mengoperasikan perangkat keras dengan interface program delphi.
Struktur Bahasa Rakitan
- Struktur dasar bahasa rakitan memiliki 3 komponen dalam mesin Intel dan 4 komponen dalam mesin MIPS:
1. Label/ Nama proses atau operasi
- Bagian label berfungsi mewakili nomor memori program
- Apabila ada perintah JUMP(lompat)ke suatu label maka Assembler akan mengingat nomor memori program yang dimaksud dan menjalankan instruksi-instruksi yang terdapat didalam label tersebut
- Cara penulisan Label, bebas tetapi tidak boleh ada spasi, tidak boleh ada nama label yang sama dan diakhiri tanda titik dua( : )
2. Mnemonic
- Mnemonik merupakan kode alphabet pendek atau singkatan perintah yang mudah diingat
- Bagian ini bertugas menginstruksikan suatu program untuk bekerja sesuai perintah
- Mnemonik terdiri dari dua macam yaitu
- Instruksi => instruksi pengendali prosessor misalnya MOV, ADD, JMP
- Directive => Pengatur kerja program Assembler misal DB, DW,DD
# Penulisan harus huruf kapital semua atau huruf kecil semua
3. Operand 1
- Operand merupakan objek dari sebuah instruksi yang harus dieksekusi oleh program assembler sesuai perintah pada bagian Mnemonic
- Bagian ini bisa berupa register, variabel memory, label atau Immediate value
• Contoh
o AX (register)
o count (variabel memory)
o JMP Mulai (label:lompat ke label Mulai)
o 10 (immediete value)
# Penulisan harus huruf kapital semua atau huruf kecil semua
4. Operand 2 (mesin MIPS)
- Komentar
- Bagian Komentar tidak berpengaruh dengan jalannya program, tetapi sangat pentung untuk mempermudah seseorang mengerti maksud dari program yang di buat
- Cara penulisan bebas dan harus didahului tanda titk koma (;) pada mesin intel dan # pada mesin MIPS
- Hal-Hal yang perlu di perhatikan dalam menulis instruksi bahsa Assembeler:
- Setiap Bagian-bagian dalam struktur seperti label, komentar tidak harus selalu ada minimal ada bagian mnemonic contohnya instruksi RET
- Setiap bagian dalm program assembler dipisahkan oleh spasi atau tab, namun untuk bagian menemonik dan operand yang lebih dari satu harus diipisah dengan tanda koma (tanpa spasi)
- Bagian label ditulis mulai huruf pertama dari baris, jika baris program tidak memili label maka perlu di beri spasi atau tab untuk memisahkan bagian label dengan bagian lainnya
Proses: MOV AX,BX ; Salin register BX ke dlm register AX (intel)
Cara mengkompile program assembler
- Untuk mengkompile program assembler diperlukan kompiler program asembler, salah satunya Turbo Asembler dengan menjalankan program TASM.EXE dan TLINK.EXE
- Source kode program disimpan dengan ekstensi .ASM
- Program dapat ditulis dengan notepad (windows) atau edit(dos)
- TASM.EXE digunakan mengkompile source code menjadi file object berekstensi .OBJ
- TLINK.EXE digunakan mengkompile file object menjadi file executable .EXE
- Komputer “bicara/berkomunikasi” dgn menggunakan suatu bahasa
- Bahasa-bahasa pemrograman menyediakan tools u/ mengekspresikan pemrosesan data secara simbolik
- Setiap bahasa memiliki sintaks dan grammar yang dirumuskan dgn baik
- Bahasa Assembler/Rakitan adalah bahasa komputer yang mempunyai kedudukan diantara bahasa tingkat tinggi dan bahasa tingkat rendah dan bertugas mengkonversi program source kode ke bahasa mesin.
o Bahasa rakitan merupakan representasi teks dari bahasa mesin
o Satu statement bahasa rakitan merepresentasikan satu instruksi mesin
o Bahasa rakitan merupakan abstarksi antara program tingkat tinggi dan kode mesin
- Bahasa Tingkat Tinggi/High Level Language adalah bahasa komputer yang menggunakan kata-kata dan pernyataan yang mudah dimengerti oleh manusia, walaupun jauh berbeda dengan bahasa yang digunakan untuk komunikasi sehari-hari. Contoh Java, C++, Pascal, Basic dll
- Bahasa Tingkat Rendah/Low Level Language/Bahasa Mesin adalah kumpulan kode biner yang hanya bisa di mengerti oleh komputer, kode-kode ini kemudian diterjemahkan sebagai instruksi-instruksi yang harus dijalankan oleh komputer.
- Bahasa mesin merupakan bahasa ibu/alamiah dari komputer
- Bahasa mesin merupakan representasi bit dari operasi mesin dieksekusi oleh hardware
- Hirarki bahasa pemrograman:
- Mengetahui lebih dalam tentang arsitektur komputer dan sistem operasi
- Mengetahui lebih lanjut tentang komputer dan bagaimana bahasa komputer membangkitkan kode mesin, karena bhs rakitan mempunyai hubungan yang dekat dgn bhs mesin
- Mempelajari utilitasnya.
Tipe pemrogramman tertentu sulit atau tidak mungkin dilakukan dgn bhs tingkat tinggi. Contoh:
- Komunikasi langsung dgn SO komputer
- Program color high-speed graphics dgn memori rendah
- Program interfacing
- Program telekomunikasi
- Sebagai Solusi akibat batasan-batasan pada bhs tingkat tinggi.
- Sebagai alat belajar (learning tool) .. terutama menyakut kerja OS
Aplikasi Bahasa Rakitan
- Digunakan sebagai program subroutine khususnya untuk aplikasi spesifik
- Program subroutine ini dapat di panggil oleh bahasa tingkat tinggi. Kombinasi ini akan menambah kekuatan bahasa tingkat tinggi
- Misalnya bahasa pemrograman Borland Delphi ditambah subroutine bahasa assembler yang digunakan untuk mengoperasikan perangkat keras dengan interface program delphi.
Struktur Bahasa Rakitan
- Struktur dasar bahasa rakitan memiliki 3 komponen dalam mesin Intel dan 4 komponen dalam mesin MIPS:
1. Label/ Nama proses atau operasi
- Bagian label berfungsi mewakili nomor memori program
- Apabila ada perintah JUMP(lompat)ke suatu label maka Assembler akan mengingat nomor memori program yang dimaksud dan menjalankan instruksi-instruksi yang terdapat didalam label tersebut
- Cara penulisan Label, bebas tetapi tidak boleh ada spasi, tidak boleh ada nama label yang sama dan diakhiri tanda titik dua( : )
2. Mnemonic
- Mnemonik merupakan kode alphabet pendek atau singkatan perintah yang mudah diingat
- Bagian ini bertugas menginstruksikan suatu program untuk bekerja sesuai perintah
- Mnemonik terdiri dari dua macam yaitu
- Instruksi => instruksi pengendali prosessor misalnya MOV, ADD, JMP
- Directive => Pengatur kerja program Assembler misal DB, DW,DD
# Penulisan harus huruf kapital semua atau huruf kecil semua
3. Operand 1
- Operand merupakan objek dari sebuah instruksi yang harus dieksekusi oleh program assembler sesuai perintah pada bagian Mnemonic
- Bagian ini bisa berupa register, variabel memory, label atau Immediate value
• Contoh
o AX (register)
o count (variabel memory)
o JMP Mulai (label:lompat ke label Mulai)
o 10 (immediete value)
# Penulisan harus huruf kapital semua atau huruf kecil semua
4. Operand 2 (mesin MIPS)
- Komentar
- Bagian Komentar tidak berpengaruh dengan jalannya program, tetapi sangat pentung untuk mempermudah seseorang mengerti maksud dari program yang di buat
- Cara penulisan bebas dan harus didahului tanda titk koma (;) pada mesin intel dan # pada mesin MIPS
- Hal-Hal yang perlu di perhatikan dalam menulis instruksi bahsa Assembeler:
- Setiap Bagian-bagian dalam struktur seperti label, komentar tidak harus selalu ada minimal ada bagian mnemonic contohnya instruksi RET
- Setiap bagian dalm program assembler dipisahkan oleh spasi atau tab, namun untuk bagian menemonik dan operand yang lebih dari satu harus diipisah dengan tanda koma (tanpa spasi)
- Bagian label ditulis mulai huruf pertama dari baris, jika baris program tidak memili label maka perlu di beri spasi atau tab untuk memisahkan bagian label dengan bagian lainnya
Proses: MOV AX,BX ; Salin register BX ke dlm register AX (intel)
sumber gambar : http://www.linuxsoft.cz
- Maret 29, 2010
- JuanitaOke
- Bahasa rakitan
- 1 comment
- Untuk mempelajari bahasa rakitan, perlu sekali mengetahui sistem bilangan karena di dalam mikrokomputer semua input, output dan isi memori di lakukan melalui sandi.
- Sandi-sandi tersebut diubah ke sandi bilangan misalnya biner, oktal, desimal atau heksadesimal
- Pemahaman terhadap jenis-jenis bilangan ini adalah penting, karena akan sangat membantu kita dalam pemrograman yang sesungguhnya.
- Sistem bilangan umum dipakai pada komputer antara lain:
o Sistem Bilangan Desimal
o Sistem Bilangan Biner
o Sistem Bilangan Oktal
o Sistem Bilangan Hexadesimal
- Selain sistem bilangan tersebut diatas, masih banyak sistem bilangan yang diciptakan dan tentunya mempunyai radik(dasar) yang berbeda-beda pula, seperti pada tabel berikut
Sistem Bilangan | radix | Digit mutlak |
binary | 2 | 01 |
Sistem Bilangan Desimal
- Sistem bilangan desimal adalah bilangan yang terdiri dari 10 buah angka (berbasis 10) yaitu angka 0-9
- Dengan basis sepulah ini maka suatu angka dapat dijabarkan dengan perpangkatan sepuluh
- Sandi bilangan desimal biasanya menggunakan huruf D atau tidak dituliskan sama sekali. Contoh 567D atau 567 artinya bilangan desimal 567
Contoh
Bilangan 567 dengan bilangan dasar 10, maka penjabarannya sebagai berikut :
(5 *102)+(6 * 101)+(7 * 100) = 567
Sistem Bilangan Binar
- Semua bilangan, baik data maupun program akan diterjemahkan oleh komputer menjadi bentuk biner. Jadi pendefinisian data dengna jenis apapun seperti desimal, oktal, maupun heksadesimal akan selalu diterjemahkan dalam bentuk biner
- Bilangan biner adalah bilangan yang hanya terdiri atas 2 kemungkinan(berbasis 2) yaitu 0 dan 1.
- Karena berbasis 2 maka pengkonversian kedala betuk desimal adalah denagn mengkalikan suku ke – N dengan 2N
- Misalnya pada angka 01112 dijabarkan sebagai berikut:
- (0 * 23)+(1 * 22)+ (1 * 21) +(1 * 20) = 710
- Bilangan oktal adalah bilangan basis 8, artinya angka yang dipakai hanyalah antar 0-7.
- Sama seperti bilangan lain, bilangan oktal dapat dikonversi ke bentuk desimal dengan mengalikan suku ke - N dengan 8N
Sistem Bilangan HeksadesimalMisalnya angka 128 di (1 * 81) + (2 * 80) = 10
- Bilangan Heksadesimal merupakan bilanagn yang berbasis 16
- Angka yang digunakan 0 1 2 3 4 5 6 7 8 9 A B C D E F
- Bilangan heksa desimal dapat dikonversi ke dalam bentuk desimal dengan mengalikan suku ke – N dengan 16N
- Contoh bilangan
- 27616 = (2 * 162)+(7*161)+(6*160)=63010
Perubahan dari Basis 10 ke basis N
Perubahan dari basis 10 ke basis N dilakukan dengan operasi division (pembagian bulat) dan modulus (sisa pembagian bulat) N.
Exp:
971 akan diubah menjadi basis 8
971 div 8 = 121, modulus (sisa) = 3
121 div 8 = 15, modulus = 1
15 div 8 = 1, modulus = 7
=> 971 = 17138
29 akan diubah menjadi basis 2
29 div 2 = 14, modulus = 1
14 div 2 = 7, modulus = 0
7 div 2 = 3, modulus = 1
3 div 2 = 1, modulus = 1
=>27 = 111012
500 akan diubah menjadi heksa
500 div 16 = 31, sisa 4
31 div 16 = 1, sisa F
500 = 1F4
Bilangan Pecahan Desimal ke basis N
- Konversi pecahan desimal ke biner
Contoh :
0,125 menjadi biner
0,125 x 2 = 0,250
0,250 x 2 = 0,5
0,5 x 2 = 1,00
= 0,125 =0,001
Ket: hasil dibaca dari langkah satu ke langkah berikutnya
- Konversi pecahan desimal ke oktal
Contoh :
0,375 menjadi oktal
0,375 x 8 = 3,000
=>0,375 = 0,3
- Konversi pecahan desimal ke heksadesimal
Contoh :
0,375 menjadi oktal
0,375 x 16 = 6,000
=>0,375 = 6,00
Pecahan basis N ke desimal
- Konversi pecahan ke desimal
Contoh :
101.011 menjadi desimal
(1 * 22 + 0 * 21 + 1 * 20 + 0 * 2-1 + 1 * 2-2 + 1 * 2-3 ) =
2 + 0 + 1 + 0 + 0,25 + 0,123 = 3,375
ket : basis yang lain caranya sama
Aritmatika Biner
- Penjumlahan biner
Contoh :
1010 + 1111 =
1010
1111+
11001
- Pengurangan biner
Contoh :
1101 -1001 =
1101
1001-
100
- Perkalian biner
Contoh :
10 x 11 =
10
11 x
10
10__+
110
sumber gambar : http://agungnuza.files.wordpress.com
- Maret 29, 2010
- JuanitaOke
- 1 comment
- Register adalah sebagaian memory dari prosessor yang dapat di akses dengan kecepatan sangat tinggi dan selalu digunakan oleh microprosessor sebagai perantara dalam menjalankan pekerjaannya
- Register yang digunakan microprosessor di bagi menjadi beberapa bagain antara lain:
- General Purpose Register
- Pointer dan Index Register
- Segmen Register
- Flag Register
- General Purpose Register merupakan register 16 bit yang terdiri dari AX, BX, CX dan DX. Sebagai pilihan lain dapat digunakan AH, BH, CH dan DH (bagian tertinggi) yang masing-masing 8 bit dan juga bisa digunakan AL, BL, CL, dan DL (bagian terendah) yang masing-masing 8 bit.
Nama Register | Nama Register | Fungsi dan Sifat Khusus | |
AX | AH | AL | Akumulator utama, semua operasi Input-Output dilakukan disini dan dilakukan pula untuk menyimpan operasi dari ALU(Aritmatic Logic Unit) serta hasil perhitungan sementara dari operasi tersebut |
BX | BH | BL | Base Register, untuk perhitungan memory berbagai adderssing mode, menggunakan DS(data segment) sebagai default segment. |
CX | CH | CL | Count Register, untuk instruksi yang memerlukan hitungan seperti perulanagn(LOOP), operasi string (misalnya menghitung banyaknya karaker), rotate (ROL, ROR) maupun geser atau shift (SHL,SHR) |
DX | DH | DL | Digunakan untuk menyimpan nilai overflow dari suatu operasi aritmatik dan alamat Input-output sehingga sering digunakan untuk mengakses Input-Output Bus melalui instruksi IN atau OUT. |
- Pointer dan Index Register merupakan register yang digunakan sebagai penunjuk(pointer) terhadap suatu lokasi di memory. Register-register ini berukuran 16 bit
Nama Register | Kepanjangan | Fungsi dan Sifat Khusus |
SP | Stack Pointer | Berpasangan dengan SS(Stack Segment) -> SS:SP digunakan untuk menunjukkan alamat dari stack, untuk mendapatkan Physical Address (PA=SS * 10H +SP) |
BP | Base Pointer | Berpasangan dengan SS(Stack Segment) =>SS:BP digunakan untuk mencatat suatu alamat di memory tempat data. |
SI | Source Index | Digunakan pada operasi string dengan mengakses secara langsung pada alamat di memory yang ditunjukkan oleh kedua memory ini |
IP | Instruction Pointer | Berpasangan dengan CS (Code Segment) => CS:IP akan menunjukkan alamat di memory tempat dari perintah selanjutnya yang akan di eksekusi dan untuk mendapatkan offset atau alamat efektif dari instruksi (PA=CS*10H+IP) |
- Segment Registers merupakan registers 16 bit yang berguna mencatat alamat sebagai penunjuk lokasi data di memory. Registers ini terdiri dari 20 jalur alamat external tetapi memiliki 16 bit alamat internal.
Nama Register | Kepanjangan | Fungsi dan Sifat Khusus |
SS | Stack Segment | Menunjukkan letak dari segment yang digunakan oleh stack |
CS | Code Segment | Menunjukkan tempat atau segment yang sedang aktif |
DS | Data Segment | Menunjukkan alamat atau segment dimana data-data program disimpan |
ES | Extra Segment | Register tambahan yang berguna untuk menunjukkan suatu alamat di memory, misalnya alamat memory video |
- Flag Registers merupakan register berukuran 1 bit yang menunjukkan kondisi dari suatu keadaan (ya/tidak atau 0/1)
Tabel Flag Register pada keluarga mikroprossesor 80286 dan 80386
Flag | Nama | Fungsi dan Sifat Khusus |
A | Auxilary | Digunakan untuk menyesuaikan nialai AL pada penjumlahan atau pengurangan suatu Bunary Coded Desimal apakah terjadi carry atau borrow |
C | Carry | Bernilai 1 bila terjadi carry pada operasi penjumlahan atau terjadi borrow pada operasi pengurangan |
D | Direction | Digunakan pada operasi string untuk menunjukkan arah proses |
I | Interrupt | Bila bit bernilai 0 maka CPU akan mengabaikan interrupt yang terjadi |
O | Overflow | Bernilai 1 bila terjadi overflow pada operasi aritmatika |
P | Parity | Bernilai 1 Jika bilangan yang dihasilkan dalam biner jumlah angka 1 genap |
S | Sign | Bernilai 1 bila muncul bilangan yang bertanda negatif pada operasi aritmatika |
T | Trap | Digunakan terutama untuk Debugging atau mencari bug atau error pada program langkah demi langkah, bila bernilai 1, maka mikroprosessor akan menghentikan alur program |
Z | Zero | Bernilai 1 bila menghasilkan nol |
- Maret 29, 2010
- JuanitaOke
- Bahasa rakitan
- 2 comments
- Hal yang tidak dapat dipindahkan dari komputer adalah memory karena setiap komputer memerlukan memory sebagai tempat kerjanya
- Fungsi memory adalah unuk memuat program dan juga menampung hasil proses
- Memory terdiri dari
- RAM (Random Access Memory) => data-data dapat ditulis maupun di baca pada lokasi manasaja di memory
- ROM (Raed Only Memory) => hanya dapat dibaca dan tidak dapat ditulisi biasanya ditujukan untuk mengatur aktivitas komputer pada saat pertama kali dihidupkan(ROM-BIOS). Pengisian ROM dikerjakan oleh Pabrik (AMI BIOS, AWARD dll)
- Hal yang perlu diperhatikan dalam membuat program dengan bahasa Assembler berkenaan dengan memory adalah Segmentasi memory yaitu pembagian alamat sebagai lokasi suatu data atau instruksi.
- Ada dua macam alamat memory
- Alamat Fisik(Physical Address) => alamat yang ada pada jalur 20 bit. Nilainya antara 00000H – FFFFFH
- Alamat Logik(Logical Address) => alamat yang di pakai oleh program yang terdiri dari SEGMENT dan OFFSET. Nilai dasar segment diambil dari salah satu segment register(CS,SS,DS,ES) dan offset nilainya ada pada index register atau pointer register atau juga bisa didapat dari berbagai addressing mode
- Main Memory/Memory utama terdiri dari sejumlah sel yang masing masing dapat menyimpan informasi sebesar 1 byte(8bit)
- Masing-masing sel memory diberi satu alamat (address)dimulai dari 0 sampai dengan jumlah memory dikurangi 1
- Dengan adanya address ini, maka lokasi dari memori dapat dihubungi.
- Pada mikroprosessor intel 8086/8088 digunakan memory sebesar 1 Mb=1048576 byte, oleh karena itu alamatnya antara 00000 – FFFFF (20 bit)
- Kemampuan prosessor 8088 memiliki register yang ukurannya 16 bit, berabti masih kekurangan 4 bit lagi untuk menampung satu alamat memory.
- Untuk menampung kekurangan sebesar 4 bit maka harus dilakukan penomoran dengan 2 register.
- Sebuah register berisi 16 bit yang terletak disebelah kiri dan dinamakan register segment
- Sebuah register lain berisi 16 bit yang terletak disebelah kanan dan dinamakan register offset
- Antara segment dan offset ditulis dan dipisahkan oleh tanda titik dua ( : ) seperti berikut
- SEGMENT : OFFSET
2845 : FB00
Pengalamatan Memory
- Cara pengalamatan memory yang dilakukan oleh komputer sering disebut dengan pengalamatan relatif(relatif address), sedangkan yang kita perlukan adalah kemampuan 20 bit sehingga pengalamatan yang dilakukan adalah pengalamatan mutlah atau absolut
- Memory pada 8088 adalah 1 MB, Perlu diingat bahwa 1 Kb = 1024 byte, 1 Mb = 1024 KB = 1048576 byte (20 bit). Dengan demikian alamat memory dari 0 – 1 MB otomatis memerlukan 5 digit angka desimal 00000 – FFFFF
- Padahal register pada prosessor 8086/8088 hanya berukuran 16 bit, berarti hanya dapat menampung 4 digit hexadesimal yaitu 0000-FFFF
- Oleh karena itu, dengan kondisi tersebut perlu aturan penulisan sebagai berikut
- Pada Segmen register => nilai digit terendah adalah 161 dan digit tertinggi 164 (hal ini mengakibatkan segment register digeser kekiri 1 digit)
- Pada Offset =>register terendah 160 dan tertinggi 163
- Tabel Alamat Fisik dan Logic
Alamat Fisik | Alamat Logik | Alamat Fisik |
00000 | 0000:0000 | 0 |
- Contoh:
- Alamat dimemory adalah 2845:FB00, berapakah alamat fisik/absolutnya?
- Segment => 2845H
Offset => FB00H
Cara:
28450
FB00 +
37F50 => Alamat Fisik - Catatan:
- Segment 0 => 0000:0000 s/d 0000:FFFF
- Segment 1 => 1000:0000 s/d 1000:FFFF
..............
- Segment F =>F000:0000 s/d F000:FFFF
Organisasi Memory IBM PC
- Seperti yang telah disebutkan di atas bahwa prosesor 8088 secara langsung dapat berhubungan dengan lokasi memory sebanyak 1 Mb, yang di mulai 00000H sampai dengan FFFFFH dan keseluruhan lokasi memory tersebut terdapat pada dua jenis memory yaitu RAM dan ROM.
- Seperempat memory paling di atas, terdiri dari segment paragraf 0000H sampai FFFFH disediakan untuk ROM dan ROM BIOS menempati 8 KB lokasi memory yang diawali dari paragraf FE00H.
- ROM BASIC menempati 32 KB sebelumnya, yang dimulai dari segment paragraf F600H dan berakhir pada awal lokasi ROM BIOS. Sisa lokasi ROM yang ada dapat digunakan untuk ROM tambahan dan diletakkan diatas paragraf 0000H.
- Di bawah area ROM terdapat area sebesar 64 Kb yang secara khusus di sediakan untuk menunjang keperluan layar tampilan. Area memory tersebut di bagi menjadi 2 bagian yaitu bagian pertama pada paragraf B000H digunakan untuk monochrom display yang kedua diguanakan unuk color graphics display pada paragraf B800H. Monochrome display hanyan menempati 4 Kb, sedangkan color grafics display menggunakan 16 Kb. Lokasi yang tersisa tidak digunakan atau digunakan untuk pengembangan berikutnya.
- Untuk display adapter, sebenarnya tidak hanya 64 Kb saja yang disediakan melainkan 64 Kb di bawahnya juga dapat digunakan sesuai dengan dokumentasi IBM ( A000H – B000H ). Lokasi memory 64 Kb tersebut dibagi menjadi 2 bagian yaitu 16 Kb pertama (paragraf A000–A400H ) digunakan secara tidak menentu (tidak ada indikasi maksud kegunaannya ) sedangkan 48 Kb sisanya ( dari paragraf A400H sampai dengan B000H ) merupakan bagian dari seluruh 112 Kb memory yang disediakan untuk high resolution display baru, yang membutuhkan memory yang lebih besar dari pada memory monochrome display dan color grafics display. Jadi alokasi memory seluruhnya yang disediakan untuk tampilan dimulai dari segment paragraf A400H sampai dengan 0000H.
- Lokasi memory yang terletak dibawah paragraf A000H dapat digunakan seperti penggunaan memory biasa. Memory yang sebesar 16 Kb pertama diatas 1000H terletak pada board sistem dan memory tambahan diletakkan pada expansion board.
- IBM-PC sebenarnya hanya ditunjang dengan memory sebesar 256 K dan memungkinkan untuk dikembangkan lebih besar dari 256 Kb yang akan di cek oleh program poweron self test dari ROM BIOS. Semua RAM yang dipasang pada komputer ini diletakkan pada lokasi terendah ari memory yang ada.
- Peta Memory IBM PC
Alamat fisik (heks) | Keterangan |
00000 - 0007F | BIOS Interupt Vektor |
A4000 – AFFFF | Monochrome Adapter |
C0000 – C7FFF | Ekpansi Memory |
sumber gambar :The Computer language. co.inc
- Maret 29, 2010
- JuanitaOke
- Bahasa rakitan
- 1 comment
- Interrupt adalah suatu permintaan khusus untuk melakukan suatu dan harus segera dipenuhi oleh mikroprosesor, apapun yang sedang dikerjakannya harus dihentikan dahulu untuk memenuhi interrupt ini.
- Pada IBM PC dan kompetibelnya disediakan 256 buah interupsi yang diberi nomor 0 sampai 255.
- Interrupt yang berjumlah 256 ini dibagi kedalam 2 macam yaitu:
- Interupt 00H – 1FH (0 -31) adalah interrupt BIOS, interrupt ini standart disemua computer apapun system operasinya, baik dos atau bukan. Lokasi Interrupt Vektor Tablenya pada alamat absolute/mutalak 000H – 007FH
- Interupt 20H – FFH (32 -255) adalah interrupt dos. Interrupt ini hanya pada computer yang menggunakan system operasi dos dan interrupt handlernya di load ke memori oleh DOS pada saat DOS digunakan. Lokasi Interrupt Vector Tablenya ada di alamat absolute 07FH – 3FFH
- Setiap Interrupt akan mengeksekusi interrupt handlernya(program yang melayani suatu interupsi) masing-masing berdasarnkan nomornya.
- Penulisan interrupt sebagai berikut :
INT ‘NomorInterrupt’
- Tabel BIOS INTERRUPT
Nomor | Nama | Nomor | Nama |
*00H | Divide By Zero | 10H | Video Service |
*01H | Single Step (Langkah Tunggal) | 11H | Equipment Check |
*02H | Non Maskable interrupt | 12H | Memory Size (Ukuran Memory) |
*03H | Break Poin | 13H | Disk Servis |
04H | Arithmetic Overflow | 14H | Communication Rs-232 |
05H | Print Screen (cetak Layar) | 15H | Casette Service |
06H | Reserved (Cadangan) | 16H | Keyboard Service |
07H | Reserved (Cadangan) | 17H | Printeer Service |
08H | Clock Tick/Timer | 18H | ROM Basic (Dasar dari ROM) |
09H | Keyboard | 19H | Bootstrap Loader (Loader pada Saat Pertmakali Booting) |
0AH | I/O Channel Action | 1AH | BIOS Time & Date (Waktu dan Tanggal System pada BIOS) |
0BH | COM 1 (Serial Port 1) | 1BH | Control Break |
0CH | COM 2 (Serial Port 2) | 1CH | Timer Tick (Detikan Waktu) |
ODH | Fixed Disk (Disk | 1DH | Video Initialization |
0EH | Diskette (Disket/Floppy Disk) | 1EH | Disk Parameter |
0FH | LPT 1 (Parallel Port 1) | 1FH | Graphics Char (Karakter Grafik) |
Ket:
*Interrupt tersebut telah dipastikan kegunaannya oleh system untuk keperluan khusus, tidak boleh dirubah oleh pemrogram
- Devide By Zero => Jika terjadi pembagian dengan nol maka proses akan segera dihentikan
- Singgle Step => untuk melakasanakan/mengeksekusi instruksi satu persatu
- NMI => Pelayanan terhadap NMI(Non Maskable Interrupt) yaitu interupsi yang tidak dapat dicegah
- Break Point => Jika suatu program menyebabkan overflow flag menjadi 1 maka interrupt ini akan melayani pencegahannya dan memberi tanda error.
- Tabel DOS Interrupt
Nomor | Nama | Nomor | Nama |
20H | Terminate Program | 24H | Critical Error Handler |
21H | DOS Function Services | 25H | Absolute Disk Read (Membaca isi disk Secara Mutlak) |
22H | Terminate Code | 26H | Absolute Disk Write (Menulis ke dalam disk secara mutlak) |
23H | Control-Break Code(Keluar dari Kode) | 27H | Terminate But Stay Resident(Hentikan Tapi Tetap Tinggal) |
- Beberapa Interrupt baik bios maupun dos memiliki nomor service sbb:
- Interrupt Bios
- INT 10 => Layanan Video Service/layanan monitor
- Interrupt Bios
Memiliki nomor service sbb:
0 => Atur mode video
1 => Mengubah ukuran kursor
2 => Ubah posisi kursor
3 => Mencari posisi kursor
5 => Memilih halama video
6 => Menggulung keatas
7 => Menggulung ke bawah
8 => Membaca karakter dan atributnya
9 => Menulis karakter dan atributnya
Ah => Menulis karakter
Fh => Mencari mode video
-
-
- INT 13 => Layanan disket
-
Memiliki nomor service 0 yang dihunakan untuk mereset disk, 0 dimasukkan pada register AH
-
- Interrupt Dos
- INT 21 => Dos Function Service
- Interrupt Dos
Memiliki beberapa service yang diletakkan pada register AH antara lain:
1 => Input papan ketik
2 => Tampilkan karakter
3 => Input port serial
4 => Output port serial
5 => Output pencetak
6 => Input atau output langsung
7 => input tanpa tampilan
8 => input papan-ketik tanpa tab
9 => Tampilkan string
A => Baca buffer papan ketik
B => Status input
25 => Ubah vector interrupt
30 => Cari nomor versi DOS
31 => program tetap tinggal dimemori
35 => cari vector interrupt
3C => Buat berkas
3D =>Buka berkas
3E => Tutup berkas
3F => Baca berkas atau piranti
40 => Tulis berkas atau piranti
41 => Hapus berkas
43 => Atribut berkas
4A => Ubah memory yang disisihkan
4B => Muat dan jalankan Program
4C =>Hentikan program
4D => tentukan sandi kesalahan
56 => Ganti nama berkas
- Contoh Program penggunaan interrrupt
.MODEL SMALL
.CODE
ORG 100H
Start: MOV CL,26 ;isi CL dengan 26(A-Z = 26 karakter)
MOV AH,2H ;service untuk mencetak karakter
MOV DL,'A' ;isi DL dengan karakter pertama uang akan di cetak
Ulang: INT 21H ;Cetak karakternya
INC DL ;DL=DL+1
LOOP Ulang ;Lompat ke label Ulang sebanyak CL
INT 20H ;Interrupt Hentikan Program
END Start
http://www.winsystems.com
- Maret 29, 2010
- JuanitaOke
- Bahasa rakitan
- 6 comments
Proses Pembuatan Program
- Dalam proses pembuatan program bahasa rakitan terdapat 5 langkah yang harus diketahui:
- Desain Algoritma:
- Penetapan masalah
- Pengusulan solusi yang terbaik
- Pembuatan diagram skematik yang digunakan agar usulan solusi lebih baik (berupa flowchart)
- Pengkodean algoritma
- Penulisan program dalam bahasa pemrograman tertentu
- Penerjemaahan ke bahasa mesin
- Pembuatan program obyek, atau dgn kata lain,program ditulis dalam suatu deret/urutan 0 dan 1 yang dapat diinterpretasi oleh prosessor
- Test program
- Eksekusi program pada mesin komputer
- Mengeliminasi kesalahan yang terdeteksi
- Koreksi kesalahan umumnya memerlukan pengulangan seluruh langkah-2 dari langkah 1 atau 2
- Desain Algoritma:
- Untuk membuat program dlm bahasa rakitan tersedia dua option:
- Debugger (Menggunakan DEBUG)
- Hanya dapat membuat program dgn extension *.COM => karena karakteristik sifat program ini :
- Program tidak lebih besar 64 K dan
- Program harus dimulai dgn displacment, offset, atau 0100H memory direction didalam segment tertentu(spesific)
- Kumpulan perintah DEBUG antara lain:
- A: Assemble => merakit intruksi simbolik =>kode mesin
- D: Dump =>menampilkan isi suatu daerah memori
- E: Enter =>memasukan data ke memori, dimulai pada lokasi tertentu
- G: Go =>run executable program ke memori
- N: Name =>menamai program
- P: Proceed =>ekskusi sekumpulan instruksi yang terkait
- Q: quit
- R: Register =>menampilkan isi satu atau lebih registers
- T: Trace =>menjalankan program sambil menampilkan register yang dipakai
- U: Unassembled =>Tampilkan program yang sudah ada
- W: Write => menulis program ke disk
- Bagaimana memulai DEBUG?
- C:/>debug[enter]
- -r[enter]
- Hanya dapat membuat program dgn extension *.COM => karena karakteristik sifat program ini :
- Debugger (Menggunakan DEBUG)
Muncul tampilan sbb
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0D62 ES=0D62 SS=0D62 CS=0D62 IP=0100 NV EI PL NZ NA PO NC 0D62:0100 2E CS:0D62:0101 803ED3DF00 CMP BYTE PTR [DFD3],00CS:DFD3=03
Kalo mau menampilkan mengunakan parameter sbb:
-rbx [enter]
Muncul tampilan sbb:
BX 0000
:
(apabila muncul tanda “:” kita bisa mengisi nilai dari BX)
Bagaimana membuat program bahasa rakitan dasar dengan debug:
-
-
-
- Memulai Debug dengan mengetik sbb
-
-
C:/>Debug[enter]
-
-
-
- Assemble suatu program dgn perintah “a” dengan format sbb:
-
-
a parameter[enter]
- A 100[enter]
Ket:
Parameter => alamat awal proses perakitan
Jika tanpa parameter => diinisialisasi pada posisi (locality) yang dispesifikasikan
oleh CS:IP(biasanya100h)
-
-
-
- Contoh program lengkap sbb:
-
-
- a 100[enter]
0B42:0100 mov ax,0002[enter] ; move nilai 0002 ke AX
0B42:0100 mov bx,0004[enter] ; move nilai 0004 ke BX
0B42:0100 add ax,bx[enter] ; tambahkan nilai bx ke ax
0B42:0100 nop[enter][enter] ; tidak ada program=>finish the program
-
-
-
- Untuk mengetahui hasil perogram ketik “t”sbb:
-
-
- t [enter]
Muncul tampilan sbb:
AX=0002 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0D62 ES=0D62 SS=0D62 CS=0D62 IP=0103 NV EI PL NZ NA PO NC 0D62:0103 BB0400 MOV BX,0004
-
-
-
- Menyimpan Program
- Cek panjang prorgram dgn perintah “h”
- Menyimpan Program
-
-
-h 10a 100 (alamat akhir 10a)
020a 000a
-
-
-
-
- Memberi nama
-
-
-
-n test.com
-
-
-
-
- Gunakan perintah “rcx” untuk mengubah nilai registes CX dgn nilai yg diperoleh dari ukuran file => 000a
-
-
-
-rcx
CX 0000
:000a
-
-
-
-
- Terakhir, gunakan perintah “w” u/ menyimpan
-
-
-
– w
Writing 000A bytes
-
-
-
- MeLoad Program
- Berikan nama file yang akan diload
- Load dgn perintah “l”
- MeLoad Program
-
-
-n test.com
-l
-u 100 109
0C3D:0100 B80200 MOV AX,0002
0C3D:0103 BB0400 MOV BX,0004
0C3D:0106 01D8 ADD AX,BX
0C3D:0108 CD20 INT 20
Ket:
=>Perintah “u” digunakan memverifikasikan bhw program telah diloaded ke memori. Ini berarti dgn perintah ini: kode di unassemble, kemudian meanmpilakn hasil unassemble. Parameter mengindikasi Debug dari mana dan disassamble ke mana.
=> Debug selalu meload program ke memori pada alamat 100h, kecuali digunakan paramater lain.
-
- Mengunakan Turbo Assembler (TASM, Borland)
- Dalam membuat program menggunakan Turbo Assembler diperlukan software sbb:
- Editor => menulis souurce code (Notepad, SK dll)
- Compiler => menerjemahkan source code ke program objek (TASM)
- Linker => Menggenerate program objek ke executable file.
- Langkah-langkahnya
- Simpan file dengan ekstensi .asm
- Compile => c:\>TASM coba.asm
- Link => c:\>TLINK coba
- Dalam membuat program menggunakan Turbo Assembler diperlukan software sbb:
- Mengunakan Turbo Assembler (TASM, Borland)
Pola Susunan Pemrograman
- Program Bahasa Rakitan dapat berekstensi .COM maupun .EXE
- Perbedaan antara .COM dan .EXE adalah sbb:
Perbedaan | Program .EXE | Program .COM |
Kecepatan | Lebih lambat dari file .COM karena program lebih panjang | Lebih cepat dari .EXE karena program lebih pendek |
Ukuran | Tidak terbatas sesuai dengan ukuran memory | Maksimal 64KB |
Segmen | Mengenal adanya segmentasi, sehingga terdapat Code Segment, Data Segment dan Stack Segment | Hanya memiliki satu segment yaitu Code Segment yang ditempati oleh program data dan stack |
Akses data pada segmen lain | Mudah mengakses data atau procedure pada segment lain | Sulit mengakses data atau procedure pada segmen lain |
Debug mode | Tidak dapat dibuat dengan DEBUG | Dapat dibuat dengan DEBUG |
Awal Program | Diawali dengan Stack Segment atau Data Segment kemudian diikuti dengan Code Segment | 100H byte pertama merupakan PSP(Program Segment Prefix)dari program tersebut, sehingga instruksi assembler biasanya dimulai pada CS:0100 |
Akhir Program | Diakhiri dengan Instruksi Assembler fungsi 4CH Interrupt 21H | Diakhiri dengan Interrupt 20H |
- Perbedaan pola susunan bahasa rakitan antara .EXE dengan .COM dalah sbb:
Program .EXE | Program .COM |
Sseg SEGMENT | .MODEL SMALL |
- Pada program .COM digunakan perintah yang merupakan sebuah tanda langsung atau Directive Sign yang digunakan untuk memberi informasi kepada Assembler tentang bentuk memory yang akan digunakan pada program misalnya .MODEL SMALL
- Ada enam model program yang bisa digunakan yaitu:
- .MODEL TINY => Program dengan model ini hanya menggunakan 1 segment (Model ini disediakankhusus untuk program berekstensi .COM)
- .MODEL SMALL =>Program model ini menggunkan ukuran data-data dan kode kurang dari 1 segment atau 64KB
- .MODEL MEDIUM => Program model ini menggunakan ukuran data kurang dari 64KB namun ukuran kode bisa lebih dari 64KB
- .MODEL COMPACT => Program model ini menggunkan ukuran data lebih kecil dari 64KB namum ukuran kode lebih kecil atau sama dengan 64KB
- .MODEL LARGE => Program model ini menggunkan ukuran data dan kode lebih dari 64 KB (lebih dari 1 segment)
- .MODEL HUGE => Program model ini menggunkan ukuran data, kode dan array lebih besar dari 64KB
Jenis Angka dan Penulisan Karakter
- Dalam bahasa rakitan diijinkanpenggunaan beberapa bentuk angka yaitu
- Desimal => 0, ...,9 (bisa ditulis langsung atau diberi tanda ‘D’ contoh: 777 atau 777D)
- Biner => 0, 1 (harus diberi tanda ‘B’ contoh: 1011B)
- Heksadesimal =>0,.....F (bila 0...9 harus ditambah ‘H’ dan bila angka pertama A, ....,F harus ditambah 0 didepannya. Contoh: 123BH, 0A12F)
- Penulisan karakter atau string di dalam bahasa rakitan biasanya diapit oleh tanda petik(‘) atau tanda kutip (“) Misalnya “Bahasa rakitan” atau ‘STMIK Pradnya Paramita’
Menentukan Variabel atau Konstanta
- Dalam bahasa rakitan sebuah variabel atau konstanta harus didefinisikan terlebih dahulu.
- Ada beberapa instruksi untu mendefinisikan variabel atau konstanta yaitu:
- DD (Define Byte) => untuk ukuran 1 Byte
- DW (Define Word) => untuk ukuran 1 Word atau 2 Byte
- DD (Define Double Word) => untuk ukuran 2 Word atau 4 Byte
- DF (Define Far Word) => untuk ukuran 4 Word atau 8 Byte
- DQ (Define Ten Byte) => untuk ukuran 5 Word atau 10 Byte
- EQU (Equate) => Untuk menyamakan nilai suatu konstanta dengan nilai tertentu
- Yang perlu di ingat dalam menuliskan konstanta atau variabel adalah penulisan variabel atau konstanta tidak boleh ada spasi tetapi cara penulisan bebas
- Contoh penulisan variabel dan konstanta
- Angka DW ? ;variabel inputan
- Var DB ? ;variabel ukuran 1 byte, isi tidak diketahui
- Kata1 DB ‘STMIK’ ;konstanta STMIK
- Kons1 DB EQU 13H ;konstanta bernilai 13H
- Maret 29, 2010
- JuanitaOke
- Linux
- 1 comment
Jenis partisi Windows berbeda dengan partisi Linux, Windows memiliki jenis partisi FAT 16 (pada DOS dan NT4), FAT32 (pada Win98), dan NTFS (pada NT, XP dan Win2k), sedangkan pada Linux memiliki jenis partisi ex2, dan ex3. Sistem Windows tidak dapat membaca dan mengakses partisi Linux. Sebaliknya, sistem Linux dapat dengan leluasa mengakses partisi Windows. Sebelum membahas partisi drive di Linux, perlu kiranya pembahasan pada bab ini didahului dengan pembahasan mengenai struktur harddisk, jenis-jenis partisi harddisk dan aturan penamaan disk dan partisi.
Struktur Harddisk
Pemahaman tentang struktur harddisk tidak hanya pada pemahaman istilah sector. Sector merupakan bagian unit data terkecil dari harddisk, ukurannya adalah 512 bites. Sector pada harddisk ditandai dengan nomor dari 0 sampai dengan n-1. Selain istilah sector, struktur harddisk juga terdiri dari beberapa partisi (bagian). Secara umum struktur harddisk dibagi dalam dua partisi, yaitu partisi primer dan partisi sekunder.
1. Partisi Primer
Sector pertama, misalnya nomor 0, disebut juga dengan MBR (Master Boot Record) yang berisi antara lain tabel partisi. Seperti sebutannya, tabel ini berisi informasi mengenai partisi yang ada pada harddisk. Berisi maksimum 4 entry, dan dibagi dalam 4 partisi, yang disebut dengn partisi primer (primary partitions). Setiap entry pada tabel partisi berisi bermacam informasi, terutama nomor sector saat dimulainya partisi, nomor akhir sector, dan juga tipe partisi. Biasanya tipe partisi berisi spesifikasi dari system file.
Setiap system operasi mengenalinya namun tidak selain itu. Sebagai contoh, Windows mengangap bahwa setiap partisi yang dinyatakannya sebagai FAT (File Alocation Table) pasti berisi system file FAT. Hal ini berbeda dengan linux. Kita dapat meletakan system file ext2 pada partisi berlabel FAT, dan melakukan setting tanpa masalah. Jika itu terjadi pada Windows pasti bisa menghancurkan struktur harddisk secara keseluruhan. Pada Windows partisi pendek ini menjadi drive, tapi ada bentuk khusus yang bisa menjadikan partisi primer menjadi partisi sekunder atau partisi tambahan (extended partitions)
2 Partisi Sekunder
Hanya ada satu partisi sekunder/partisi tambahan (extended partitions) pada setiap harddisk. Kehadiran partisi sekunder ini pada dasarnya adalah agar bisa membagi ruang harddisk yang berkapasitas besar menjadi lebih dari 4 partisi. Hal ini juga karena keterbatasan program fdisk pada DOS/Windows yang hanya bisa membuat satu pertisi primer pada setiap harddisk. Keterbatasan system operasi Window yang lain adalah pada saat Windows 95 pertama kali diluncurkan, ternyata FAT 16 tidak bisa mengantisipasi kehadiran harddisk berkapasitas lebih dari 2 GB. Pada saat itu harddisk berkapasitas lebih dari 2 GB sudah ada. Sejak saat itulah digunakan partisi sekunder. Kehadiran FAT 32 memperbaiki kelemahan tersebut.
Terlepas dari jenisnya, yang membuatnya istmewah adalah partisi sekunder yang mempunyai kesamaan fitur dengan partisi primer, dari awal sampai akhir nomor sector. Tempat partisi sekunder berada ini kemudian dibagi lagi menjadi partisi logica (logical partitions) dengan menggunakan format lain yang berbeda dengan tabel partisi primer, semenjak nomor partisi logika hanya dibatasi oleh ruangan pada disk. Entri pertama pada tabel partisi logika dapat ditemukan pada sektor pertama pada partisi sekunder. Sector awal dan akhir dari partisi logika pada setiap entri yang ada adalah sama, seperti bentuk dan nomor sector dari entry tabel yang bersangkutan berada. Kita dapat mempartisi harddisk pada bagian pertama dan meletakkan pada bagian kedua. Terakhir kita menambahkan partisi pada harddisk yang tidak bisa mencakup seluruh kapasitas yang ada. Anda bisa membiarkan ruangan harddisk yang tidak terpakai dan menggunakannya nanti.
Aturan Penamaan Disk dan Partisi
Penamaan disk dan partisi pada system operasi Windows dan Linux sangat berbeda. Perbedaan mendasar terletak pada kenyataan bahwa Window tergantung pada bentuk partisi yang mengalokasikan huruf pada drive. Sedangkan Linux tergantung pada posisi disk dalam jalurnya (IDE, SCSI), dan pada partisi setiap disk, namun tidak mengambil bentuk pertisi dalam perhitungan keseluruhan. Berikut akan dijelaskan penamaan disk dan partisi pada sistem operasi Windows dan Linux.
1 Penamaan Disk dan Partisi Pada Sistem Operasi Windows
Windows mengalokasikan huruf pada drive dan tergantung pada bentuk partisi yang ikenali. Windows hanya memberi nama partisi dan tidak pernah memberi nama disk. Ini berarti bahwa Windows tidak pernah memberi nama harddisk yang ada dengan C:, tetapi drive-lah (partisi) yang bernama C:.
Drive C: merupakan subjek pembatasan yang nyata, sebagai pertisi primer yang dikenali oleh Windows, dan disk pertama yang dikenal oleh BIOS, sehingga partisi ini harus diaktifkan. Hal ini merupakan aturan umum, bahwa harddisk IDE pertama pada PC hanya bisa dipasang harddisk IDE, atau Harddisk SCSI pertama pada PC hanya bisa diinstal SCSI. Aturan penamaan drive pada Windows agak aneh antara lain:
- Windows akan selalu mencari partisi primer pada harddisk dan memberinya nama untuk ditampilkan. Kemudian akan memindai (scanning) seluruh harddisk, dan mencari partisi sekunder serta memberinya nama, kemudian ditampilkan (tentu saja jika ada partisi logikanya).
- Apapun yang terjadi seluruh disk yang bukan merupakan harddisk, seperti: CD-ROOM, ZIP dan lainnya, akan diberi nama setelah Drive pada harddisk selesai diinisialisasi, keculai disk floppy yang diberi nama A: dan B:. Hal ini merupakan jawaban dari pertanyaan mengapa nama drive pada CD-ROOM anda selalau berubah, jika ada penambahan partisi atau Hard disk .
2 Penamaan Disk dan Partisi Pada Sistem Operasi Linux
Linux menggunakan lebih banyak metode logika untuk Penamaan partisi, yaitu: pertama, penamaan partisi tidak diletakan pada account type partisi yang ada. Kedua, penamaan pada pertisi tergantung pada keberadaan disk. Untuk lebih jelasnya, perhatikan keterangan beikut ini:
• Primary master dan primary slave, pada peralatan IDE, tidak membedakan harddisk, CD-ROOM atau yang lain. Masing-masing disebut dengan /dev/had dan /dev/hdb.
• Pada interface kedua, masing-msing disebut dengan /dev/hdc dan /dev/hdd untuk master dan slave
• Jika komputer yang ada menggunkan peralatan IDE lainnya, misalnya, kartu suara IDE, maka akan disebut dengan /dev/hde, dev/hdf, dan lainnya
• Harddisk SCSI disebut dengan /dev/sda, /dev/sdb, dan seterusnya, sesuai dengan penampilan SCSI terkait (tergantung pada penambahn ID). CD-ROOM SCSI disebut dengan /dev/sd0/dev/scd1, selalu terkait pada jalur SCSI yang ada.
• Partisi diberi nama dengan nama sesudah disk, atau tempat ditemukannya. Misalnya, partisi pada disk primary master IDE
• Partisi pimer (partisi sekunder),jika ada, diberi nama /dev/hda1 sampai dengan /dev/hda4
• Partisi logika, jika ada, diberi nama /dev/hda5, /devhda6, dan seterusnya tergantung pada tabel partisi logika.
Sistem File Pada Sistem Operasi Linux
Sistem file pada system operasi Linux (ext3), seperti sistem file UNIX pada umumnya,yaitu tidak mengenal istilah drive seperti di DOS atau Windows (contoh: drive C:, drive D:, dan seterusnya). System file pada system operasi Linux menggunakan sistem hirarki dan penyatuan (directory dalam directory). Hal inilah yang memperlakukan semua file, directory dan device driver (termasuk disk-drive, floppy disk dan CD-ROOM drive) sebagai file. Terminology ini dikenal sebagai ‘everything is file’ dalam system operasi UNIX dan LINUX.
Sistem file pada system operasi Linux ataupun UNIX, mendukung nama file sebanyak 256 karekter, tidak termasuk tanda symbol dan tanda kutip kecuali titik (.), dan tanda minus (-). Titik dapat digunakan berkali-kali satu nama file, contoh: ini.nama.file. Hal tersebut dimungkinkan karena system operasi Linux maupun Unix tidak mengenal istilah ekstention seperti di Windows (sebagai warisan DOS).
Semua perintah dilinux bersifat case-sensitive (huruf besar dan kecil diartikan berbeda), dan menggunakan tanda slash (/) untuk menyatakan directory: berbeda dengan DOS/Windows yang menggunakan tanda backslash (\). Ada 6 kategori file dalam sistem file UNIX/Linux yaitu:
File biasa yang terdiri dari:
o File teks dalam format standar ASCII
o File data dalam format bukan ASCII(karakter khusus)
File teks perintah dalam format ASCII tetapi merupakan sekumpulan perintah otomatis
(script)
File perintah dalam format biner (binary)
Directory
Kaitan (links)
Perangkat kendali (device driver) khusus perangkat keras
Secara keseluruhan susunan hirarki dalam system file UNIX/Linux pada umumnya adalah sebagai berikut :
Directory Keterangan
/ Directory root
/bin Berisi file-file perintah dasar dalam bentuk biner
/boot Berisi file-file dan informasi yang dibutuhkan dalam proses booting
awal
/dev Berisis file-file perangkat pengendali(device driver)
/etc Berisi file-file tambahan yang rata-rata adalah untuk administrasi dan
konigurasi system
/home Directory untuk pengguna(user)
/lib Berisi file-file kepustakaan(library)
/sbin Berisi file-file untuk super-user, atau root dan file biner untuk starup
system
/tmp Berisi file-file sementara(temporer)
/usr Berisi file dan directory untuk perintah tambahan, baik dalam bentuk
biner ataupun script
/var Berisi file-file variable (misalnya spooling untuk system, pencetak,
mail) dan juga berisikan log
Masing-masing distribusi mempunyai sedikit perbedaan terutama dibagian mounting directory
seperti:
RedHat /Caldera / Mandrake
Floppy disk dan CD drive diletakan pada directory /mnt/floppy, dan /mnt/Cdroom Slackware / SuSE
Floppy disk dan CD drive diletakan pada directory /floppy ,dan /cdroom
Tetapi sebenarnya untuk urusan mounting directory tergantung pada system administrator untuk meletakannya, sehingga perbedaan ini sebenarnya bukanlah masalah yang besar.
sumber : linux.or.id