Dokumen tersebut membahas tentang sistem bilangan biner, oktal, dan heksadesimal yang digunakan oleh komputer, serta cara mengkonversikan antara sistem bilangan tersebut. Tujuannya adalah untuk memahami cara berhitung komputer yang menggunakan sistem bilangan biner.
2. Tujuan
• Memahami cara berhitung “Computer Way” yaitu memanfaatkan sistem
bilangan biner (dua-an). Komputer Digital dibangun dari rangkaian2 digital
yang hanya memuat dua kondisi (biner) : LOW dan HIGH (dalam arti
besaran fisik tegangan).
• Berhitung dengan bilangan oktal. Sistem bilangan oktal tidak dipakai untuk
penghitungan2, melainkan sebagai sarana untuk me-mendek-kan
bilangan2 dua-an. Jadi sistem oktal dipakai untuk me-nyandi bilangan2
dua-an. Ini dipelajari semata2 untuk memahami Teknik Digit saja.
• Berhitung dengan bilangan heksadesimal (disingkat: hex). Seperti halnya
bilangan oktal, bilangan heksadesimal dipakai untuk me-nyandi bilangan2
dua-an agar ukurannya lebih kecil / pendek. Ini memudahkan kita dalam
pemrograman.
• Memahami arti dari bit, nibble, byte dan word.
• Memanfaatkan program DEBUG.COM untuk mempraktekkan sistem
bilangan heksadesimal sekaligus membiasakan dengan arsitektur prosesor
16-bit berbasis 8086*).
*) INTEL® membuat prosesor 4-bit 4004/4040, prosesor 8-bit 8008/8080/8085, prosesor 16-bit 8086/80186/80286, prosesor 32-
bit 80386/80486/Pentium/Pentium Pro/Pentium II/III/IV, prosesor 32-bit dan 64-bit Atom/Celeron/Xeon/Pentium Dual Core,
prosesor 64-bit murni Core 2 Series/Core i3/Core i5/Core i7
3. Perlu Diketahui Lebih Dulu !
• Walaupun masih diperdebatkan asal mula basis 10
adalah dikarenakan jumlah jari manusia ada 10, yang jelas
tidak ada debat lagi alasan bilangan biner dalam komputer.
• Manusia berhitung menggunakan aritmetika
basis 10 (dasan atau desimal)
• Ada 10 simbol berbeda: 0, 1, 2, .., 9
• Komputer Digital menggunakan aritmetika
basis 2 (dua-an atau biner) sebagai representasi
dua keadaan (two state) biasanya berupa
besaran (kuantitas) fisik tegangan :
”0” untuk tegangan < 0,5V (LOW)
“1” untuk tegangan 3V (HIGH)
§ Hanya dua simbol 0 dan 1
§ Dua binary digits ini seringkali disebut bits.
0, 1, 2,
…… 9
4. Berhitung “Computer Way”
• Jika Anda sudah terbiasa dengan sistem bilangan desimal (dasan atau
puluhan), maka untuk mencacah ke angka 11, Anda akan mulai dari
satu dan terus naik: 1, 2, 3, 4, 5, 6, 7, 8, 9 10, 11.
Dari satu digit menjadi dua digit agar cukup mewakili angka 11.
• Komputer tidak demikian, akan tetapi :
0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011
Ini adalah bilangan biner yang dibangun hanya dengan dua digit (“1”
dan “0”) dan lebarnya 4 bit (nibble) sehingga mampu mewakili 0 ... 15
dalam desimal.
Komputer tidak secerdas manusia mampu memulai dari satu digit,
dua digit dst. dikarenakan piranti2nya mesti dirancang dengan lebar
bit yang tetap (disini menggunakan 4 bit).
• 0101(2) = 5(10)
basis
5. SOAL 1:
• Bi artinya …………………… .
• Sistem dua-an (biner) adalah sistem yang menggunakan ………..
bilangan.
• Dalam sistem biner dipakailah bilangan2 ….. dan ….. .
• Dalam sistem bilangan biner setiap digit dinamakan ………………………..
atau disingkat …….. .
• Agregasi digit dalam sistem bilangan biner sebanyak 4 buah
dinamakan ……………. .
6. Sistem Bilangan Biner
• Sistem bilangan biner merupakan sistem bilangan berbasis 2 dengan
dua digit: 0 dan 1.
• Misal: 11010.11 terdiri dari rentetan 1-an dan 0-an dan sebuah titik
biner.
• Dalam sistem digital kita sebut 210 sebagai K (kilo), 220 sebagai M
(mega), 230 sebagai G (giga) dan 240 sebagai T (tera)
4K = 22 x 210 = 212 = 4096
16M = 24 x 220 = 224 = 16.777.216
• Konvensi ini tidak dapat diterapkan pada
semua kasus; penggunaan yang lebih
konvensional dari K, M, G dan T adalah
masing2 sebagai 103, 106, 109 dan 1012.
Jadi mesti hati2 menerjemahkan dan
menggunakan notasi ini.
4K = 22
* 210
= 212
= 4096 and 16M = 24
* 220
= 224
= 16,777,2
(11010)2 = 1 * 24
+ 1 * 23
+ 0 * 22
+ 1 * 21
+ 0 * 20
= (26)10
As noted earlier, the digits in a binary number are called bits. When a bit is eq
to 0, it does not contribute to the sum during the conversion. Therefore, the con
sion to decimal can be obtained by adding the numbers with powers of two co
sponding to the bits that are equal to 1. For example,
(110101.11)2 = 32 + 16 + 4 + 1 + 0.5 + 0.25 = (53.75)10
The first 24 numbers obtained from 2 to the power of n are listed in Table
In digital systems, we refer to 210
as K (kilo), 220
as M (mega), 230
as G (giga), and
as T (tera).Thus,
TABLE 1-2
Powers of Two
n 2n
n 2n
n 2n
0 1 8 256 16 65,536
1 2 9 512 17 131,072
2 4 10 1,024 18 262,144
3 8 11 2,048 19 524,288
4 16 12 4,096 20 1,048,576
5 32 13 8,192 21 2,097,152
6 64 14 16,384 22 4,194,304
7 128 15 32,768 23 8,388,608
This convention does not necessarily apply in all cases,with more conventional us
of K, M, G, and T as 103
, 106
, 109
and 1012
, respectively, sometimes applied as wel
caution is necessary in interpreting and using this notation.
The conversion of a decimal number to binary can be easily achieved b
method that successively subtracts powers of two from the decimal number
M01_MANO0637_05_SE_C01.indd 17
7. Satuan
Kelipatan Byte
Desimal Biner
Nilai Metrik Nilai IEC1) JEDEC2)
1000 kB kilobyte 1024 KiB kibibyte KB kilobyte
10002 MB megabyte 10242 MiB mebibyte MB megabyte
10003 GB gigabyte 10243 GiB gibibyte GB gigabyte
10004 TB terabyte 10244 TiB tebibyte
10005 PB petabyte 10245 PiB pebibyte
10006 EB exabyte 10242 EiB exbibyte
10007 ZB zettabyte 10242 ZiB zebibyte
10008 YB yottabyte 10242 YiB yobibyte
1) ISO/IEC 80000 adalah standar internasional yang dimaklumatkan bersama International Organization for Standardization (ISO)
dan International Electrotechnical Comission (IEC) pada publikasi Part 1 bulan November 2009..
2) Joint Electron Device Engineering Council (JEDEC) mengeluarkan JEDEC Standard 100B.01 dengan judul Terms, Definitions, and
Letter Symbols for Microcomputers, Microprocessors, and Memory Integrated Circuits.
8. Konversi dari Desimal ke Biner
• Bagi bilangan desimal dengan 2 berulang-ulang
• Simpan sisanya (0 atau 1)
• Lanjutkan proses sampai hasil bagi akhir menjadi nol.
• Tulis sisanya dalam urutan terbalik sebagai bilangan biner hasil konversi
Contoh: Ubah 2510 menjadi biner
Hasil Bagi Sisa
25/2 = 12 1
12/2 = 6 0
6/2 = 3 0
3/2 = 1 1
1/2 = 0 1
Jadi 2510 = 110012
LSB (least significant bit)
MSB (most significant bit)
9. Cara lain
• Dengan mengetahui bobot yang terasosiasi dengan posisi digit biner
akan membantu mengkonversi bilangan desimal ke digit biner secara
langsung tanpa harus melewati proses pembagian berulang2.
Example 0-3: Use the concept of weight to convert 3910 to binary
Solution:
Weight: 32 16 8 4 2 1
Digits: 1 0 0 1 1 1
Sum: 32 + 0 + 0 + 4 + 2 + 1 = 3910
Therefore, 3910 = 1001112
11. Konversi dari Biner ke Desimal
• Kenali bobot setiap bit dalam bilangan biner
• Tambahkan semuanya menjadi ekivalen desimal-nya.
• Gunakan konsep bobot untuk konversi langsung dari bilangan desimal
ke biner
Contoh: Ubah 110012 menjadi desimal
Digit: 1 1 0 0 1 jika diteruskan sbg pecahan
Bobot: 24 23 22 21 20 à 2-1 2-2 2-3 ….
Jumlah: 16 + 8 + 0 + 0 + 1 = 2510
Contoh: Ubah 3910 menjadi biner
32 + 0 + 0 + 4 + 2 + 1 = 39
Jadi, 3910 = 1001112
12. SOAL 3:
1. Bilangan 1001(2) adalah sama dengan …….(10).
Jawab: 1.24 + 0.22 + 0.21 + 1.20 = 17(10)
2. 100(2) = ……(10)
3. 1001(2) = …..(10)
4. 11011(2) = …..(10)
5. 1111101(2) = …..(10)
6. 11100(2) = …..(10)
13. Sistem Bilangan Oktal
• Sistem oktal diterapkan dalam Teknik Digit. Sistem ini
tidak dipakai untuk penghitungan2, melainkan sebagai
sarana untuk me-mendek-kan bilangan2 dua-an. Jadi
• sistem oktal dipakai untuk me-nyandi bilangan2 dua-an.
• Karena 23 = 8 dan 24 = 16, maka setiap digit oktal berseuaian dengan
tiga bit dan setiap digit heksadesimal dengan empat bit.
• Representasi bilangan biner ke dalam oktal maupun heksadesimal
menjadi lebih mudah buat manusia karena bisa lebih pendek tiga
atau empat kali-nya.
• Bilangan oktal memiliki 8 symbol: 0, 1, …, 7
14. Konversi Biner dan Oktal
• Mengubah bilangan biner ke oktal:
1. Bilangan biner di-kelompok2-an menjadi kelompok 3-bit, dimulai dari kiri ke
kanan dan sebaliknya untuk pecahan.
2. Ubah masing2 kelompok menjadi oktal
Contoh: 110001010(2) = 110 001 010(2) = 612(8)
11,01(2) = 011, 010(2) = 3,2(8)
1011,1011(2) = 001 011, 101 100(2) = 13,54(8)
• Mengubah bilangan oktal ke biner juga mudah, cukup ubah setiap
digit oktal menjadi kelompok 3-bit
• Contoh: 347(8) = 011 100 111(2)
75,63(8) = 111 101, 110 011(2)
16. Konversi Desimal ke Oktal
• Bagi bilangan desimal dengan 8 berulang-ulang
• Simpan sisanya (0 ... 7)
• Lanjutkan proses sampai hasil bagi akhir menjadi nol.
• Tulis sisanya dalam urutan terbalik sebagai bilangan oktal hasil konversi
Contoh: Ubah 1325(10) menjadi oktal
Hasil Bagi Sisa
1325/8 = 165 5
165/8 = 20 5
20/8 = 2 4
2/8 = 0 2
Jadi 132510 = 24558
LSD (least significant digit)
MSD (most significant digit)
17. Sistem Bilangan Heksadesimal
• Sistem bilangan heksadesimal merupakan sistem
bilangan berbasis 16 dengan symbol 0 … 9, A … F.
• Ekivalennya dengan bilangan desimal adalah 0 .. 15 (total ada 16
simbol)
• Dipakai untuk memudahkan kita (manusia) dalam representasi
bilangan biner (yang memang digunakan oleh dalaman komputer
digital) terutama untuk pemrograman.
Kita gunakan heksadesimal dalam berinteraksi dengan program
DEBUG.COM.
• Contohnya lebih mudah menulis 896H dibanding 100010010110(2)
tanda bilangan
ini heksadesimal
*) tanda ini tidak perlu ditulis saat
berinteraksi dengan program DEBUG.COM
18. Konversi Biner dan Heksadesimal
• Mengubah bilangan biner ke heksadesimal:
1. Bilangan biner di-kelompok2-an menjadi kelompok 4-bit, dimulai dari kiri ke
kanan dan sebaliknya untuk pecahan.
2. Ubah masing2 kelompok menjadi heksadesimal
Contoh: 110001010(2) = 0001 1000 1010(2) = 18A(16) atau 18Ah
11,01(2) = 0011, 0100(2) = 3,2(16) atau 3,2h
1011,1011(2) = D,D(16) atau D,Dh
• Mengubah bilangan heksadesimal ke biner juga mudah, cukup ubah
setiap digit heksadesimal menjadi kelompok 4-bit
• Contoh: 347(16) = 0011 0100 0111(2)
75,63(16) = 0111 0101, 0110 0011(2)
29Bh = 0010 1001 1011(2)
20. Cara lain
• Konversi dari heksadesimal ke desimal bisa dilakukan dengan cara
mengubah heksa ke biner lebih dulu, baru ke desimal
Example 0-7:
(a)6B216 = 0110 1011 00102
1024 512 256 128 64 32 16 8
4 2 1
1 1 0 1 0 1 1 0
0 1 0
1024 + 512 + 128 + 32 + 16 + 2 = 171410
(b)9F2D16 = 1001 1111 0010 11012
32768 16384 8192 4096 2048 1024 512 256
128 64 32 16 8 4 2 1
1 0 0 1 1 1
1 1 0 0 1 0 1 1
0 1
32768 + 4096 + 2048 + 1024 + 512 + 256 + 32 + 8 + 4 + 1 = 40,74910
21. Konversi Desimal ke Heksadesimal
• Bagi bilangan desimal dengan 16 berulang-ulang
• Simpan sisanya (0 ... 9, A .. F)
• Lanjutkan proses sampai hasil bagi akhir menjadi nol.
• Tulis sisanya dalam urutan terbalik sebagai bilangan heksadesimal hasil
konversi
Contoh: Ubah 1325(10) menjadi heksadesimal
Hasil Bagi Sisa
1325/16 = 82 D
82/16 = 5 2
2/16 = 0 2
Jadi 132510 = 22Dh
LSD (least significant digit)
MSD (most significant digit)
22. Cara lain
• Mengkonversi dari Desimal ke Heksadesimal dapat dilakukan dengan
cara Mengkonversi ke biner lebih dulu, lalu konversi ke heksa
Example 0-6:
(a)Convert 4510 to hex
32 16 8 4 2 1
First, convert to binary
1 0 1 1 0 1 32 +
8 + 4 + 1 = 45
4510 = 0010 11012 = 2D hex
(b)Convert 62910 to hex
512 256 128 64 32 16 8
4 2 1
1 0 0 1 1 1 0
1 0 1
62910 = (512 + 64 + 32 + 16 + 4 + 1) = 0010 0111 01012 = 275 hex
(c)Convert 171410 to hex
1024 512 256 128 64 32 16
8 4 2 1
1 1 0 1 0 1 1
0 0 1 0
171410 = (1024 + 512 + 128 + 32 + 16 + 2) = 0110 1011 00102 = 6B2 hex
24. Mencacah dalam basis 10, 2 dan 16
• Perhatikan bahwa pada setiap basis jika digit tertinggi
ditambah satu, maka digit tersebut menjadi nol dan 1 dibawa
(carried) ke posisi digit tertinggi berikutnya.
• Misal,
pada desimal, 9+1=0 dengan carry ke posisi tertinggi
berikutnya
pada biner, 1+1=0 dengan sebuah carry
pada heksa, F+1=0 dengan carry
+
carry (+1)
carry travels to the left (higher significant digit)
Decimal Binary Hex
0 00000 0
1 00001 1
2 00010 2
3 00011 3
4 00100 4
5 00101 5
6 00110 6
7 00111 7
8 01000 8
9 01001 9
10 01010 A
11 01011 B
12 01100 C
13 01101 D
14 01110 E
15 01111 F
16 10000 10
17 10001 11
18 10010 12
19 10011 13
20 10100 14
21 10101 15
22 10110 16
23 10111 17
24 11000 18
25 11001 19
26 11010 1A
27 11011 1B
28 11100 1C
29 11101 1D
30 11110 1E
31 11111 1F
counting operation
with carry
25. BILANGAN BERTANDA (SIGNED NUMBERS)
• Sistem digital juga mesti mampu menangani baik bilangan positif maupun negatif.
Bilangan bertanda terdiri dari informasi tanda dan angka. Tanda berupa positif
atau negatif, angka adalah nilai dari bilangan.
• Ada tiga bentuk bilangan bertanda dalam biner:
1. Tanda – Angka (Sign-Magnitude)
2. 1’s complement
3. 2’s complement à paling banyak dipakai
• Bit Tanda (Sign Bit): bit paling kiri (MSB)
• MSB = ”0” menunjukkan bilangan positif
• MSB = “1” menunjukkan bilangan negatif
• Bentuk Tanda-Angka
+25 -25
Express positive and negative numbers in sign-magnitude
Express positive and negative numbers in 1’s complement
Express positive and negative numbers in 2’s complement
Determine the decimal value of signed binary numbers
Express a binary number in floating-point format
he Sign Bit
e left-most bit in a signed binary number is the sign bit, which tells you whether the
mber is positive or negative.
A 0 sign bit indicates a positive number, and a 1 sign bit indicates a negative number.
gn-Magnitude Form
hen a signed binary number is represented in sign-magnitude, the left-most bit is the sign
and the remaining bits are the magnitude bits. The magnitude bits are in true (uncomple-
nted) binary for both positive and negative numbers. For example, the decimal number
5 is expressed as an 8-bit signed binary number using the sign-magnitude form as
00011001
Sign bit Magnitude bits
e decimal number 225 is expressed as
10011001
tice that the only difference between +25 and 225 is the sign bit because the magnitude
s are in true binary for both positive and negative numbers.
u
c c
◆ Express a binary number in floating-point format
The Sign Bit
The left-most bit in a signed binary number is the sign bit, which tells you whether the
number is positive or negative.
A 0 sign bit indicates a positive number, and a 1 sign bit indicates a negative number
Sign-Magnitude Form
When a signed binary number is represented in sign-magnitude, the left-most bit is the sign
bit and the remaining bits are the magnitude bits. The magnitude bits are in true (uncomple
mented) binary for both positive and negative numbers. For example, the decimal numbe
+25 is expressed as an 8-bit signed binary number using the sign-magnitude form as
00011001
Sign bit Magnitude bits
The decimal number 225 is expressed as
10011001
Notice that the only difference between +25 and 225 is the sign bit because the magnitude
bits are in true binary for both positive and negative numbers.
In the sign-magnitude form, a negative number has the same magnitude bits as the
corresponding positive number but the sign bit is a 1 rather than a zero.u
c c
26. 1’s COMPLEMENT
• Bilangan positif dalam bentuk 1’s complement direpresentasikan
sama seperti bilangan Tanda-Angka
• Bilangan negatif diperoleh dengan membalik seluruh bit: mengubah
semua 0 menjadi 1 dan semua 1 menjadi 0. Ini disebut 1’s
complement.
• Contoh:
Bilangan desimal -25 diperoleh dari 1’s complement dari +25
(00011001) yakni 11100110
27. 2’s COMPLEMENT
• Untuk memperoleh 2’s complement dari sebuah bilangan biner,
lakukan 1’s complement, lalu tambahkan 1 ke hasil pembalikan.
• Teknik ini digunakan dalam operasi pengurangan sehingga hanya
diperlukan piranti Adder saja yang dipakai bersama operasi
penjumlahan.
Example 0-9: Take the 2’s complement 10011101.
Solution:
10011101 binary number
01100010 1’s complement
+ 1
01100011 2’s complement
28. Rentang Bilangan Bertanda (Signed Integer
Numbers)
• Bilangan biner 8-bit paling banyak dipakai dalam dunia komputer
(dinamakan khusus byte). Satu byte atau 8-bit, Anda dapat memperoleh
256 bilangan berbeda.
• Dengan dua byte atau 16-bit, Anda dapat memperoleh 65.536 bilangan
berbeda.
• Dengan empat byte atau 32-bit, Anda dapat memperoleh 4,295 x 109
bilangan berbeda.
• Jika Anda menggunakan n-bit, maka kombinasi total = 2n
• Untuk bilangan bertanda 2’s complement, rentang nilai jika menggunakan
bilangan biner n-bit adalah:
Range = –(2n-1) sampai +(2n-1-1)
dimana: satu sign bit dan n-1 magnitude bits.
Misal: dengan 4-bit diperoleh rentang –(23) = -8 sampai 23-1 = +7.
dengan 8-bit diperoleh -128 sampai +127
dengan 16-bit diperoleh -65.536 sampai +65.535
29. PENJUMLAHAN BILANGAN BINER
• Penjumlahan bilangan biner sangat jelas seperti Tabel 0-3 untuk penjumlahan dua bit.
• Diskusi tentang pengurangan bilangan biner dilewatkan karena semua komputer
menggunakan proses penjumlahan umtuk implementasi pengurangan.
• Walaupun komputer memiliki adder circuitry, ia tidak punya circuitry terrsendiri untuk
subtractor. Sebaliknya, adders dipakai bersamaan dengan 2’s complement circuitry
untuk melaksanakan pengurangan. Dengan kata lain untuk mengimplementasikan “x –
y”, komputer melakukan 2’s complement dari y dan menjumlahkannya ke x.
A + B Carry Sum
0 + 0 0 0
0 + 1 0 1
1 + 0 0 1
1 + 1 1 0
Table 0-3: Binary Addition
Example 0-8: Add the following binary numbers. Check
against their decimal equivalents.
Solution:
Binary Decimal
1101 13
+ 1001 9
10110 22
30. PENGURANGAN BINER DENGAN 2’s COMPLEMENT
[CONTOH: 2-3=2+(-3)=-1]
• Representasi biner dari 3 adalah : 0011
• 1’s complement dari 3 adalah : 1100
• 2’ complement dari 3 adalah : (1’s complement + 1)
1100 (1’s complement)
+1
1101 (2’s complement, yakni -3)
• Jadi 2 + (-3) = 0010 ( bilangan biner dari 2)
+1101 (-3)
1111 (-1)
• Untuk menguji apakah ini benar -1, temukan 2’s complement dari -1 dan
tanda (–) tetap dijaga.
-1 = 1111
2’s complement = - (0000)
+1
-(0001) yakni -1
31. PENJUMLAHAN DAN PENGURANGAN
BILANGAN HEKSADESIMAL
• Teknik ini untuk memudahkan Anda memahami isu-isu terkait dengan software dan hardware
komputer di kemudian hari.
• Penjumlahan:
Mulai dari LSD, digit2 dijumlahkan. Jika jumlahnya
kurang dari 16, tulislah digit sebagai hasil jumlah
posisi itu. Jika lebih dari 16, kurangkan 16 agar
diperoleh digit sisa dan carry 1 buat digit berikutnya.
• Dalam pengurangan dua heksadesimal, jika digit kedua lebih besar dari yang pertama, pinjam 16
dari digit di depannya.
Addition of hex numbers
This section describes the process of adding hex numbers. Starting with the least sig-
nificant digits, the digits are added together. If the result is less than 16, write that digit as
the sum for that position. If it is greater than 16, subtract 16 from it to get the digit and
carry 1 to the next digit. The best way to explain this is by example, as shown in Example
0-10.
Subtraction of hex numbers
In subtracting two hex numbers, if the second digit is greater than the first, borrow
16 from the preceding digit. See Example 0-11.
ASCII code
The discussion so far has revolved around the representation of number systems.
Because all information in the computer must be represented by 0s and 1s, binary patterns
must be assigned to letters and other characters. In the 1960s a standard representation
called ASCII (American Standard Code for Information Interchange) was established. The
ASCII (pronounced “ask-E”) code assigns binary patterns for numbers 0 to 9, all the let-
ters of the English alphabet, both uppercase (capital) and lowercase, and many control
codes and punctuation marks. The great advantage of this system is that it is used by most
computers, so that information can be shared among computers. The ASCII system uses
Take the 2’s complement of 10011101.
Solution:
10011101 binary number
01100010 1’s complement
+ 1
01100011 2’s complement
Example 0-9
Perform hex addition: 23D9 + 94BE.
Solution:
23D9 LSD: 9 + 14 = 23 23 – 16 = 7 with a carry
+ 94BE 1 + 13 + 11 = 25 25 – 16 = 9 with a carry
B897 1 + 3 + 4 = 8
MSD: 2 + 9 = B
Example 0-10
Perform hex subtraction: 59F – 2B8.
Solution:
59F LSD: 8 from 15 = 7
Example 0-11
This section describes the process of adding hex numbers. Starting with the least sig-
nificant digits, the digits are added together. If the result is less than 16, write that digit as
the sum for that position. If it is greater than 16, subtract 16 from it to get the digit and
carry 1 to the next digit. The best way to explain this is by example, as shown in Example
0-10.
Subtraction of hex numbers
In subtracting two hex numbers, if the second digit is greater than the first, borrow
16 from the preceding digit. See Example 0-11.
ASCII code
The discussion so far has revolved around the representation of number systems.
Because all information in the computer must be represented by 0s and 1s, binary patterns
must be assigned to letters and other characters. In the 1960s a standard representation
called ASCII (American Standard Code for Information Interchange) was established. The
ASCII (pronounced “ask-E”) code assigns binary patterns for numbers 0 to 9, all the let-
ters of the English alphabet, both uppercase (capital) and lowercase, and many control
codes and punctuation marks. The great advantage of this system is that it is used by most
computers, so that information can be shared among computers. The ASCII system uses
CHAPTER 0: INTRODUCTION TO COMPUTING 7
Perform hex addition: 23D9 + 94BE.
Solution:
23D9 LSD: 9 + 14 = 23 23 – 16 = 7 with a carry
+ 94BE 1 + 13 + 11 = 25 25 – 16 = 9 with a carry
B897 1 + 3 + 4 = 8
MSD: 2 + 9 = B
Example 0-10
Perform hex subtraction: 59F – 2B8.
Solution:
59F LSD: 8 from 15 = 7
– 2B8 11 from 25 (9 + 16) = 14 (E)
2E7 2 from 4 (5 – 1) = 2
Example 0-11
32. BCD (Binary Coded Decimal)
proses mengkonversi bilangan desimal menjadi ekivalen binernya.
• Sebagaimana kita secara alami hidup dalam dunia desimal, maka
diperlukan suatu cara mengkonversi bilangan desimal ini menjadi
biner agar komputer dan elektronik digital mengerti. Di sinilah
kode BCD berfungsi.
• Dalam BCD, setiap digit desimal diwakili oleh 4 bit seperti halnya
heksadesimal. Jadi untuk 10 digit desimal (0 – 9) kita cukup butuh
kode biner 4-bit.
• Untuk membedakan dengan heksadesimal yang mampu sampai Fh untuk mewakili biner 1111b (desimal 15),
bilangan2 BCD berhenti pada desimal 9, atau biner 1001b. Artinya enam kode biner lainnya (1010b atau
desimal 10, 1011b atau desimal 11, 1100b atau desimal 12, 1101b atau desimal 13, 1110b atau desimal 14,
dan 1111b atau desimal 15 digolongkan sebagai bilangan terlarang dan tidak boleh digunakan.
• Misalkan: 35710 = 0011 0101 0111(BCD)
8510 = 1000 0101(BCD)
57210 = 0101 0111 0010(BCD)
857910 = 1000 0101 0111 1001(BCD)
• Mengkonversi BCD ke desimal maupun desimal ke BCD relatif mudah karena perlu diingat bahwa BCD adalah
bilangan desimal dan bukan biner, sekalipun ia diwakili oleh bit2.
33. KODE ASCII
• Karena semua informasi dalam komputer harus dinyatakan dalam 0 dan 1, pola
biner perlu diberikan untuk huruf dan karakter lainnya.
• Pada tahun 1963, komite American Standards Association (ASA) yang kemudian
menjadi American National Standards Institute (ANSI) mengembangkan American
Standard Code for Information Interchange (ASCII).
• ASCII code membuat pola biner untuk bilangan2 0 sampai 9, seluruh huruf alfabet
Inggris, baik huruf besar (kapital) maupun huruf kecil, dan banyak control codes
dan tanda baca (lihat USASCII code chart).
• Kelebihan sistem ini adalah banyak diadopsi oleh pabrikan mikrokomputer yang
memfasilitasi lalulintas data antar piranti komputer berbeda.
• Sistem ASCII memanfaatkan total 7 bit untuk mewakili setiap kode, mis. 100 0001
diberikan untuk huruf besar ‘A’ dan 110 0001 untuk huruf kecil ‘a’. Seringkali NOL
ditaruh pada posisi most significant bit kode ASCII.
34. TABEL ASCII
American Standard Code for
Information Interchange
• sandi (kode) baku untuk
karakter alfanumerik yang
memanfaatkan 7 bit untuk
menyandikan 128 karakter
(lihat tabel 1-5). 94 karakter
dapat dicetak, 34 karakter
tidak dapat dicetak dipakai
untuk beragam fungsi kontrol.
• 7 bit: B7 B6 .. B1, B7=MSB
• B7 B6 B5 menentukan kolom
• B4 B3 B2 B1 menentukan baris
• Misalkan huruf A, diwakili oleh
1000001 (kolom 100, baris
0001) atau 0x41.
35. 1-6 / Alphanumeric Codes 27
prescribed format. There are three types of control characters: format effectors,
information separators, and communication control characters. Format effectors are
characters that control the layout of printing. They include the familiar typewriter
controls such as backspace (BS), horizontal tabulation (HT), and carriage return
(CR). Information separators are used to separate the data into divisions—for
example, paragraphs and pages. They include characters such as record separator
TABLE 1-5
American Standard Code for Information Interchange (ASCII)
B7
B6
B5
B4
B3
B2
B1
000 001 010 011 100 101 110 111
0000 NULL DLE SP 0 @ P ` p
0001 SOH DC1 ! 1 A Q a q
0010 STX DC2 " 2 B R b r
0011 ETX DC3 # 3 C S c s
0100 EOT DC4 $ 4 D T d t
0101 ENQ NAK % 5 E U e u
0110 ACK SYN & 6 F V f v
0111 BEL ETB ' 7 G W g w
1000 BS CAN ( 8 H X h x
1001 HT EM ) 9 I Y i y
1010 LF SUB * : J Z j z
1011 VT ESC + ; K [ k {
1100 FF FS , 6 L l |
1101 CR GS - = M ] m }
1110 SO RS . 7 N ^ n ˜
1111 SI US / ? O _ o DEL
Control Characters
NULL NULL DLE Data link escape
SOH Start of heading DC1 Device control 1
STX Start of text DC2 Device control 2
ETX End of text DC3 Device control 3
EOT End of transmission DC4 Device control 4
ENQ Enquiry NAK Negative acknowledge
ACK Acknowledge SYN Synchronous idle
BEL Bell ETB End of transmission block
BS Backspace CAN Cancel
HT Horizontal tab EM End of medium
LF Line feed SUB Substitute
VT Vertical tab ESC Escape
FF Form feed FS File separator
CR Carriage return GS Group separator
SO Shift out RS Record separator
SI Shift in US Unit separator
SP Space DEL Delete
nonprintable characters
used for various control functions
37. • Penggunaan kode ASCII bukan hanya baku untuk keyboard yang
dipakai di Amerika dan banyak negara lain, tetapi juga menjadi
standar untuk pencetakan dan tampilan karakter2 oleh perangkat
output seperti printers dan monitors.
• Perhatikan bahwa pola kode2 ASCII dirancang agar mudah
memanipulasi data ASCII. Misalkan, bilangan 0 sampai 9 diwakili kode
ASCII 30 sampai 39. Ini memudahkan sebuah program mengkonversi
ASCII ke desimal cukup dengan masking off “3” pada nibble teratas.
• Juga perhatikan bahwa ada relasi antara huruf besar dan huruh kecil.
Huruf besar diwakili oleh kode ASCII 41 sampai 5A sementara huruh
kecil diwakili oleh kode 61 sampai 7A. Dengan melihat kode biner,
satu2nya bit yang membedakan antara huruf besar “A” dan huruf
kecil “a” adalah bit 5. Oleh karena itu, konversi antara huruf besar dan
huruf kecil adalah sederhana cukup mengubah kode ASCII bit 5.
38. Review Questions
1. Why do computers use the binary system instead of the decimal system ?
2. Convert 3410 to binary and hex.
3. Convert 1101012 to hex and decimal.
4. Perform binary addition: 101100 + 101
5. Convert 1011002 to its 2’s complement representation
6. Add 36BH + F6H
7. Substract 36BH – F6H
8. Write “80x86 CPUs” in its ASCII code (in hex form).
Answers to Review Questions
1. Computers use the binary system because each bit can have one of two voltage levels: on and
off.
2. 3410 = 1000102 = 2216
3. 1101012 = 3516 = 5310
4. 1110001
5. 010100
6. 461
7. 275
8. 38 30 78 38 36 20 43 50 55 73
39. DEBUG.COM
• debug merupakan perintah dalam
DOS, OS/2 dan MS Windows yang
akan menjalankan program
debug.exe (atau DEBUG.COM
dalam DOS versi 4.x atau
sebelumnya).
• Debug berlaku sebagai program
assembler, disassembler atau hex dump sehingga user dapat menguji
isi memori (dalam Bahasa assembly, heksadesimal atau ASCII),
membuat perubahan dan memilih eksekusi COM, EXE dan jenis file
lainnya.
• Ia memiliki subcommands untuk mengakses sektor2 disk, I/O ports
dan memory addresses.
https://en.wikipedia.org/wiki/Debug_(command)
40. ASAL MUASAL KATA DEBUG DI DUNIA KOMPUTER
• Pada tahun 1943, masa2 awal komputasi, sebuah tim pemrogram
komputer Angkatan Laut yang dipimpin oleh Laksamana Grace Hopper
mengalami masalah dengan mainframe Mark II di Universitas Harvard.
Mereka menghabiskan berjam-jam memeriksa perangkat lunak. Akhirnya,
mereka membuka komputer dan menemukan ngengat mati di papan
sirkuit utama yang menghalangi relai.
• Ini adalah bug komputer pertama, dan itu adalah bug nyata - serangga -
bukan kesalahan pengkodean.
• Sejak itu, kesalahan dalam sistem komputer, khususnya dalam kode
perangkat lunak, disebut "bug”.
• Jika suatu program memiliki bug,
kami ingin menghilangkannya.
Itu kemudian disebut "debugging”.
41. Inilah bug komputer asli:
Menurut cerita, kata debugging lahir dari awal komputer, dimana ada komputer Mark I di Harvard gagal. Setelah lama
mencari sebabnya, teknisi menemukan sumber masalahnya: ngengat kecil terperangkap dalam kontak relay. Teknisi
membersihkan ngengat itu dan menulis sebuah catatan dalam log book tentang “debugging” the Mark I.
42. Instruksi Aritmetika dan Logic
• 8086 memproses aritmetika dan logic terpisah dalam tida kelompok
seperti operasi penjumlahan, pembagian dan increment. Kebanyakan
operasi aritmetika dan logic mempengaruhi Register status atau flag dari
prosesor.
• Bahasa pemrograman 8086 mnemonics dalam bentuk op-code yakni MOV,
MUL, JMP, dst, yang digunakan untuk melaksanakan operasi2.
• Op-code: Satu instruksi tunggal dinamakan op-code yang dapat dieksekusi oleh CPU.
Di sini instruksi ‘MOV’ dinamakan op-code.
• Operands: Satu keping data dinamakan operands yang dapat dioperasikan oleh op-
code. Contoh, operasi pengurangan dilakukan oleh operand yang dikurangkan oleh
operand lainnya.
Sintaks: SUB b, c
43. ARITMETIKA HEKSADESIMAL
DEBUG.COM SEBAGAI KALKULATOR
• Ketik CMD dari kotak Search programs and files
Klik icon cmd
• Ketik DEBUG dalam jendela CMD
Anda masuk ke PROMPT program DEBUG (tanda -)
• Ketik (yang berlatar belakang kelabu)
-H 9 1
000A 0008
-H 9 6
000F 0003
-H 3A7 1ED
0594 01BA
-H C000 D000
9000 F000
-H 5 FFFF
0004 0006
A+B A-B
contoh sign number
Debug hanya menyimpan empat digit
paling kanan. Seharusnya 19000h.
• Ketik q untuk keluar Debug.
Latar Belakang Mengapa Belajar Assembly
• Bahasa Assembly merupakan Bahasa pemrograman tertua dari semua
bahasa pemrograman, yang memiliki kesesuaian paling alami dengan
Bahasa Mesin. Untuk berinteraksi dengan Bahasa Mesin digunakan
bentuk perantara numerik berupa heksadesimal.
• Bahasa Assembly memberi akses langsung ke hardware komputer
sehingga Anda mampu memahami lebih dalam arsitektur dan sistem
operasi komputer.
-H 3D5C 2A10
676C 134C
Bilangan BBilangan A
A + B A - B
Bahasa Assembly: Penjumlahan
ADD AX, BX
Seperti BASIC, Debug juga menyediakan suatu lingkungan interaktif
yang baik. Tetapi tidak seperti BASIC, ia tidak kenal bilangan
desimal. Bagi Debug, angka 10 merupakan bilangan heksa - bukan
sepuluh. Debug hanya bicara heksa. Debug menggunakan Bahasa
Mesin.
44. ARITMETIKA HEKSADESIMAL
DEBUG.COM MENGGUNAKAN ASSEMBLY
• Menggunakan Register sebagai Variabel (General Purpose Registers: AX,
BX, CX, DX; Special Function Registers:SP, BP, SI, DI, DS, ES, SS, CS dan IP).
• Melihat isi Register2:
-R [Enter]
• Mengubah isi register AX:
-R AX [Enter]
AX 0000
: 3A7 [Enter]
45. ARITMETIKA HEKSADESIMAL
DEBUG.COM MENGGUNAKAN ASSEMBLY
• Memori dalam arsitektur 8086 tersusun atas segmen2 64K dan terbagi atas
empat zona (code, data, extra dan stack)
• Memori (dalam segmen) dilabelkan
dengan register IP sebanyak 16-bit,
artinya maksimal 64K (65535) label.
• Address (atau label) ini berupa offset
dari awal segmen. Jadi agar lengkap,
alamat di memori ditulis sebagai
3756:0100
Artinya Anda ada pada offset 100h
dalam segmen 3756h.
• Untuk akses program dalam memori
digunakan Address CS:IP, dimana IP biasanya 100h
• Perintah Debug untuk melihat dan mengubah memori adalah E (singkatan dari
Enter).
PENGALAMATANMEMORI
46. ARITMETIKA HEKSADESIMAL
DEBUG.COM MENGGUNAKAN ASSEMBLY
• Kode heksa perintah ADD AX,BX adalah 01D8h
• Masukkan kode perintah ini dalam memori agar
dapat dieksekusi nanti.
-E 100
3756:0100 E4.01 [Enter]
-E 101
3756:0101 85.D8
Jika menggunakan tombol spasi, maka langsung diisikan
-E 100
3756:0100 E4.01 [Spasi] 85.D8 [Enter]
• Pastikan AX dan BX diisi dengan bilangan heksa yang akan dijumlahkan, misalkan
AX=03A7h, BX=092A. Pastikan IP=100h
• Jalankan instruksi trace sebagai berikut:
- T
• Maka AX=0CD1h yangmana berupa hasil jumlah 3A7h dan 92Ah. Register IP=102h
sehingga CS:IP merujuk pada instruksi pada lokasi memori 102h, bukan 100h lagi.
Start of
segment
3756
3756:0100
3756:0101
•
•
•
' ADD AX,BX
•
•
•
I
'- - --- - -_,
Figure 2-1. Our Instruction Begins lOOh Bytes From the Start of the
egment.
-E 100
3756:0100
-E 101
3756:0101 85.08
25
The numbers Olh and D8h are the 8088's machine language for our ADD in-
struction at memory locations 3756:0100 and 3756:0101. The segment number
you see will probably be different, but that difference won't affect our pro-
gram. Likewise, Debug probably displayed a different two-digit number for
each of your E commands. These numbers (E4h and 85h in our example) are
the old numbers in memory at offset addresses lOOh and lOlh of the segment
PENJUMLAHANAXßAX+BX
47. ARITMETIKA HEKSADESIMAL
DEBUG.COM MENGGUNAKAN ASSEMBLY
• Kode heksa perintah SUB AX,BX adalah 29D8h
• Masukkan kode perintah ini dalam memori agar dapat dieksekusi nanti.
-E 100
3756:0100 E4.29 [Enter]
-E 101
3756:0101 85.D8
Pastikan AX dan BX diisi dengan bilangan heksa yang akan dijumlahkan, misalkan
AX=0CD1h, BX=092A. Pastikan IP=100h
• Jalankan instruksi trace sebagai berikut:
- T
• Maka AX=03A7h yangmana berupa hasil pengurangan 0CD1h dan 92Ah.
• Seperti sebelumnya, Register IP=102h sehingga CS:IP merujuk pada instruksi pada
lokasi memori 102h, bukan 100h lagi.
PENGURANGANAXßAX-BX
48. ARITMETIKA HEKSADESIMAL
DEBUG.COM MENGGUNAKAN ASSEMBLY
• Kode heksa perintah MUL AX,BX adalah F7E3h. Karena perkalian dua bilangan 16-
bit dapat menghasilkan bilangan 32-bit, maka hasilnya disimpan dalam DX:AX.
• Pastikan AX dan BX diisi dengan bilangan heksa yang akan dikalikan, misalkan
AX=7C4Bh, BX=100h. Secara manual 7C4Bh x 100h = 7CB400h, ini terlalu besar
untuk satu register, maka akan disimpan dalam dua register (dua word) 007Ch
dan 4B00h.
• Pastikan IP=100h
• Jalankan instruksi trace.
• Lihat isi register DX:AX.
• Lakukan hal yang sama untuk pembagian DIV BX dengan kode heksa perintah
F7F3h. Sumber pembagian diambil dari kombinasi register DX:AX.
• Isi register DX=007Ch dan AX=4B12h; BX=0100h.
• Setelah dijalankan, Hasil Bagi = DX = 7C4Bh dan Sisa Bagi = AX = 0012h.
PERKALIANDANPEMBAGIAN
50. ARITMETIKA MENGGUNAKAN EMU8086
CALCULATOR atau EXPRESSION EVALUATOR
BASE CONVERTERNumbering Systems Tutorial
Number Convertor allows you to convert numbers from any system and to any system. Just type a value in any text-
box, and the value will be automatically converted to all other systems. You can work both with 8 bit and 16 bit values.
Expression Evaluator can be used to make calculations between numbers in different systems and convert numbers
from one system to another. Type an expression and press enter, result will appear in chosen numbering system. You can
work with values up to 32 bits. When Signed is checked evaluator assumes that all values (except decimal and double
words) should be treated as signed. Double words are always treated as signed values, so 0FFFFFFFFh is converted to -
1.
For example you want to calculate: 0FFFFh * 10h + 0FFFFh (maximum memory location that can be accessed by 8086
51. Calculator and Base Convertor
• Number Convertor dipakai untuk mengubah sistem bilangan ke sistem bilangan yang lain. Cukup
ketik angka di kotak mana saja, maka angka lainnya akan berubah otomatis. Anda bisa lakukan
dengan 8 bit maupun 16 bit.
• Expression Evaluator dapat dipakai untuk perhitungan antara bilangan2 berbeda sistem dan
mengubah dari satu sistem ke yang lain. Ketik sebuah ekspresi dan tekan [Enter], hasilnya akan
dalam sistem bilangan yang dipilih. Anda dapat lakukan sampai mencapai 32 bit. Jika Signed
diklik, evaluator menganggap semua angka (kecuali desimal dan double words) diperlakukan
sebagai signed. Double words selalu diperlakukan sebagai signed values, maka 0FFFFFFFFh diubah
menjadi - 1.
Misalkan Anda ingin menghitung: 0FFFFh * 10h + 0FFFFh (lokasi memori maksimal yang dapat
diakses oleh CPU 8086). Jika Anda klik Signed dan Word Anda akan peroleh -17 (karena ini akan
dievaluasi sebagai (-1) * 16 + (-1) . Untuk mengitung dengan angka2 unsigned, lepas atau uncheck
Signed sehingga dievaluasi sebagai 65535 * 16 + 65535 dan Anda akan memperoleh 1114095.
Anda bisa menggunakan Number Convertor untuk mengubah digit2 bukan desimal menjadi
angka signed decimal, dan lakukan perhitungan dengan bilangan desimal (pilih yang
memudahkan Anda).
• Operasi-operasi yang didukung :
§ ~ * / % + - << >> & ^ |
§ not (membalik semua bit).
§ multiply. divide. modulus. sum. subtract (and unary -). shift left. shift right.
§ bitwise AND. bitwise XOR. bitwise OR.
• Bilangan biner harus ada akhiran "b", misal: 00011011b
• Bilangan heksadesimal harus ada akhiran "h", dan mulai dengan nol ketika digit pertama berupa huruf (A..F),
misal: 0ABCDh
• Bilangan oktal (basis 8) harus memiliki akhiran "o", misal: 77o
52. • Anda sudah memahami cara komputer berhitung !!!
• Anda dapat akses bahan ini, kunjungi http://bit.ly/2MLtVM6