• Tidak ada hasil yang ditemukan

LAPORAN PEMROGRAMAN ASSEMBLER KONSEP ARI

N/A
N/A
Protected

Academic year: 2018

Membagikan "LAPORAN PEMROGRAMAN ASSEMBLER KONSEP ARI"

Copied!
15
0
0

Teks penuh

(1)

LAPORAN PEMROGRAMAN ASSEMBLER

KONSEP ARITMATIK DAN LOGIKA

Oleh : Meyla Yan Sari

3.34.13.1.10 IK-2B

PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK ELEKTRO

(2)

I. Tujuan

Dalam praktikum ini mahasiswa mampu menggunakan instruksi logic dan aritmetik.

II. Dasar Teori

Kebanyakan Aritmatika dan Logika Instruksi mempengaruhi prosesor status register (atau Flags).

Seperti yang Anda lihat ada 16 bit dalam register ini, setiap bit disebut bendera dan dapat mengambil nilai 1 atau 0.

- Carry Flag (CF) - bendera ini diatur ke 1 ketika ada melimpah unsigned. Misalnya ketika Anda menambahkan byte 255 + 1 (hasil tidak dalam kisaran 0 ... 255). Ketika tidak ada melimpah bendera ini diatur ke 0.

- Nol Flag (ZF) - set ke 1 ketika hasilnya adalah nol. untuk tidak nol hasil bendera ini diatur ke 0.

- Sign Flag (SF) - set ke 1 ketika hasilnya negatif. Kapan Hasil positif itu diatur ke 0. Sebenarnya bendera ini mengambil nilai bit yang paling signifikan.

- Overflow Flag (OF) - set ke 1 ketika ada yang ditandatangani overflow. Sebagai contoh, ketika Anda menambahkan byte 100 + 50 (hasil tidak dalam kisaran -128 ... 127).

(3)

- Auxiliary Flag (AF) - set ke 1 bila ada unsigned melimpah untuk menggigit rendah (4 bit).

- Interrupt mengaktifkan Flag (IF) - ketika bendera ini diatur ke 1 CPU bereaksi untuk menyela dari perangkat eksternal.

- Direction Flag (DF) - bendera ini digunakan oleh beberapainstruksi untuk memproses rantai data, ketika bendera ini diatur ke 0 - pengolahan dilakukan ke depan, ketika bendera ini diatur ke 1 pengolahan dilakukan mundur.

Terdapat 3 grup :

1. ADD, SUB,CMP, AND, TEST, OR, XOR Jenis operan yang didukung:

REG, memory langsung: 5, -24, 3Fh, 10001101b, dll ...

Setelah operasi antara operan, hasilnya selalu disimpan dalam pertama operan. CMP dan instruksi UJI mempengaruhi bendera saja dan tidak menyimpan hasil (instruksi ini digunakan untuk membuat keputusan selama eksekusi program).

Instruksi ini mempengaruhi bendera ini hanya: CF, ZF, SF, OF, PF, AF.

ADD – menambahkan operan kedua terlebih dahulu. SUB – Kurangi operan kedua terlebih dahulu.

CMP – Kurangi operan kedua dari pertama bendera saja. AND – Logika AND antara semua bit dari dua operan. ini aturan berlaku :

1 AND 1 = 1 1 AND 0 = 0 0 AND 1 = 0 0 AND 0 = 0

(4)

OR – Logical OR antara semua bit dari dua operan. ini

Seperti yang Anda lihat kita mendapatkan 1 setiap saat setidaknya satu dari bit adalah 1.

XOR – XOR Logical (eksklusif OR) antara semua bit dari dua operan. Aturan-aturan ini berlaku :

1 XOR 1 = 0 1 XOR 0 = 1 0 XOR 1 = 1 0 XOR 0 = 0

Seperti yang Anda lihat kita mendapatkan 1 setiap kali ketika bit yang berbeda satu sama lain.

2. MUL, IMUL, DIV, IDIV Tipe operand yang mendukung : REG

Memory

REG: AX, BX, CX, DX, AH, AL, BL, BH, CH, CL, DH, DL, DI, SI, BP, SP. memory: [BX], [BX+SI+7], variable, etc

MUL dan instruksi imul mempengaruhi bendera ini hanya : CF, OF

Ketika hasil lebih ukuran operan bendera ini diatur ke 1, ketika hasil cocok dalam ukuran operan bendera ini diatur ke 0.

Untuk DIV dan IDIV bendera tidak terdefinisi. MUL - kalikan Unsigned:

ketika operan adalah byte: AX = AL * operan. ketika operan adalah kata: (DX AX) = AX * operan. imul - Signed multiply: ketika operan adalah byte: AX = AL * operan. ketika operan adalah kata: (DX AX) = AX * operan. DIV - membagi Unsigned: ketika operan adalah byte: AL = AX / operan

(5)

AX = (DX AX) / operan DX = sisa (modulus)

IDIV - Menandatangani membagi: ketika operan adalah byte:

AL = AX / operan AH = sisa (modulus). . ketika operan adalah kata: AX = (DX AX) / operan DX = sisa (modulus) 3. INC, DEC, NOT, NEG

Operan yang mendukung : REG

Memory

REG: AX, BX, CX, DX, AH, AL, BL, BH, CH, CL, DH, DL, DI, SI, BP, SP. memory: [BX], [BX+SI+7], variable, dll

INC, instruksi Desember mempengaruhi bendera ini hanya: ZF, SF, OF, PF, AF.

TIDAK instruksi tidak mempengaruhi bendera! Instruksi NEG mempengaruhi bendera ini hanya: CF, ZF, SF, OF, PF, AF.

TIDAK - Reverse setiap bit operan.

NEG - Membuat operan negatif (melengkapi dua itu).

Sebenarnya membalikkan setiap bit operan dan kemudian menambahkan 1 sampai itu. Misalnya 5 akan menjadi -5, dan -2 akan menjadi 2.

III. Alat dan Bahan

1. Software Emu8086 2. Ms.Word

IV. Langkah Kerja

1. Hidupkan komputer

2. Buka emulator 8086 yang telah dinstal pada laptop anda

(6)

4. Akan muncul form seperti berikut, klik COM Template > OK

(7)
(8)
(9)

8. Rundom diamond berhasil anda buat

V. Analisis

(10)

org 100h

CALL GenRandom ;call generatorRandom CALL SetCursor

MOV BibitRandom,DX ;data diambil dari DX disimpan di bibit random

(11)

MOV BX,25 ;25=set kursor posisi baris

MOV AX,BibitRandom MOV BX,80

Membuat karakter pacman muncul secara random

org 100h

(12)

CALL SetCursor

MOV BibitRandom,DX ;data diambil dari DX disimpan di bibit random

MOV AX,BibitRandom

MOV BX,25 ;25=set kursor posisi baris

(13)
(14)

;gotoXY ke3 MOV AH,02H MOV BH,00H MOV DH,PosY ADD DH,2 MOV DL,PosX INT 10H

MOV AH,09H MOV BH,00H MOV BL,44H

MOV CX, 3 MOV AL, 179 INT 10H ;harus urut POP DX POP CX POP BX POP AX

ret END

(15)

VII. Kesimpulan

Referensi

Dokumen terkait