Archive for ‘Univ. PGRI Yogyakarta’

24/10/2011

Materi pengalamatan memory 2

B A B  IV
KONVERSI, REGISTER, DAN PENGELOLAAN MEMORI

Tujuan Instruksional
Dalam bab ini akan dijelaskan mengenai tujuan dan langkah-langkah konversi 
alamat logik menjadi alamat fisik, pengertian, fungsi dan jenis-jenis  
register, antara lain general purpose register, dan register status serta 
penjelasan singkat mengenai pengelolaan memori.

KONVERSI ALAMAT FISIK KE ALAMAT LOGIKA
Untuk memberikan alamat sesungguhnya dari sebuah nilai alamat logika dalam 
nilai segment:offset, maka diperlukan suatu cara untuk menterjemahkan nilai
 tersebut ke dalam notasi alamat fisik. Metode konversinya yaitu dengan 
cara memisahkan nilai segment, kemudian tambahkan satu digit '0' heksa-
desimal pada digit paling kiri, lalu ambil nilai offsetnya, jumlahkan ke 
bawah seperti halnya menghitung bilangan-bilangan desimal sehari-hari.

Contoh :
Diketahui    	: Nilai alamat logika adalah 0220:1234
Ditanyakan 	: Berapa nilai alamat fisiknya ?

J a w a b :
Nilai segment			: 0220
Geser satu digit menjadi	: 02200
Nilai offset			: 1234


02200
  1234
------- +
03434

Untuk nilai binary, alamat segment harus diubah menjadi binary, lalu 
geserlah nilai tersebut ke kiri sebanyak empat bit, artinya akan timbul 
empat binary digit 0 berturut-turut di sebelah kanan. Kemudian nilai 
offset juga diubah ke dalam binary dan tambahkanlah hasilnya ke nilai 
offset yang telah digeser tadi. Untuk mempermudah dalam membaca, 
kembalikan nilai akhir dalam binary tersebut ke dalam notasi heksadesimal

Contoh :
Diketahui		: Nilai alamat logika adalah 0220:1234
Ditanyakan		: Berapa nilai alamat fisiknya ?

J a w a b	:
Nilai segment			: 0220
Nilai binary-nya menjadi	: 0000 0010 0010 0000
Geser 4 bit ke kiri menjadi	: 0000 0010 0010 0000 0000
Nilai offset			: 1234
Nilai binary-nya menjadi	: 0001 0010 0011 0100

Tambahkan :
	0000 0010 0010 0000 0000
             0001 0010 0011 0100
	------------------------------------ +
	0000 0011 0100 0011 0100

Alamat fisik secara binary	: 0000 0011 0100 0011 0100
Secar heksadesimal		: 03434 heksa
 
PENGERTIAN REGISTER 
 Sebuah register adalah sebuah tempat penampungan sementara untuk data-
data yng akan diolah oleh prosesor, dan dibentuk oleh 16 titik elektronis 
di dalam chip mikroprosessor itu sendiri. Dengan adanya tempat-tempat 
penampungan data sementara ini, proses pengolahan akan bisa dilakukan 
secara jauh lebih cepat dibandingkan apabila data-data tersebut harus 
diambil langsung dari lokasi-lokasi memori. Register-registe tersebut 
sebagai register internal dan terdiri dari empat belas register dan 
keseluruhannya dapat dibagi dalam beberapa jenis, yaitu :
 
· Register segment
  Terdiri dari 4 register, yaitu code segment, data segment, stack segment,
  dan extra segment. Segment adalah bagian dari ruang memori yang berkapa-
  sitas 64 kilobyte (65536 byte) dan digunakan secara spesifik untuk 
  menempatkan jenis-jenis data tertentu. Misalnya code segment digunakan 
  oleh program dan instruksi-instruksi (code), data segment dialokasikan 
  untuk data-data, stack segment dipakai untuk menyediakan ruang untuk 
  stack, yang berfungsi untuk penyimpanan data dan alamat sementara pada 
  saat program utama sedang mengerjakan program percabangan (subroutine, 
  prosedur, dan sebagainya) dan extra segment sebagaimana halnya data 
  segment juga dipergunakan sebagai penempatan data-data.
 
· Register data
  Register ada adalah register yang mengandung informasi yang akan, sedang 
  atau telah diolah oleh komputer. Pada 8088 register ini diwujudkan oleh 
  AX, BX, CX dan BX (sebagai general purpose register), sehubungan dengan 
  fungsinya yang selain menangani tugas-tugas khusus, juga bisa dimanfaat-
  kan untuk membantu proses-proses pengolahand data didalam internal mikro-
  prosessor.
 
· Register pointer

· Register index
  Register jenis pointer dan register index merupakan register-register 
  yang memuat alamat offset dari segment-segment tertentu, yang terdiri 
  dari stack pointer (SP) dan base pointer (BP) yang digunakan sebagai 
  pemegang nilai offset dari stack segment, sedangkan source index (SI) 
  dan destination index (DI) berisi nilai offset dari data segment. 
  Instruction pointer (IP) merupakan pemegang nilai offset dari code 
  segment dan fungsinya mirip dengan program counter (PC) pada prosesor-
  prosesor 8 bit. Hanya bedanya, program counter langsung mengalamati 
  instruksi-instruksi yang ada dimemori dengan nilainya sendiri, IP harus 
  bekerja sama dengan register CS untuk dapat membentuk pengalamatan 20 
  bit dalam format segment:offset.
 
· Register status
  Register ini mempunyai struktur yang berbeda dengan register-register 
  lainnya, yang dibentuk dari sebuah register 16 bit, yang masing-masing 
  bitnya memberikan informasi tertentu tentang keadaan -keadaan yang 
  terjadi pada prosesor, sebagai akibat proses pengolahan data. Informasi 
  yang diwakili oleh sebuah bit pada register status disebut 'flag'. 
  Hanya 9 dari keseluruhan 16 bit yang dipakai oleh register status 
  sebagai tanda kondisi-kondisi prosesor.

GENERAL PURPOSE REGISTER
General Purpose adalah register-register serbaguna, sering dimanfaatkan 
untuk keperlua-keperluan lain yang bukan merupakan fungsi khasnya dan 
untuk menampung secara sementara data-data yang akan diolah, sebelum 
diambil dan diproses oleh ALU (Arithmetic and Logical Unit), walaupun 
demikian ada juga instruksi-instruksi tertentu yang mengharuskan penggunaan
register-register secara spesifik (sesuai fungsi sebenarnya), yang mempunyai
16 bit, dan dapat digunakan penuh 16 bit (1 word = 1 kata) atau 8 bit 
(1 byte = 1 karakter) saja.
 
Jenis-jenis general purpose register dapat dijelaskan sebagai berikut : 
 
1. AX (16 bit),  terdiri dari AH (high byte/8 bit), AL (low byte/8 bit) 
   Secara khusus sebagai Accumulator dan register serbaguna yang berfungsi 
   sebagai masukan, atau menampung hasil proses / perhitungan (add, sub, 
   mul, dan div) dan sering untuk menyimpan data sementara. Banyak instruksi 
   yang dioptimasikan unjuk kerjanya jika beroperasi pada register 
   accumulator. Pengoperasian data yang disimpan di accumulator sedikit 
   lebih cepat dibanding bila data disimpan di register lain. Pada operasi 
   pembagian, jika bilangan pembagi besarnya 16 bit, bilangan yang dibagi 
   ditampung di pasangan register DX:AX. Setelah pembagian hasil ditampung 
   di AX sedang sisa hasil bagi di DX.
   Bila bilangan pembagi besarnya 8 bit, bilangan yang dibagi ditempatkan 
   di AX. Setelah pembagian, hasil bagi ditempatkan di AL sedang sisa hasil
   bagi di AH.
   Pada operasi perkalian, accumulator menampung bilangan yang akan dikali-
   kan. Hasil perkalian ditempatkan di register AX. Pada operasi I/O ke dan
   dari port, accumulator menampung data yang akan ditransfer.
 
2. BX (16 bit), terdiri dari BH (high byte.bit), AL (low byte/8 bit) 
   Secara spesifik sebagai Base juga dan register serbaguna yang merupakan 
   salah satu dari dua register base Addressing mode (penunjuk basis alamat),
   yang dapat mengambil atau menulis langsung dari/ke memory dengan segment 
   DS (Data Segment) serta dapat dipakai sebagai pointer pada suatu basis 
   data misalnya.
 
3. CX (16 bit), terdiri dari CH (high byte.bit), CL (low byte/8 bit)
   Secara spesifik sebagai Counter untuk meletakkan jumlah lompatan pada 
   LOOP yang dilakukan, misal sebagai penunjuk berapa banyak perhitungan  
   dilakukan. Berfungsi untuk menampung cacah perulangan suatu operasi 
   (loop, string, shift, dan rotate). Register ini dapat dipakai sebagai 
   penyimpan data sementara.
 
4. DX (16 bit), terdiri dari DH (high byte.bit), DL (low byte/8 bit)
   Secara spesifik sebagai Data juga sebagai register serbaguna yang 
   digunakan sebagai penampung data tertentu (karakter, pointer, 
   penentuan disk).
   4 tugas pokok register DX :
   · Mmbantu AX dalam proses perkalian dan pembagian, terutama perkalian 
     dan pembagian 16 bit
   · DX merupakan register offset dari DS
   · Menunjukkan nomor port pada operasi port
   · Dipakai sebagai penampung sementara data. Dipakai berpasangan dengan 
     register AX, operasi perkalian dan pembagian 16 bit. Pada operasi 
     I/O ke dan dari port, DX menampung port yang akan diakses.

                              AX / BX / CX / DX
 15  14  13  12  11  10  09  08  07  06  05  04  03  02  01  00
 -----------------------------------  ---------------------------------------
        AH / BH / CH / DH	                     AL / BL / CL / DL	
 
Dari fungsi-fungsi register AX, BX, CX, DX dapat digolongkan sebagai register 'Data' karena kegunaan dan pemanfaatannya yang cenderung ke penampungan data, selain memiliki fungsi spesifik tetapi dapat saling tergantung.
 
SEGMENT REGISTER
1. ES (Extra Segment)
   Tidak mempunyai tugas, tetapi berguna untuk pemograman pada saat 
   melakukan operasi ke segment lain. Nilai yang dikandung oleh register 
   ini merupakan address yang berguna bagi instruksi-instruksi string. 
   Address dari sebuah segmen tambahan juga dapat disimpan di register 
   ES ini. Processor 80386 selain ES, masih memiliki 2 register extra 
   segment, yaitu FS dan GS.
 
2. CS (Code Segment)
   Yang menunjuk ke segment adalah register segment, maka CS merupakan .
   salah satu dari empat register segment. Tugasnya adalah menunjukkan 
   segment program berada. Sedangkan pasangan register ini adalah register 
   IP.
   Menampung nilai yang merupakan address awal dari suatu segmen. 
   Segmen ini berisi instruksi-instruksi dan operand-operand yang dispesi-
   fikasikan oleh program.
 
3. DS (Data Segment)
   Nilai yang ditampung oleh register ini merupakan address dari segmen 
   yang normalnya berisi data-data yang dialokasikan oleh program
 
4. SS (Stack Segment)
   Address yang berada di register ini berguna bagi instruksi-instruksi 
   yang menyimpan sementara data distack. Stack merupakan sebuah area 
   memory yang dicadangkan untuk penyimpanan data secara sementara.
   DS dan SS adalah dua register segment yang masing-masing mempunyai 
   tugas menunjukkan segment dari segment data dan segment stack.
   Pasangan dari DS adalah DX dan pasangan dari SS adalah SP.
 
 
POINTER REGISTER
Pointer register secara khusus berfungsi untuk menyimpan nilai offset 
dari relative address. Register ini terdiri dari :

1. IP (Instruction Pointer)
   Merupakan pasangan CS yang merupakan register terpenting untuk 
   menunjukkan baris perintah program. Saat pertama program dijalankan, 
   register ini akan langsung menunjuk pada awal program dan selalu berisi 
   address dari instruksi yang akan segera dieksekusi. Programmer tidak 
   dapat langsung mengakses atau mengubah nilai register IP. Pengubahan 
   hanya bisa dilangsungkan melalui instruksi-instruksi call, jump, loop 
   dan interrupt yang secara otomatis akan mengubah nilai yang ada pada 
   register IP. Kombinasi CS dan IP menunjukkan alamat Segment : Offset.
 
2. SP (Stack Pointer)
   Merupakan pasangan CS, maka SP merupakan pasangan SS yang digunakan 
   untuk operasi  stack. Berisi data yang merupakan address lokasi saat 
   kini dalam stack. Register ini teknisnya merupakan register multi fungsi 
   yang dapat dipakai sebagai tempat penyimpanan data maupun tempat 
   kalkulasi, meski sehari-hari harus dipakai hanya dalam operasi stack.
 
3. BP (Base Pointer)
   Untuk menulis dan membaca ke atau dari memory secara langsung dengan 
   segment SS (Stack Segment) dan digunakan dalam komunikasi antara bahasa 
   komputer, seperti Pascal dengan Assembler atau bahasa C dengan bahasa 
   Assembler Meski dipakai sebagai tempat penampung data sementara sering 
   dipakai pointer basis kerangka stack.
 
INDEX REGISTER
Register yang dipakai untuk melakukan operasi string dan sering digunakan 
untuk menulis dan membaca ke atau dari memory seperti halnya BX dan BP 
(Base Pointer), yang terdiri dari register :
 
1. SI	(Source Index)
   Dipakai sebagai pointer atau tempat penyimpan data. Registerini sering 
   dipakai sebagai pointer untuk menunjuk sebuah item (indexing) dalam 
   satu kesatuan data. Pada operasi string, SI dipakai untuk menunjuk ke 
   byte atau word dalam sebuah source string.
 
2. DI	(Destination Index)
   Dipakai sebagai pointer atau tempat penyimpanan data. Sering dipakai 
   sebagai pointer untuk menunjuk sebuah item (indexing) dalam satu 
   kesatuan data.
   Pada operasi string, DI dipakai untuk menunjuk ke byte atau word dalam 
   sebuah destination string.
 
   Merupakan suatu komposisi register 16 bit, dimana komposisi bitnya 
   mengecek apakah sesuatu berfungsi atau tidak. Adalah register 16 bit 
   yang bit-bitnya mengontrol berbagai instruksi dan merefleksikan status 
   processor pada saat itu. Untuk real mode aktualnya ada 9 flag, untuk 
   80286 protected mode ada 11 flag, dan untuk 80386 ada 13 flag.
   Contohnya, Interrupt Flag mengecek apakah pada saat operasi Interrupt 
   sedang aktif atau tidak, bila tidak aktif Interrupt tidak akan dijalankan.
   Carry Flag mengecek apakah pada saat operasi terjadi kesalahan atau 
   tidak, Sign Flag menunjukkan apakah suatu bilangan bertanda atau tidak 
   dan sebagainya.
 
 	Komposisi 16 bit (flag bits) 
 
15	14	13	12	11	10	9	8	7	6	5	4	3	2	1	0
				OF	DF	IF	TF	SF	ZF		AF		PF		CF
															
 
           Tabel Register Status (Flag)
 
Nama Flag   Fungsi	          RESET (0)	Arti	       SET (1)	Arti
CF	    Carry Flag	          NC	        No Carry	 CV	Carry
PF	    Parity Flag	          PO	        Parity Odd	 PE	Parity Even
AF	    Auxiliary Carry Flag  NA	        No Aux. Carry	 AC	Aux. Carry
ZF	    Zero Flag	          NZ	        Non Zero	 ZR	Zero
SF	    Sign Flag	          PL	        Plus	         NG	Negative
OF	    Overflow Flag	  NV	        No Overflow	 OV	Overflow
IF	    Interrupt Flag	  DI	        Disable Interupt EI	Enable Interupt
DF	    Direction Flag	  UP	        Upward	         DN	Downward
 
 
· Carry Flag (CF) akan 'set' (menjadi logika '1', tinggi), apabila terjadi 
'bawaan' (carry) atau 'pinjaman' (borrow) dalam suatu hasil proses 
perhitungan (arithmetic) pada Most Significant Bit (MSB, bit paling 
berbobot). Jika hal-hal itu tidak terjadi maka CF akan 'reset' (logika 
'0', rendah). Kalau dalam suatu instruksi, terjadi hasil yang menunjukkan 
bahwa sistem pengecekan paritas adalah 'paritas genap' (even parity), maka 
PF akan 'set'. Bila yang terjadi 'paritas ganjil' (odd parity), PF akan 
'reset'.

· Auxiliary Carry Flag dipakai untuk menunjukkan hasil perhitungan pada 
byte rendah dari suatu bilangan binary 16 bit. Jika terjadi 'bawaan' atau 
'pinjaman' dari nibble bawah (low nibble) ke nibble atas (high nibble), .
AF akan 'set', sebaliknya AF akan di 'reset'. Zero Flag akan 'set' kalau 
dalam suatu proses perhitungan di hasilkan nilai nol. Bila hasilnya bukan 
nol, ZF akan 'reset'.

· SF atau 'Sign Flag' adalah bit yang akan mendeteksi suatu bilangan
sebagai bilangan positif atau bilangan negatif. Hal ini dilakukan dengan 
melihat MSB dari bilangan tersebut. Apabila MSB menunjukkan nilai '1' 
(set), maka bilangan itu adalah negatif, jika '0' (reset), bilangan 
positif.

· OF adalah 'Overflow Flag', berguna untuk menunjukkan bahwa telah terjadi 
'overflow' yaitu jumlah bit sebagai hasil suatu proses perhitungan telah 
melampaui batas yang diperkenankan. Mikroprosesor 8088 mempunyai kemampuan 
untuk bekerja dalam mode 'langkah tunggal' (single-step), yaitu semua 
instruksi dilaksanakan dengan cara satu demi satu. Mode ini dimungkinkan 
dengan jalan membuat TF (Trap Flag) masuk ke logika '1' atau 'set'. Bagi 
seorang programmer, mode ini akan sangat berguna dalam pekerjaan 'debugging'.

· Interrupt Flag (IF) untuk mendeteksi adanya permintaan interupsi dari 
peralatan-peralatan luar. Bila flag ini ada dalam keadaan set, maka 
pendeteksian interupsi oleh 8088 akan aktif, akan tetapi jika IF dalam 
keadaan reset, semua permintaan interupsi yang "maskable" (tidak mutlak) 
akan diacuhkan.

· DF adalah 'Direction Flag', berguna menentukan arah dari operasi-operasi 
'string' (untaian string), yaitu bila DF di 'set', maka operasi string akan 
mengurutkan alamat dari atas ke bawah, akan tetapi, bila flag ini di-
'reset', pengalamatan diurutkan dari alamat rendah ke alamat tinggi.
 
 
STRUKTUR ORGANISASI MEMORI
 Semua bilangan (hexadecimal, decimal, binary), angka yang terletak paling 
kiri adalah 'Most Significant Digit (MSD=angka paling berbobot)', sedangkan
yang paling kanan adalah 'Least Significant Digit (LSD=angka paling kecil 
bobotnya)'.
Khusus binary digit, maka MSD disebut Most Significant Bit (MSB) dan LSD 
disebut 'Least Significant Bit (LSB).
 
ORGANISASI RUANG MEMORI DAN REGISTER
Unsur terkecil memori adalah 'sel memori' (memory-cell), yaitu suatu 
elemen penyimpanan data yang berkapasitas sebesar 1 bit. Dengan 
menggabungkan sejumlah sel memori, akan bisa bentuk suatu ruang penyimpanan 
data dengan berbagai ukuran, misalnya 1 byte, 1 word, 1 Kilobyte, 1 Megabyte,
1 Gigabyte, 1 Terabyte, dsb.
Organisasi memori dapat dibandingkan dengan sistem 'locker' (susunan laci 
yang mempunyai kode nomor setiap lacinya sehingga memudahkan orang mengenal
lacinya masing-masing sebelum mengambil atau memasukkan barang titipannya).
Untuk IBM PC, 8 buah sel memori digandengkan menjadi satu secara horisontal,
dan diberi sebuah kode nomor yang sama. Jadi, untuk mengambil atau menaruh 
data pada satu kode nomor itu, 8 sel memori sekaligus teralamati. Deretan 
8 buah sel memori itu kemudian disusun lagi secara vertikal, dan ditumpuk-
tumpuk sedemikian, sampai mencapai jumlah ribuah susun banyaknya. 
Setiap susun, memiliki kode nomor sendiri-sendiri dan merupakan satu 
lokasi memori (sebagai 'alamat memori' / memory address).
 Alamat memori terdiri dari alamat genap dan alamat ganjil.
 Alamat genap adalah alamat yang secara binary bit terendahnya 
(LSB=Least Significant Bit-nya) '0', sedangkan alamat ganjil mempunyai 
LSB '1'.
 
 
Susunan chip prosesor Intel 8088.
· Catu Daya/VCC (pin 40) dan GND (pin 1 dan 20)
· Bus Data (AD0 - AD7)
· Bus Alamat (AD0 - AD7 dan A8 - A19)
· Bus Kendali (NMI, INTR, CLK, Reset).

Dalam mikroprosesor 8088 secara fisik, bus alamat terdiri dari 20 bit 
(A0-A19), sementara register-register internal terbentuk dari 16 bit data. 
Oleh sebab itu, untuk menyesuaikan perbedaan jumlah bit antara bus alamat 
8088 dengan register internal, sistem pengalamatan memori dilaksanakan 
dengan format segment:offset. Format yang membutuhkan 32 bit ini dibentuk 
dengan jalan menggabungkan data dari 2 buah register sekaligus.
Register pertama adalah satu satu dari 4 register segment, sedangkan 
register lainnya diambil dari salah sebuah register pointer atau register 
indeks.
Kenyataannya, segment-segment yang didefinisikan pada ruang memori itu 
boleh dibuat saling berdampingan, terpisah atau tumpang tindih sekalipun. 
Prosesor memiliki bus alamat sebanyak 20 bit, yang berarti ia mampu 
mengalamati hingga 1.048.575 lokasi memori. Secara heksadesimal, jumlah 
ini dinyatakan sebagai angka 00000 sampai  dengan FFFFF.  Ini adalah 
alamat-alamat fisik (physical addresses) dari mikroprosesor. Untuk 8088 
dan 8086 yang bus alamatnya terdiri dari 20 bit, otomatis penulisan 
alamat fisiknya terdiri dari 5 digit heksadesimal. 
Sistem segmentasi pada IBM PC dilaksanakan agak unik. 1 segment adalah 
bagian dari ruang memori yang besarnya 65536 byte atau 64 Kb. Namun, 
segment-segment itu tidaklah diletakkan secara berdampingan sambung 
menyambung satu sama lain, akan tetapi saling tumpang tindih sehingga 
jarak antara titik awal suatu segment hanya terpaut 16 byte terhadap 
segment lainnya.
Segment pertama, diawali dari alamat 0000:0000 (alamat fisik 00000) dan 
berakhir pada 0000:FFFF (alamat fisik 0FFFF). Akan tetapi, segment kedua 
dimulai pada alamat 0000:0010 (alamat fisik 00010), berjarak hanya 16 
bit dari titik awal alamat segment pertama. Pada kenyataannya, alamat 
awal segment kedua ini identik dengan alamat 0001:0000. Sebagai akibatnya, 
dalam sistem segmentasi semacam ini, akan banyak didapati penulisan 
alamat-alamat segment:offset yang sebenarnya menunjuk pada lokasi yang 
persis sama. Sebagai contoh,alamat 0000:0020 sesungguhnya adalah juga 
alamat 0001:0010, sekaligus sama dengan alamat lokasi 0002:0001.


PETA MEMORI (MEMORY MAP)
Kapasitas memori untuk IBM PC/XT yang berbasis prosesor Intel 8088/8086 
adalah 1.048.576 byte atau lebih mudah disebut 1 (satu) Megabyte. 
Nilai sebesar 1 MB inilah yang menjadi dasar sistem pemetaan memori dalam 
keluarga IBM PC Kompatibel, sehingga dalam produk-produk yang lebih 
mutakhir pun, peta memori tersebut tetap dipertahankan. Hal ini berhubungan
dengan konsistensi yang harus dijaga pada Disk Operating System, yang 
dalam keadaan bagaimanapun, harus tetap bisa dijalankan mulai dari produk 
yang paling awal seperti PC/XT, sampai kepada yang terbaru seperti AT 486 
kompatibel.

                      Tabel Peta Memori Pada IBM PC

Blok Memori	Alokasi Pemakaian
F 0 0 0 0	ROM BIOS, Diagnostic, BASIC
E 0 0 0 0	ROM program
D 0 0 0 0	ROM program
C 0 0 0 0	Perluasan BIOS untuk hardisk XT
B 0 0 0 0	Monokrom Monitor
A 0 0 0 0	Monitor EGA, VGS, dll
9 0 0 0 0	Daerah kerja pemakai s/d 640 KB
8 0 0 0 0	Daerah kerja pemakai s/d 576 KB
7 0 0 0 0	Daerah kerja pemakai s/d 512 KB
6 0 0 0 0	Daerah kerja pemakai s/d 448 KB
5 0 0 0 0	Daerah kerja pemakai s/d 384 KB
4 0 0 0 0	Daerah kerja pemakai s/d 320 KB
3 0 0 0 0	Daerah kerja pemakai s/d 256 KB
2 0 0 0 0	Daerah kerja pemakai s/d 192 KB
1 0 0 0 0	Daerah kerja pemakai s/d 128 KB
0 0 0 0 0	Daerah kerja pemakai s/d   64 KB

Peta memori mengalokasikan ruang memori kepada pemakai sebanyak 640 Kb 
(655360 byte) sebagai ruang kerja (user workspace). Kira-kira 2 Kb 
diantaranya yang menempati alamat-alamat terbawah, dipakai oleh DOS 
untuk keperluan-keperluan dasar operasi atau "housekeeping". 
Dengan demikian pemakai akan mendapatkan tempat (space) sebesar 10 blok 
memori utama (main memory) dimulai dari alama 00000 sampai dengan 9FFFF 
heksadesimal.

· Blok A - F (masing-masing berkapasitas 64 Kb), dialokasikan untuk 
keperluan-keperluan program pengendali peralatan luar seperti monitor 
dan hardisk serta BIOS (Basic Input Output System).
· Blok memori A adalah lokasi-lokasi ruang memori  yang mempunyai alamat 
dari A0000 sampai dengan AFFFF, besarnya 65636 byte. Blok ini dipergunakan 
untuk penempatan informasi-informasi yang akan ditayangkan ke monitor, 
melalui jenis-jenis monitor mutakhir seperti EGA dan VGA. Disebut sebagai 
'perluasan memori tampilan' (display memory expansion).
· Blok memori B, dianggap sebagai blok konvensional bagi pengiriman 
informasi ke layar monitor. Produk-produk pertama IBM PC menggunakan blok 
ini untuk keperluan tersebut melalui monitor monokrom.
· Blok memori C dimanfaatkan sejak keluarnya IBM XT, yaitu peningkatan 
unjuk kerja dari IBM PC orisinil. Pada IBM XT inilah pertama kali digunakan 
hardisk sebagai mass storage. Program kendali untuk hardisk XT yang pada 
waktu itu baru berkapasitas 10 MB, ditempatkan pada Blok C tersebut.
XT sudah terdapat pemakaian hardisk, pada PC orisinil tidak.
XT terdapat 8 buah slot, PC orisinil terdapat 5 buah slot.
· Blok D dan E disediakan untuk penempatan program-program tertentu yang 
bisa dimuat dalam ROM. Blok teratas yang merentang dari alamat F0000 
sampai dengan FFFFF adalah blok yang bisa dianggap memegang peranan 
paling penting, karena disinilah ROM BIOS berkedudukan. ROM BIOS-lah 
yang pertama kali mengaktifkan sistem komputer, memeriksa integritas 
sistem, memanggil DOS dan selama komputer aktif juga selalu siap sedia 
untuk sewaktu-waktu melakukan tugas yang spesifik.

Alokasi-alokasi alamat terbawah letaknya di dalam blok 0, yang menempati 
alamat 0000 sampai dengan 0FFFF heksadesimal.
Saat proses 'start-up'  sistem akan meletakkan pada blok 0 ini suatu daftar 
yang disebut sebagai 'Tabel Vektor Interupsi' (Interrupt Vector Table). 
Tabel memuat sederetan alamat dari rutin perangkat lunak yang berfungsi 
melakukan tugas-tugas tertentu. Rutin ini disebut 'Rutin Pelaksana 
Interupsi' (Interrupt handling Routine), yang dipanggil melalui prosesor 
tertentu, antara lain dengan software.
Pada dasarnya isi dari BIOS software didominasi oleh rutin-rutin interupsi.

sumber : http://kuliah.dinus.ac.id/ika/asmb04.html
24/10/2011

Materi pengalamatan memory

http://elearning.gunadarma.ac.id/docmodul/pengantar_bahasa_rakitan/bab5-organisasi_dan_pengalamatan_memori.pdf

24/10/2011

Pengalamatan memory intel 8088

Pengalamatan memory adalah penempatan alamat pada ruang memory pada suatu sistem komputer. Adapun susunan ruang memory adalah 1 megabyte adalah sebagai berikut:

00000
00001
00002
00003
00004

FFFF9

FFFFA
FFFFB
FFFFC
FFFFD
FFFFE
FFFFF

Pada susunan di atas merupakan penggambaran dari pengamatan ruangan memory dengan modus pengalamatan mutlak dengan kemampuan 20 bit. Mikroprosesor 16bit yang hanya menggunakan 16 saluran address dan 8 saluran data secara multiplexer. Sedangkan saluran address yang lainnya tersedia ada 4 yang khsus untuk menunjukkan segment mempry dimana tiapp segment dapat menjangkau 64 Kb.

Register-register pada mikroprosesor 8088 adalah register 16 bit dimana masing-masing hanya menampung 4 digit hexadesimal dan 0000H sampah FFFFH. Untukmencatat address memory, maka dipergunakan segment register yang berisi 16 bit dihitung dari kiri, dimana isinya disebut dengan segment dan offset register yang berisi 16 bit dihitung dari kanan dimana isinya disebut dengan offset.

Cara pengalamatan memory yang dilakukan dalam sistem komputer biasa disebut dengan relative address.

sumber : http://site2207.blogspot.com/2009/08/modus-pengalamatan-memory-8088.html

24/10/2011

MIKROPROSESOR INTEL 8088: Register dan Arsitektur

SEKILAS INTEL 8088
Intel 8088 adalah prosesor mikro buatan Intel berbasis pada 8086, dengan 16-bit register dan menggunakan 8-bit external data bus. intel 8088 merupakan prosesor yang digunakan pada IBM PC.8088 ditargetkan pada sistem yang ekonomis, diikuti oleh pengunaan desain 8-bit. Jalur bus yang lebar dalam circuit boards masih sangatlah mahal ketika ini di luncurkan. Queue yang ungul dari 8088 adalah 4 bytes, sebagai penggunaan dalam 8086 6 bytes. 8088 termasuk keturunan dari 80188, 80288, 80186, 80286, 80386, 80486, dan 80388, microcontroller seperti yang masih digunakan sekarang. Clone yang populer dengan menggunakan 8088 adalah Model D, dimana tombol pilihan dapat berjalan pada clock 4.77 MHZ atau 7.16 MHZ.Spesifikasi 8088
Mikroprosesor Intel 8088 hampir serupa dengan prosesor Intel 8086, kecuali pada data  eksternal bus. Lebar data eksternal bus 8088 dikurangi menjadi 8 bit, dan instruksi ukuran queue dan prefetching algoritmanya diubah. Intel 8088 menggunakan dua urutan bus siklus untuk menulis atau membaca 16 data bit sebagai ganti satu siklus untuk 8086. Ini menjadikan prosesor  bergerak  lebih lambat, tetapi ada nilai plus pada perangkat keras yang menjadikan CPU 8088 kompatibel dengan peripheral 8080/8085.Pin SSO pada 8088 menggantikan BHE/S7 pada 8086, dan pin IO/M pada 8088, bukan M/IO seperti pada 8086. 8088 membutuhkan catu daya +5,0 V dengan toleransi + 10%. Mikroprosesor 8088 akan kompatibel TTL (Transistor-Transistor Logic) jika kekebalan terhadap noise disesuaikan menjadi 350 mV dari nilai 400 mV yang biasa. Mikroprosesor 8088 dapat menjalankan satu 74XX, lima 74LSXX, satu 74SXX, sepuluh 74ALSXX, dan sepuluh 74HCXX beban satuan. Jika mikroprosesor 8088 direset, mikroprosesor ini mulai mengeksekusi perangkat lunak pada lokasi meori FFFF0H (FFF:0000) dengan pin interrupt request di-disable. Karena bus-bus 8088 dimultipleks dan kebanyakan memori dan peralatan I/O tidak, system harus didemultipleks sebelum pengantarmukaan dengan memori atau I/O. Demultipleks dilakukan oleh latch delapan bit yang pulsa clocknya didapat dari sinyal ALE. Operasi minimum 8088 sama dengan mikroprosesor Intel 8085A, sementara mode maksimum adalah baru dan khusus dirancang untuk operasi koprosesor aritmatika 8087.REGISTER
Sebuah register adalah sebuah tempat penampungan sementara untuk data-data yng akan diolah oleh prosesor, dan dibentuk oleh 16 titik elektronis di dalam chip mikroprosesor itu sendiri. Dengan adanya tempat-tempat penampungan data sementara ini, proses pengolahan akan bisa dilakukan
secara jauh lebih cepat dibandingkan apabila data-data tersebut harus diambil langsung dari lokasi-lokasi memori. Register-register tersebut sebagai register internal dan terdiri dari empat belas register dan keseluruhannya dapat dibagi dalam beberapa jenis, yaitu : Register Segment, Register Data, Register pointer, Register index, Register index, dan General Purpose Register.

Semua general register mikroprosesor  8088 dapat digunakan untuk perhitungan dan operasi logika.

Pada 8088, register data diwujudkan oleh AX, BX, CX dan BX (sebagai general purpose register), sehubungan dengan fungsinya yang selain menangani tugas-tugas khusus, juga bisa dimanfaatkan untuk membantu proses-proses pengolahan data didalam internal mikroprosesor.

Mikroprosesor 8088 mempunyai kemampuan untuk bekerja dalam mode ‘langkah tunggal’ (single-step), yaitu semua instruksi dilaksanakan dengan cara satu demi satu. Mode ini dimungkinkan
dengan jalan membuat TF (Trap Flag) masuk ke logika ’1′ atau ‘set’. Bagi seorang programmer, mode ini akan sangat berguna dalam pekerjaan ‘debugging’.

Organisasi Ruang Memori Dan Register
Unsur terkecil memori adalah ‘sel memori’ (memory-cell), yaitu suatu elemen penyimpanan data yang berkapasitas sebesar 1 bit. Dengan menggabungkan sejumlah sel memori, akan bisa membentuk suatu ruang penyimpanan data dengan berbagai ukuran, misalnya 1 byte, 1 word, 1 Kilobyte, 1 Megabyte, 1 Gigabyte, 1 Terabyte, dsb.

Organisasi memori dapat dibandingkan dengan sistem ‘locker’ (susunan laci yang mempunyai kode nomor setiap lacinya sehingga memudahkan orang mengenal lacinya masing-masing sebelum mengambil atau memasukkan barang titipannya).

Susunan chip prosesor Intel 8088.
• Catu Daya/VCC (pin 40) dan GND (pin 1 dan 20)
• Bus Data (AD0 – AD7)
• Bus Alamat (AD0 – AD7 dan A8 – A19)
• Bus Kendali (NMI, INTR, CLK, Reset).

Dalam mikroprosesor 8088 secara fisik, bus alamat terdiri dari 20 bit (A0-A19), sementara register-register internal terbentuk dari 16 bit data. Oleh sebab itu, untuk menyesuaikan perbedaan jumlah bit antara bus alamat 8088 dengan register internal, sistem pengalamatan memori dilaksanakan
dengan format segment:offset. Format yang membutuhkan 32 bit ini dibentuk dengan jalan menggabungkan data dari 2 buah register sekaligus. Register pertama adalah satu satu dari 4 register segment, sedangkan register lainnya diambil dari salah sebuah register pointer atau register indeks.

Kenyataannya, segment-segment yang didefinisikan pada ruang memori itu boleh dibuat saling berdampingan, terpisah atau tumpang tindih sekalipun. Prosesor memiliki bus alamat sebanyak 20 bit, yang berarti ia mampu mengalamati hingga 1.048.575 lokasi memori. Secara heksadesimal, jumlah ini dinyatakan sebagai angka 00000 sampai  dengan FFFFF.  Ini adalah alamat-alamat fisik (physical addresses) dari mikroprosesor. Untuk 8088 dan 8086 yang bus alamatnya terdiri dari 20 bit, otomatis penulisan alamat fisiknya terdiri dari 5 digit heksadesimal. Sistem segmentasi pada IBM PC dilaksanakan agak unik. 1 segment adalah bagian dari ruang memori yang besarnya 65536 byte atau 64 Kb. Namun, segment-segment itu tidaklah diletakkan secara berdampingan sambung menyambung satu sama lain, akan tetapi saling tumpang tindih sehingga jarak antara titik awal suatu segment hanya terpaut 16 byte terhadap segment lainnya.

Peta Memori (Memory Map)
Kapasitas memori untuk IBM PC/XT yang berbasis prosesor Intel 8088/8086 adalah 1.048.576 byte atau lebih mudah disebut 1 (satu) Megabyte. Nilai sebesar 1 MB inilah yang menjadi dasar sistem pemetaan memori dalam keluarga IBM PC Kompatibel, sehingga dalam produk-produk yang lebih mutakhir pun, peta memori tersebut tetap dipertahankan. Hal ini berhubungan dengan konsistensi yang harus dijaga pada Disk Operating System, yang dalam keadaan bagaimanapun, harus tetap bisa dijalankan mulai dari produk yang paling awal seperti PC/XT, sampai kepada yang terbaru seperti AT 486 kompatibel.

ARSITEKTUR
Arsitektur dari 8088 tetap sama degan 8086 yakni: 16-bit registers, 16-bit internal data bus dan 20-bit address bus, yang bisa menjadikan prosesor mencapai memori 1 MB. 8088 memiliki pembagian memori yang sama dengan 8086: prosesor bisa mencapai 64 KB dari memori secara langsung, dan untuk mencapai lebih dari 64 KB, salah satu dari bagian khusus register harus di update.
Program, data dan stack memori menduduki ruang memori yang sama. Total kapasitas memory yang bisa dicapai adalah 1MB KB. Sebagaimana kebanyakan instruksi prosesor yang menggunakan 16-bit pointers, prosesor dapat mengolah secara efektif jika hanya memorinya 64 KB. Untuk mengakses memori diluar 64 KB,  CPU menggunakan bagian  register khusus untuk menspesifikasi di mana kode, stack dan 64 KB segmen data diposisikan di dalam memori 1 MB.

16-bit pointers dan data disimpan sebagai:
address: low-order byte
address+1: high-order byte

32-bit addresses disimpan di “segment:offset” dengan format:
address: low-order byte of segment
address+1: high-order byte of segment
address+2: low-order byte of offset
address+3: high-order byte of offset

Physical memory address ditunjukkan oleh pasangan segment:offset dihitung dengan:

address = (<segment> * 16) + <offset>

Program Memori- program dapat ditempatkan di manapun di dalam memori. perintah jump and call dapat digunakan untuk menyingkat lompatan di dalam segmen kode 64 KB, seperti halnya untuk lompatan jauh di manapun di dalam memori 1 MB. Seluruh perintah lompatan yang bersyarat dapat digunakan untuk melompat sekitar + 127 – – 127 bytes dari instruksi yang ada.

Memori data – prosesor dapat mengakses data di tiap orang lebih dari 4 segmen yang tersedia, yang membatasi ukuran dari memori yang dapat diakses sampai 256 KB ( jika seluruh empat segmen menunjuk pada 64 KB blok berbeda). Mengakses data dari Data, Code, segmen Extra atau Stack biasanya dapat dilaksanakan dengan awalan perintah DS:, CS:, SS: atau ES: ( beberapa register dan instruksi dengan tak hadir boleh gunakan segmen SS atau ES sebagai ganti segmen DS).

Set Instruksi
Set instruksi 8088  terdiri dari perintah-perintah berikut:
* Instruksi perpindahan data.
* Aritmatika – penjumlahan, pengurangan, penaikan, penurunan, mengkonversi byte/word dan pembandingan.
* Logika – DAN, OR, eksklusif OR, shift/rotate dan test.
* Manipulasi string – load, store, move, compare dan scan untuk byte/word.
* Kontrol transfer – conditional, unconditional, panggilan subroutine dan kembali dari subroutine.
* Perintah Input/Output.
* Lain-lain – setting/clearing flag bits, stack operations, software interrupts, dan lain-lain.

KESIMPULAN
8088 adalah desain hybrid 8/16-bit: 16-bit internal, dengan 8-bit I/O. ini berarti bahwa Sistem designer dapapt menggunakan chip pendukung 8-bit yang murah dan tersedia. Sehingga menurunkan harga sebuah sistem komputer. Kemampuannya tidak begitu hebat, mesin-mesin Z-80 dan 8085 kadang-kadang lebih unggul, tetapi 8088 terjual cukup banyak. Apalagi setelah divisi IBM memilihnya sebagai prosesor utama IBM PC. 8088 menjadi sejarah dan terjual jutaan unit, rekor kedua setelah Z-80.

Sayangnya Intel membuat beberapa keputusan yang buruk dalam desain. Pertama, 8088 menggunakan arsitektur bersegmen. Kedua untuk alasan yang tidak efisien, Intel memutuskan untuk membatasi akses base-memory dalam suatu cara menjadi hanya 640K. Meskipun pada masa itu keputusan ini adalah untuk jangka pendek semua user prosesor x86 hingga saat ini merasa kesulitan dengan pembatasan 640K tersebut. Ini dapat ditemukan jika user menerima pesan kesalahan ‘out of memory’. DOS, Windows, dan bahkan Windows 95 memiliki permasalahan base-memory yang disebabkan oleh batas 640K. Hanya sistem operasi murni 32-bit seperti OS/2 dan Windows NT yang tidak memiliki masalah ini. Saat itu user harus menunggu 7 tahun sebelum kemunculan 386.
[Mukhlish muchad Fuadi: 2nd Semester 2006]

sumber :
http://muchad.com/mikroprosesor-intel-8088-register-dan-arsitektur.html

07/09/2011

Daftar Mata Kuliah semester satu yang harus saya tempuh di UPY

  1. Elektronika Digital
  2. Ke-PGRI-an
  3. Logika Informatika
  4. Bahasa Rakitan dan C++
  5. Pendidikan Kewarganegaraan
  6. Grafika Komputer
  7. Rekayasa Perangkat Lunak
  8. E-commerce