contoh dibawah ini hanya akan menunjukkan 2 input dan 1 output untuk setiap gerbang, walaupun gerbang-gerbang bisa lebih dari itu. gerbang-gerbang logika juga sering dikombinasikan pada bentuk2 logic yang lebih kompleks. suatu mikroprosesor modern dapat mengandung angka-angka besar dengan banyak input dan banyak kombinasi-kombinasi yang bervariasi. untuk catatan, istilah on,high, dan 1 akan dianggap sebagai keadaan logika yang sama, serta off,low, dan 0 merupakan keadaan logika yang sama.
Operator-operator yang sering kali digunakan adalah AND dan OR.
Operasi AND itu dimana jika hanya semua inputnya on, maka oiutputnya akan on. jika salah satu inputnya off, maka outputnya akan off. akan mudah melihat semua kombinasi input2 dengan menggunakan tabel kebenaran seperti dibawah ini.
(disetiap bagian bawah tabel terdapat simbol gerbang logikanya)
AND (all high = high, else low) | ||
Input 1 | Input 2 | Output |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
sedangkan operasi OR itu kalo salah satu inputnya on, maka outputnya akan on. berikut tabel kebenarannya
OR (any high = high, else low) | ||
Input 1 | Input 2 | Output |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
ada 2 operasi logika yang sama seperti diatas, tapi dengan output yang di-NOT-kan (inverted output), yaitu NAND dan NOR.
NAND(Not AND) itu jika dan hanya jika semua inputnya on, maka outputnya akan off , dan jika salah satu inputnya off, maka outputnya akan on (kebalikannya dari operasi AND). dan inilah tabel kebenarannya :
NAND (all high = low, else high) | ||
Input 1 | Input 2 | Output |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Sedangkan operasi NOR itu jika salah satu inputnya on, maka outputnya akan off (kebalikannya dari OR). Lihat tabel kebenaran :
NOR (any high = low, else high) | ||
Input 1 | Input 2 | Output |
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
untuk operasi OR, ada variasi operasi yang disebut Exclusive OR atau XOR. operasi ini akan mempunyai output on jika input-inputnya berbeda. lihat aja tabel kebenarannya dibawah ini :
XOR (different = high, same = low) | ||
Input 1 | Input 2 | Output |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
ada satu lagi, operasi INVERTER atau NOT, yang hanya mempunyai satu input, dimana outputnya merupakan kebalikan dari inputnya. contohnya jika inputnya berlogik 1, maka outputnya akan berlogik 0. lihatlah tabel kebenarannya :
NOT (inverter) | |
Input = 1 | Output = 0 |
Input = 0 | Output = 1 |
dalam bahasa C, digunakan simbol-simbol untuk menandakan operasi dari boolean. mereka adalah :
Logical Operation | Abbreviation | Symbol |
And | AND | & |
Or | OR | | |
Exclusive OR | XOR | ^ |
Inversion | NOT | ~ |
sudah hal biasa dalam bahasa C untuk melakukan operasi logika dalam byte atau word. Kombinasi dari kondisi-kondisi on dan off adalah faktor penting yang menentukan kondisi tersebut, dan penggunaan kombinasi logika sebagai output-output bisa digunakan untuk menyertakan tindakan yang kompleks. untuk menentukan hasil saat operasi logika diterapkan untuk tipe variabel yang lebih besar, sederhanya bekerja dengan satu bit pada waktu yang sama. lihat beberapa contoh dibawah. angka-angkanya dalam hexadesimal dan binari. pada bagian atas contoh dibawah ini menunjukkan ilustrasi hasil operasi dalam notasi heksadesimal dan simbol yang digunakan dalam bahasa C. itu bukanlah pernyataan dalam bahasa C, tapi hanyalah ilustrasi. Contoh pertama menunjukkan bagaimana hasil ditentukan 1 bit pada waktu yang sama.
0xC1 & 0xEA = 0xC0 (maksudnya 0xC1 AND 0xEA = 0xC0)
0xC1 11000001 (kedua nibble itu adalah 1100 = 12 = 0xC dan 0001 = 1 = 0x1)
0xEA 11101010
0xC0 11000000
||||||||_ 1 AND 0 = 0
|||||||__ 0 AND 1 = 0
||||||___ 0 AND 0 = 0
|||||____ 0 AND 1 = 0
||||_____ 0 AND 0 = 0
|||______ 0 AND 1 = 0
||_______ 1 AND 1 = 1
|________ 1 AND 1 = 10x00 & 0x86 = 0x00 (maksudnya 0x00 AND 0x86 = 0x00)
0x00 00000000
0x86 10000110
0x00 00000000 (pikirkan, "bit-bit ini akan on hanya jika kedua bit diatasnya(yang di-AND-kan) on.")
0x88 & 0xE0 = 0x80 (maksudnya 0x88 AND 0xE0 = 0x80)
0x88 10001000
0xE0 11100000
0x80 100000000xC0 | 0xAD = 0xED (maksudnya 0xC0 OR 0xAD = 0xED)
0xC0 11000000
0xAD 10101101
0xED 11101101 (ingat, "bit ini akan on jika salah satu
dari bit-bit yang diatasnya on.")0xAD | 0xEF = 0xEF (maksudnya 0xAD OR 0xEF = 0xEF)
0xAD 10101101
0xEF 11101111
0xEF 111011110xC4 | 0x84 = 0xC4 (maksudnya 0xC4 OR 0x84 = 0xC4)
0xC4 11000100
0x84 10000100
0xC4 110001000xD4 ^ 0x8D = 0x59 (maksudnya 0xD4 XOR 0x8D = 0x59)
0xD4 11010100
0x8D 10001101
0x59 01011001 (ingat, "bit ini akan on hanya jika kedua bit diatasnya berbeda")0xDA ^ 0x87 = 0x5D (maksudnya 0xDA XOR 0x87 = 0x5D)
0xDA 11011010
0x87 10000111
0x5D 010111010xAB ^ 0xFC = 0x57 (maksudnya 0xAB XOR 0xFC = 0x57)
0xAB 10101011
0xFC 11111100
0x57 01010111~0x86 = 0x79 (maksudnya 0x86 inverted = 0x79)
0x86 10000110
0x79 01111001 (inget, "bit-bit ini merupakan kebalikan dari bit yang ada diatasnya.")~0xC1 = 0x3E (maksudnya 0xC1 inverted = 0x3E)
0xC1 11000001
0x3E 00111110~0xEA = 0x15 (maksudunya 0xEA inverted = 0x15)
0xEA 11101010
0x15 00010101
sampai sini dulu ah, lanjutin nanti....
next : Adress lines dan port.
0 comment:
Post a Comment