200 likes | 536 Views
Manipulasi Bit dan Logika. Bit dan Logika. Operasi terkecil dalam mikroprosesor Operasi per-bit Operasi lebih efisien dan efektif serta cepat Untuk operasi port io dan register Operasi bit : SHL, SHR, ROL, ROR, dll Operasi logika : NOT, AND, OR, XOR. NOT. Menginvert masukan
E N D
Bit dan Logika • Operasi terkecil dalam mikroprosesor • Operasi per-bit • Operasi lebih efisien dan efektif serta cepat • Untuk operasi port io dan register • Operasi bit : • SHL, SHR, ROL, ROR, dll • Operasi logika : • NOT, AND, OR, XOR
NOT • Menginvertmasukan • Bisadioperasikan single bit maupun multi bit Input Output 1 0 0 1 • Sintak : NOT variabel • Contoh : • Mov al, 11001001b • Not al ; menghasilkan 00110110b
Mov ax,0abcdh • Not ax ; ax = 5432h
AND Menghasilkan 0 jikasalahsatuinputnya 0 Input1 Input2 Output 0 0 0 0 1 0 1 0 0 1 1 1 Sintak : AND Operan1, Operan2 Flag register : OF, SF, ZF, PF, CF
Contoh : • Mov al, 1 • Mov ah, 2 • And ah, al ; ah = 0 • Mov ax, 01234h • Moxbx, 01111h • And ax, bx ; ax = 1010h
OR Menghasilkankeluaran 1 jikasalahsatuinputnya 1 Input1 Input2 Output 0 0 0 0 1 1 1 0 1 1 1 1 Sintak : OR Operan1, Operan2 Flag : OF, SF, ZF, PF, CF
Contoh : • Mov al, 123 • Mov ah, 23 • Or ah, al ; ah = 127 • Mov ax, 0abcdh • Movbx, 0bbcch • Or ax, bx ; ax = BBCDh
XOR Menghasilkankeluaran 1 jikakeduainputnyaberbeda Input1 Input2 Output 0 0 0 0 1 1 1 0 1 1 1 0 Sintak : XOR Operan1, Operan2 Flag : tidakada yang terpengaruh
Contoh : • Mov al, 123 • Mov ah, 23 • Xor ah, al ; ah = 108 • Mov ax, 0abcdh • Movbx, 0bbcch • Xor ax, bx ; ax = 1001h
TEST Untukmengetesapakahsuatu bit adadalamsuatuvariabelatautidak Sintak : TEST Operan1, Operan2 Flag : OF, SF, ZF, PF, CF Output akantetapaktifselamamasihadahasil bit operasinya yang bernilai 0 (ZF = 1) Bisadioperasikan single maupun multi bit
Contoh : MOV AL, 066h TEST AL, 1 ; ZF = 1 TEST AL, 2 ; ZF = 0 TEST AL, 00001000b ; ZF = 1 TEST AL, 32 ; ZF = 0 MOV BX, 0dfeah ; ZF = 0 TEST BX, 5 ; ZF = 1 TEST BX, 0AH ; ZF = 0 TEST BX, 0f00h ; ZF = 0
SHL • Menggeser bit-bit kekiri. Bit yang ditinggalkanakandisetke 0 • Sintak : SHL Operan1, Operan2 • Jikapenggeseranlebihdari 1x maka Operan2 harus CL atau CX • Flag : OF, ZF, PF, CF, SF • Sebagai operator pengganti MUL (perkalianberbasis 2) • Contoh : • Mov al, 3 • Movcl, 3 • Shl al, cl ; al = 3 * 2^3 = 24
SHR • Menggeser bit-bit kekanan. Bit yang ditinggalkanakandisetke 0 • Sintak : SHR Operan1, Operan2 • Jikapenggeseranlebihdari 1x maka Operan2 harus CL atau CX • Flag : OF, ZF, PF, CF, SF • Sebagai operator pengganti DIV (pembagianberbasis 2) • Contoh : • Mov al, 63 • Movcl, 3 • Shr al, cl ; al = 63 div 2^3 = 7
ROL • Memutar bit-bit kekiri. Bit yang ditinggalkantidakakandisetke 0 • Sintak : ROL Operan1, Operan2 • Bit paling kiriakandimasukkanke CF • Flag : OF, CF • Contoh : • Mov al, 3 • Movcl, 3 • Rol al, cl ; al = 24
ROR • Memutar bit-bit kekanan. Bit yang ditinggalkantidakakandisetke 0 • Sintak : ROR Operan1, Operan2 • Bit paling kananakandimasukkanke CF • Flag : OF, CF • Contoh : • Mov al, 3 • Movcl, 3 • Ror al, cl ; al = 96
Tugas • Hitunglahhasiloperasibilanganberikutini : • ABCDH AND FEH • ABCDH OR FEH • NOT ABCDH • XOR ABCDH, FEH • SHR ABCDH, 3 • ROR ABCDH, 3 • Tuliskanlangkahnyadenganmenuliskanbilanganbinerdarimasing-masingoperannya