laporan orkom - manipulasi bit dan logika

24
LAPORAN PRAKTIKUM ORGANISASI KOMPUTER & BAHASA ASSEMBLY MANIPULASI BIT DAN LOGIKA Kelas : INF 2B Praktikum 1 Nama : Michael Julyus C. M. NIM : J3C113038 PROGRAM KEAHLIAN MANAJEMEN INFORMATIKA DIREKTORAT PROGRAM DIPLOMA INSTITUT PERTANIAN BOGOR

Upload: michaeljulyuschristophermanullang

Post on 26-Dec-2015

717 views

Category:

Documents


73 download

DESCRIPTION

Laporan Praktikum Organisasi Komputer & Bahasa Assembly - Manipulasi Bit Dan Logika menggunakan bahasa assembly.

TRANSCRIPT

LAPORAN PRAKTIKUM

ORGANISASI KOMPUTER & BAHASA ASSEMBLY

MANIPULASI BIT DAN LOGIKA

Kelas : INF 2B Praktikum 1

Nama : Michael Julyus C. M.

NIM : J3C113038

PROGRAM KEAHLIAN MANAJEMEN INFORMATIKA

DIREKTORAT PROGRAM DIPLOMA

INSTITUT PERTANIAN BOGOR

BOGOR

2014

KATA PENGANTAR

Puji dan Syukur Penulis Panjatkan ke Hadirat Tuhan Yang Maha Esa karena berkat

limpahan Rahmat dan Karunia-Nya sehingga penulis dapat menyusun laporan ini tepat

pada waktunya. Laporan ini membahas mengenai “Pointer”.

Dalam penyusunan laporan ini, penulis banyak mendapat tantangan dan hambatan akan

tetapi dengan bantuan dari berbagai pihak tantangan itu bisa teratasi. Olehnya itu, penulis

mengucapkan terima kasih yang sebesar-besarnya kepada semua pihak yang telah

membantu dalam penyusunan makalah ini, semoga bantuannya mendapat balasan yang

setimpal dari Tuhan Yang Maha Esa.

Penulis menyadari bahwa laporan ini masih jauh dari kesempurnaan baik dari bentuk

penyusunan maupun materinya. Kritik konstruktif dari pembacan sangat penulis harapkan

untuk penyempurnaan makalah selanjutnya.

Akhir kata semoga laporan ini dapat memberikan manfaat kepada kita sekalian.

Bogor, 20 November 2014

Penulis

Michael Julyus C. M. | J3C113038 2

DAFTAR ISI

KATA PENGANTAR...........................................................................................................2

DAFTAR ISI..........................................................................................................................3

I. TUJUAN PRAKTIKUM...........................................................................................4

II. TEORI PENUNJANG...............................................................................................5

III. TUGAS PENDAHULUAN.....................................................................................10

IV. LISTING PROGRAM.............................................................................................11

V. ANALISA PROGRAM...........................................................................................13

VI. KESIMPULAN........................................................................................................19

VII. DAFTAR PUSTAKA..............................................................................................20

Michael Julyus C. M. | J3C113038 3

I. TUJUAN PRAKTIKUM

Tujuan dari praktikum ini adalah agar mahasiswa dapat:

1. Memahami serta mengetahui berbagai macam tipe data di dalam bahasa

assembly,

2. Mengetahui bagaimana komputer menyimpan suatu nilai di dalam memori,

3. Mengetahui bagaimana cara untuk menggunakan pointer,

4. Mengetahui bagaimana cara memanipulasi data dengan menggunakan

berbagai macam gerbang logika.

Michael Julyus C. M. | J3C113038 4

II. TEORI PENUNJANG

1. Gerbang NOT

Operator NOT akan menginvers suatu nilai seperti yang terlihat pada Gambar 1.

A A

0 1

1 0

Gambar 1. Tabel Kebenaran Operator NOT

Operator Not di dalam assembler, digunakan dengan syntax:

NOT Tujuan, Sumber

Hasil dari operasi not ini akan disimpan pada Tujuan, sebagai contoh, instruksi

NOT AL, 3Fh akan menghasilkan nilai C0h bagi AL, untuk lebih jelasnya kita lihat

operasi di atas secara per bit.

Bilangan : 3 F

00111111

Not : C 0

11000000

2. Gerbang AND

Operator AND akan menghasilkan nilai nol bila salah satu operandnya bernilai nol,

dan hanya akan bernilai satu bila kedua operandnya bernilai satu.

A B A AND B

0 0 0

0 1 0

1 0 0

1 1 1

Gambar 2. Tabel Operator AND

Michael Julyus C. M. | J3C113038 5

Operasi AND di dalam assembler, digunakan dengan syntax:

AND Tujuan, Sumber

Hasil dari operasi AND ini akan disimpan pada Tujuan, sebagai contoh, instruksi:

MOV AL, 3Fh

MOV BL, 1Ah

AND AL, BL

Perintah diatas akan menghasilkan nilai 1A bagi register AL.

Ingat : Setiap bit yang di AND dengan 0 pasti menghasilkan bit 0 juga, sedangkan setiap

bit yang di AND dengan 1 akan menghasilkan bit itu sendiri.

3. Gerbang OR

Operator logika OR akan menghasilkan nilai nol bila kedua operannya bernilai nol

dan satu bila salah satunya bernilai satu.

A B A OR B

0 0 0

0 1 1

1 0 1

1 1 1

Gambar 3. Tabel Operator OR

Operasi OR di dalam assembler, digunakan dengan syntax:

OR Tujuan,Sumber

Hasil dari operasi OR ini akan disimpan pada Tujuan, sebagai contoh, instruksi:

MOV AL, 3Fh

MOV BL, 1Ah

OR AL, BL

Michael Julyus C. M. | J3C113038 6

Hasil operasi OR di atas akan menghasilkan nilai 3F bagi register AL.

Ingatlah :

Setiap bit yang di OR dengan 0 pasti menghasilkan bit itu sendiri, sedangkan setiap

bit yang di OR dengan 1 pasti menghasilkan bit 1.

4. Gerbang XOR

Operator XOR akan menghasilkan nol untuk dua nilai yang sama nilainya dan satu

untuk yang berbeda.

A B A XOR B

0 0 0

0 1 1

1 0 1

1 1 0

Gambar 4. Tabel Operator XOR

Operasi XOR di dalam assembler, digunakan dengan syntax:

XOR Tujuan, Sumber

Hasil dari operasi XOR ini akan disimpan pada Tujuan, sebagai contoh, instruksi:

MOV AX, 0A12h

XOR AX, AX

Hasil operasi XOR di atas pasti akan menghasilkan nilai 0 bagi register AX.

Ingatlah:

Setiap bilangan yang di XOR dengan bilangan yang sama pasti menghasilkan

bilangan 0.

Michael Julyus C. M. | J3C113038 7

CL, 3

5. TEST

Perintah Test digunakan untuk mengetahui nilai pada suatu bit, dengan syntax:

TEST Operand1, Operand2

Perintah test akan mengAND kedua nilai operand, tetapi hasil yang didapatkan

tidak akan berpengaruh terhadap nilai kedua operand tersebut. Setelah perintah Test

dilaksanakan yang akan terpengaruh adalah Flags, sehingga perintah ini sering diikuti

dengan perintah yang berhubungan dengan kondisi flags. Adapun flags yang terpengaruh

adalah CF, OF, PF, ZF, SF dan AF.

TEST AX, 0Fh

JNZ Proses ; Lompat jika Zerro flag 0

Pada perintah di atas komputer akan menuju ke label Proses bila ada satu bit atau

lebih dari AX yang sama dengan 0Fh. Bila diikuti dengan perintah JCProses, maka

komputer akan menuju ke label bila keempat byte pada AL rendah semuanya1(?F).

6. SHL (Shift Left)

Operator SHL akan menggeser operand1 ke kiri sebanyak operand2 secara per bit.

Kemudian bit kosong yang telah tergeser di sebelah kanannya akan diberi nilai nol.

Operator SHL digunakan dengan syntax:

SHL Operand1, Operand2

Supaya lebih jelas bisa anda lihat pada gambar 5. Operand2 harus digunakan

register CL bila pergeseran yang dilakukan lebih dari satu kali.

AL=F8h AL=3F

Gambar 5. Operasi SHL

Instruksi : MOV AX, 3Fh

MOV CL, 3

SHL AX, CL ; Geser 3 bit ke kiri

Michael Julyus C. M. | J3C113038 8

Akan menghasilkan nilai F8h pada register AX. Operasi detailnya dapat dilihat di bawah

ini.

3Fh : 0011 1111

SHL 1 : 0111 1110 (=7Eh)

SHL 2 : 1111 1100 (=FCh)

SHL 3 : 1111 1000 (=F8h)

7. SHR (Shift Right)

Operator SHR akan menggeser operand1 ke kanan sebanyak operand2 secara per

bit dan menambahkan nilai nol pada bit yang tergeser seperti halnya pada operator SHL.

Operator SHR digunakan dengan syntax:

SHR Operand1,Operand2

Supaya lebih jelas anda bisa lihat gambar 6. Operand2 harus digunakan register CL

bila pergeseran yang dilakukan lebih dari satu kali.

AL=3F AL=07

Gambar 6. Operasi SHR

Instruksi : MOV AX, 3Fh

MOV CL, 3

SHR AX, CL ; Geser 3 bit ke kanan

Akan menghasilkan nilai 07h pada register AX. Operasi detailnya dapat dilihat di bawah

ini.

3Fh : 0011 1111

SHL 1 : 0001 1111 (=1Fh)

SHL 2 : 0000 1111 (=0Fh)

SHL 3 : 0000 1111 (=07h)

Michael Julyus C. M. | J3C113038 9

CL, 3

III. TUGAS PENDAHULUAN

1. Buatlah dalam assembly untuk menggeser 3 bit kekanan dan kekiri, sehingga

dihasilkan nilai yang tetap setelah program selesai.

2. Jika AX = FFFFh dan digeser kekiri 3bit, maka berapa nilai AX?

3. Jika AX, BX, CX, dan DX digeser kekanan 8 bit, sedangkan semua nilai register AX,

BX, CX, dan DX adalah FEDCh, berapa nilai akhir semua register tersebut?

4. Buatlah fungsi logika dari rangkaian dibawah ini menggunakan assembly!

Michael Julyus C. M. | J3C113038 10

IV. LISTING PROGRAM

1. Buatlah dalam assembly untuk menggeser 3 bit kekanan dan kekiri, sehingga

dihasilkan nilai yang tetap setelah program selesai.

2. Jika AX = FFFFh dan digeser kekiri 3bit, maka berapa nilai AX?

3. Jika AX, BX, CX, dan DX digeser kekanan 8 bit, sedangkan semua nilai register AX,

BX, CX, dan DX adalah FEDCh, berapa nilai akhir semua register tersebut?

Michael Julyus C. M. | J3C113038 11

4. Buatlah fungsi logika dari rangkaian dibawah ini menggunakan assembly!

Michael Julyus C. M. | J3C113038 12

V. ANALISA PROGRAM

1. MODEL SMALLTanda directive ini digunakan untuk memberitahukan kepada assembler bentuk

memory yang digunakan oleh program kita. Supaya lebih jelas model-model yang biasa digunakan adalah:- SMALLJika data dan code yang digunakan oleh program kurang dari ukuran 1 segment atau 64 KB (kilobyte).

2. .CODETanda directive ini digunakan untuk memberitahukan kepada assembler bahwa kita

akan mulai menggunakan Code Segment-nya disini. Code segment ini digunakan untuk menyimpan program yang nantinya akan dijalankan.

3. . ORG 100hPada program COM perintah ini akan selalu digunakan. Perintah ini digunakan

untuk memberitahukan assembler supaya program pada saat dijalankan(diload ke memory) ditaruh mulai pada offset ke 100h(256) byte. Dapat dikatakan juga bahwa kita menyediakan 100h byte kosong pada saat program dijalankan. 100h byte kosong ini nantinya akan ditempati oleh PSP(Program Segment Prefix) dari program tersebut. PSP ini digunakan oleh DOS untuk mengontrol jalannya program tersebut.

4. JMPPerintah JMP (JUMP) digunakan untuk melompat menuju tempat yang

ditunjukkan oleh perintah JUMP, adapun syntaxnya adalah:JUMP TujuanDimana tujuannya dapat berupa label seperti yang digunakan pada bagan diatas.

Perintah JUMP dimaksudkan agar melewati tempat data program, karena jika tidak ada perintah JUMP ini maka data program akan ikut dieksekusi sehingga kemungkinan besar akan menyebabkan program menjadi hang.

5. INT 20hPerintah INT adalah suatu perintah untuk menghasilkan suatu interupsi dengan

syntax: INT NoInt yang berfungsi untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada DOS.

Michael Julyus C. M. | J3C113038 13

1. Buatlah dalam assembly untuk menggeser 3 bit kekanan dan kekiri, sehingga

dihasilkan nilai yang tetap setelah program selesai.

Analisanya :

Pada listing diatas nilai AX-nya 0A0h, mengapa demikian karena jika tidak nilai

akhirnya nanti akan berbeda. Agar nilai akhir nanti hasilnya sama dengan nilai awal maka

nilai AX-nya maka nilai akhirnya harus bernilai 0h atau 8h. agar lebih jelasnya dapat

digambarkan demikian

1 0 1 0 0 0 0 0 (Sebelum di SHR = A0h) dan 3 bit dari kanan akan di delete

0 0 0 1 0 1 0 0 (Sesudah di SHR 3 = 14h) ditambah 3 bit dengan nilai nol (bold)

1 0 1 0 0 0 0 0 (Sesudah di SHL 3 = A0h) ditambah 3 bit dengan nilai nol (bold)

Jadi, setelah di SHR atau di SHL maka akan ditambah dengan nilai 0. Sehingga

untuk mendapatkan nilai yang di SHR dan di SHL 3bit, nilai akhirnya harus bernilai 0h

atau 8h.

Michael Julyus C. M. | J3C113038 14

2. Jika AX = FFFFh dan digeser kekiri 3bit, maka berapa nilai AX?

Analisa :

Nilai akhir program akan bernilai FFF8h. Karena nilai awal berupa FFFFh digeser

ke kiri. Dapat digambarkan seperti ini :

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 (Nilai awal = FFFFh)

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 (SHL 3bit)

1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 (nilai Akhir = FFF8h)

Michael Julyus C. M. | J3C113038 15

3. Jika AX, BX, CX, dan DX digeser kekanan 8 bit, sedangkan semua nilai register AX,

BX, CX, dan DX adalah FEDCh, berapa nilai akhir semua register tersebut?

Analisa :

Ini merupakan listing program SHR sebesar 8 bit. Pada listing diatas menggunakan

1 pointer, yaitu A. Dimana A akan menyimpan nilai 0FEDCh, yang nilai tersebut akan

mengisi register AX, BX, CX, DX. Karena semua register telah dipakai, maka digunakan

syntax “SHR AX,8”, yang artinya register AX akan digeser kekanan sebanyak 8bit.

1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 (nilai awal = FEDCh)

1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 (SHR 8bit)

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 (nilai akhir = 00FEh)

Jadi nilai yang digeser sebanyak 8bit itu, akan diisi dengan nilai 0 sebanyak 8bit.

Michael Julyus C. M. | J3C113038 16

4. Buatlah fungsi logika dari rangkaian dibawah ini menggunakan assembly!

Analisa :

Listing ini merupakan bagaimana membuat fungsi logika dari rangkaian. Dalam

listing ini menggunakan 4 buah pointer. Pointer A, B, C, D, meruapakan inputan dari

fungsi logika tersebut.

A = 1Fh C = 3Fh

B = 0Ch D = 7h

Langkah 1 :

“MOV AX, A” = Memindahkan nilai A ke AX.

“OR AX, B” = Nilai pada AX di OR kan dengan B.

0 0 0 1 1 1 1 1 <1Fh>

0 0 0 0 1 1 0 0 <0Ch>

0 0 0 1 1 1 1 1 <1Fh> (Setelah di OR kan)

Langkah 2 :

“MOV BX, C” = Memindahkan nilai C ke BX.

“OR BX, D” = Nilai pada BX di OR kan dengan D.

Michael Julyus C. M. | J3C113038 17

0 0 1 1 1 1 1 1 <3Fh>

0 0 0 0 0 1 1 1 <2Ah>

0 0 1 1 1 1 1 1 <3Fh> (Setelah di OR kan)

Langkah 3 :

“XOR AX, BX” = nilai pada AX di XOR kan dengan BX.

0 0 0 1 1 1 1 1 <1Fh>

0 0 1 1 1 1 1 1 <3Fh>

0 0 1 0 0 0 0 0 <20h> (Setelah di XOR kan)

Langkah 4:

“NOT AL” = nilai pada AL yang merupakan hasil dari XOR antara AX dengan BX, di NOT kan.

0 0 1 0 0 0 0 0 <20h>

1 1 0 1 1 1 1 1 <DFh> (Setelah di NOT kan)

A OR B C OR DAX XOR BX NOT AL

VI. KESIMPULAN

Kesimpulan dari bab ini adalah bagaimana kita menggunakan syntax seperti AND,

OR, SHR, SHL yang merupakan syntax logika. Pada penggunaan SHR dan SHL¸ nilai

yang digeser akan diisin dengan nilai baru, dan nilai tersebut akan selalu bernilai nol (0).

Michael Julyus C. M. | J3C113038 18

Setelah kita mengetahui cara manipulasi data dan logika, maka kita dapat

mengaplikasikannya pada rangkaian logika.

VII. DAFTAR PUSTAKA

Suheri, Asep, ST, MT. Modul Praktikum Organisasi Komputer & Bahasa Assembly. 2012. Bogor: Program Diploma Institut Pertanian Bogor.

Michael Julyus C. M. | J3C113038 19