Dokumen ini membahas tentang representasi informasi dalam komputer, termasuk representasi bilangan, karakter, string, instruksi, dan operasi aritmatika dan logika yang dilakukan oleh Arithmetic Logic Unit (ALU).
2. Arithmetic Logic Unit (ALU)
Representasi informasi dalam bentuk bit
Biner/Heksadesimal
Representasi Byte
Bilangan
Karakter dan String
Instruksi
Manipulasi level bit
Aljabar Boolean
Ekspresi dalam bahasa C
AOK2022
3. Diagram interkoneksi ALU dalam komputer
• ALU merupakan bagian komputer yang melakukan operasi
aritmetika dan logia dalam operasi data
• Control unit, Register, memory, I/O melakukan proses arimetika di
ALU. Semua data akan dikirimkan ke ALU untuk diprosesdan
hasilnya yang akan dikirimkan oleh ALU ke semua bagian yang
mengirim data.
4. Fungsi aritmatika dalam komputer direpresentasikan (format
biner)
Operasi aritmatika dasar yang digunakan adalah penjumlahan,
pengurangan, perkalian, dan pembagian.
Integer dan Floating Points merupakan bentuk bilangan dalam
komputer yang digunakan dalam operasi aritmetika dan logika
Sebagian besar prosesor menerapkan standar IEEE 754 untuk
representasi floating-point dan aritmatika floating-point. IEEE
754 mendefinisikan kedua 32-bit dan format 64-bit.
5. ALU dan semua komponen elektronik di komputer didasarkan
pada penggunaan perangkat logika digital sederhana yang dapat
menyimpan digit biner dan melakukan operasi logika Boolean
sederhana.
Data diberikan ke ALU dalam register, dan hasil operasi disimpan
dalam register-register.
Register-register ini adalah lokasi penyimpanan sementara dalam
prosesor yang dihubungkan oleh jalur sinyal ke ALU.
ALU juga dapat mengatur flag sebagai hasil dari operasi. Misalnya,
flag overflow di set=1 jika hasil perhitungan yang melebihi
panjang dari register.
Nilai-nilai flag juga disimpan dalam register dalam unit kontrol
processor.
Control unit memberikan sinyal yang mengontrol pengoperasian
ALU dan pergerakan data ke dalam dan keluar dari ALU.
6. Representasi bilangan berbasis 10
Berasal dari jari manusia, dikenal sebagai ‘digit’
Representasi yang biasa digunakan dalam transaksi finansial
Digunakan juga dalam notasi ilmiah
1.2345 x 104
Sulit diimplementasikan secara elektronik
Sulit untuk disimpan
ENIAC (komputer elektronik pertama) menggunakan 10 tabung hampa
untuk mengimplementasikan satu digit
Sulit untuk dikirimkan
Perlu kepresisian tinggi untuk mengkodekan 10 level sinyal pada satu
kawat
Sulit untuk mengimplementasikan fungsi logika digital
Penjumlahan, perkalian, dll
AOK2022
7. Representasi bilangan berbasis 2
1234510 direpresentasikan 110000001110012
1.2010 direpresentasikan 1.0011001100110011[0011]…2
1.2345 X 104 direpresentasikan 1. 10000001110012 X 213
Implementasi elektronik
Elemen ‘bistable’ dapatdisimpan dengan mudah
Andai bila dikirimkan melalui kawat yang tidak akurat dan ber-derau
Fungsi aritmatika dapat diimplemetasikan secara langsung
AOK2022
8. 1 byte = 8 bit
Merepresentasikan bilangan :
Biner dari 000000002 hingga 111111112
Desimal dari 010 hingga 25510
Heksadesimal dari 0016 hingga FF16
Representasi bilangan berbasis 16
Menggunakan karakter ‘0’ hingga ‘9’ dan ‘A’ hingga ‘F’
Pada bahasa pemrograman C, FA1D3716
Ditulis 0xFA1D37 atau 0xfa1d37
AOK2022
9. Setiap komputer memiliki “ukuran word” tertentu
Indikator ukuran data integer dan data pointer (alamat)
Contoh komputer saat ini, 1 word = 32 bit (4 byte)
Membatasi alokasi alamat hingga 4GB (232 byte)
Dari alamat 0000.…0000 (0) hingga 1111.…1111 (4,294,967,295)
Nilai ini menjadi terlalu kecil biladigunakan pada aplikasi scientific dan
database yang perlu menggunakan memori secara intensif
Sistem high-end menggunakan 64 bit (8 byte)
Dapat mengalamati ≈ 1.8 X 1019 byte
Komputer dan compiler mendukung berbagai format data integer
dan floating point memiliki kode dan panjang data berbeda
AOK2022
10. Alamat merupakan lokasi byte
dalam memori
Alamat menunjukkan lokasi byte
pertama suatu word
Alamat word berikutnya
bertambah 4 (32 bit) atau 8 (64
bit)
AOK2022
12. Bagaimana setiap byte suatu word disusun dalam memori ?
Aturan :
Mesin Sun dan Mac adalah mesin “Big Endian”
Byte LSB (Least Significant Byte) terletak di alamat paling TINGGI
Mesin Compaq Alpha dan PC adalah “Little Endian”
Byte LSB (Least Significant Byte) terletak di alamat paling RENDAH
AOK2022
13. Big Endian: byte LSB terletak di alamat paling tinggi
Little Endian: byte LSB terletak di alamat paling rendah
Contoh
Variabelx memiliki representasi 4 byte : 0x01234567
dimana MSB = 0x01 dan LSB = 0x67
Alamat awal yang diberikan oleh &x adalah 0x100
AOK2022
14. Disassembly
Mengartikan kode mesin
Dihasilkan oleh suatu program yang dapat membaca kode mesin
Contoh potongan program :
Mengartikan bilangan
nilai : 0x12ab
menjadi 4 bytes : 0x000012ab
dipisah per byte : 00 00 12 ab
dibalik : ab 12 00 00
AOK2022
15. EAX,EBX,ECX,EDX
"general purpose", more or less interchangeable
EBP
used to access data on stack
when this register is used to specify an address, SS is used implicitly
ESI,EDI
index registers, relative to DS,ES respectively
EIP
program counter (instruction pointer), relative to CS
ESP
stack pointer, relative to SS
EFLAGS - condition codes, a.k.a. flags
AOK2022
16. Kode untuk menampilkan representasi byte data
Casting pointer menjadi unsigned char* menghasilkan array byte
AOK2022
casting = mengganti tipe data menggunakan instruksi typedef
printf directives:
%p : print pointer
%x : print
hexadecimal
19. AOK2022
Mesin dan compiler berbeda akan memberikan lokasi obyek berbeda
• int B = -12345;
• int *P = &B;
Alpha
P
20. Float F = 12345.0;
AOK2022
Tidak sama dengan representasi integer, tetapi konsisten di semua mesin
Memperlihatkan relasi dengan integer, walau tidak terlihat jelas
21. Strings dalam bahasa C
Direpresentasikan dalam array karakter
Setiap karakter dikodekan dalam format ASCII
Kode karakter standar 7-bit
Karakter “0” memiliki kode 0x30
Digit i memiliki kode 0x30+i
String harus diakhiri dengan null
Karakter akhir = 0
Kompatibilitas
Setiap sistem yang menggunakan ASCII untuk menkodekan karakter
akan memberikan hasil yang sama
Data teks umumnya bersifat platform independen Kecuali jika ada
aturan lain tentang karakter akhir suatu baris
AOK2022
char S[6] = "12345";
22. Program dikodekan menjadi urutan instruksi
Masing-masing berupa operasi sederhana
Operasi aritmatika
Membaca atau menulis memori
Percabangan
Instruksi dikodekan sebagai byte
Instruksi pada Alpha, Sun, Mac menggunakan 4 byte
Reduced Instruction Set Computer (RISC)
PC menggunakan instruksi dengan panjang yang variabel
Complex Instruction Set Computer (CISC)
Setiap mesin memiliki jenis instruksi dan pengkodean berbeda
Umumnya kode tidak binary compatible
Program juga merupakan urutan byte
AOK2022
23. Pada contoh ini, Alpha & Sun
menggunakan dua instruksi dengan
panjang 4 byte
Pada kasus lain memakai jumlah
instruksi berbeda
PC menggunakan 7 instruksi dengan
panjang 1, 2, dan 3 byte
Sama dengan NT dan Linux
NT / Linux tidak ‘fully binary compatible’
AOK2022
Mesin yang berbeda menggunakan instruksi dan
kode berbeda
int sum(int x, int y)
{
return x+y;
}