Turbo Assembly Compare and Jump.

Slides:



Advertisements
Presentasi serupa
JWASM Input Keyboard.
Advertisements

Program Bahasa Rakitan Tanpa DEBUG.COM
Flags.
Pemograman DEBUG.
PERTEMUAN KE 5 OPERASI LOMPAT/JUMP.
OPERASI ARITMATIKA OPERASI PENAMBAHAN 1. ADD
Manipulasi Bit dan Logika
Turbo Assembly Operasi Aritmatika.
Tipe-Tipe Instruksi MCS-51 (Arithmatika)
Bahasa Assembley & Program COM
POINTER A. PENDAHULUAN Tanpa pointer untuk memindahkan data dari suatu variabel ke register 8 bit, maka variabel tersebut haruslah 8 bit juga yang dapat.
Algoritma : CONTROL STRUCTURES
Procedure. Procedure???? Procedure merupakan suatu alat bantu yang sangat berguna. Dengan procedure, suatu program yang besar dapat disusun secara terstruktur.
JWASM Macro.
Macro. Macro ???? Macro hampir sama dengan procedure, yang dapat membantu anda dalam membuat program yang besar. Dengan Macro anda tidak perlu menggunakan.
Turbo Assembly Stack.
Turbo Assembly Membuat Program .EXE.
Turbo Assembly Mencetak Kalimat.
Turbo Assembly Masukan dari Keyboard.
QUIZ. Berapakah nilai hexadecimal dari destination operand pada setiap instruksi ? (Jika terdapat instruksi yang ERROR atau ILLEGAL, tuliskan ERROR atau.
DEBUG.
Dasar pemrograman Mikroprosesor 8086
Pemrograman Mikroprosesor
PENGAMBILAN KEPUTUSAN
Turbo Assembler TASM.
Program Bahasa Rakitan Tanpa DEBUG.COM
Procedure. Procedure???? Procedure merupakan suatu alat bantu yang sangat berguna. Dengan procedure suatu program yang besar bisa diselesaikan dengan.
JWASM Mencetak angka.
BAHASA RAKITAN BAGIAN 3.
Johannes Simatupang, MKom, Cobit5-F NIDN :
POINTER & MANIPULASI BIT DAN LOGIKA
Pertemuan 1 Mengapa Belajar Bahasa Rakitan ??
SISTEM BILANGAN DAN REGISTER
Pointer. Karakteristik Operasi Assembly  Lebar data tujuan dan asal harus sama! Lebar data tidak sama => invalid opcode  Operasi 8bit disimpan pada.
Procedure dan Macro.
OPERASI ARITMATIKA.
Program Bahasa Rakitan dengan DEBUG.COM
Pertemuan 5 Struktur program bahasa rakitan
Arsitektur Perangkat Lunak 8086
Procedure merupakan suatu alat bantu yang sangat berguna. Dengan procedure suatu program yang besar dapat diselesaikan dengan lebih mudah. Proses pencarian.
Dasar-Dasar Pemrograman Assembler
lnstruksi Aritmetika dan Logika
BAHASA RAKITAN BAGIAN 1.
BAHASA RAKITAN BAGIAN 2.
PRAKTIKUM BAHASA RAKITAN 05
Pertemuan 9 Strukturisasi Control Flow pada Bahasa rakitan 8088
Praktikum 6.
MEMBUAT PROGRAM COM.
Pertemuan 8 Instruksi Bahasa Rakitan 8088
Dasar pemrograman Mikroprosesor 8086
Program Bahasa Rakitan dengan DEBUG.COM
Dasar-Dasar Pemrograman Assembler
Pengantar Bahasa Rakitan
INSTRUKSI PENGAMBIL KEPUTUSAN DAN STACK
Mata Kuliah : Bahasa Rakitan
Pengantar Bahasa Rakitan
Instruksi-instruksi pada 8086
Instruksi-instruksi pada 8086
FLOW CONTROL INSTRUTIONS
BAB III REGISTER 8088 Mikroprosesor 8088 berorientasi pada register
MEMBUAT PROGRAM COM.
OPERASI PADA STRING.
BAHASA RAKITAN BAGIAN 1.
OPERASI LOGIKA Mulyono.
INSTRUKSI PENGAMBIL KEPUTUSAN DAN STACK
Operasi Aritmatika.
Dewi Anggraini P. Hapsari
Manipulasi Bit dan Logika
INSTRUKSI PENGAMBIL KEPUTUSAN DAN STACK
CHAP 6 SET INSTRUKSI MEMORI
Transcript presentasi:

Turbo Assembly Compare and Jump

JUMP Perintah JMP(Jump), sudah pernah kita gunakan, dimana perintah ini digunakan untuk melompati daerah data program. Perintah JMP digunakan dengan syntax: JMP Tujuan Perintah JMP ini dikategorikan sebagai Unconditional Jump, karena perintah ini tidak menyeleksi keadaan apapun untuk melakukan suatu lompatan. Setiap ditemui perintah ini maka lompatan pasti dilakukan. Selain dari perintah jump tanpa syarat, masih banyak perintah Jump yang menyeleksi suatu keadaan tertentu sebelum dilakukan lompatan. Perintah jump dengan penyeleksian kondisi terlebih dahulu biasanya diikuti dengan perintah untuk melihat kondisi, seperti membandingkan dengan perintah "CMP"(Compare).

Table of Conditional Jump Instruction Mnemonic Description Flag Condition JZ Jump if zero ZF = 1 JE Jump if equal (if op1 = op2) JNZ Jump if not zero ZF = 0 JNE Jump if not equal (if op1 <> op2) JA Jump if above (if op1 > op2) CF = 0 and ZF = 0 JAE Jump if above or equal (if op1 >= op2) CF = 0 JB Jump if below (if op1 < op2) CF = 1 JC Jump if carry JBE Jump if below or equal (if op1 <= op2 ) CF = 1 and ZF = 1 JCXZ jump if CX = 0 CX = 0

Compare CMP Instruction CMP destination, source  membandingkan dua buah operand 8-bit atau 16-bit (sama seperti operasi pengurangan) Hasil dapat diamati pada FLAG Reg After CMP Flag Result Destination < Source CF = 1 Destination = Source ZF = 1 Destination > Source CF = 0, ZF = 0

Membandingkan Bilangan .MODEL SMALL .CODE ORG 100h TData: JMP Proses BilA DB 67 BilB DB 66 Kal0 DB 'Bilangan A lebih kecil dari bilangan B $' Kal1 DB 'Bilangan A sama dengan bilangan B $' Kal2 DB 'Bilangan A lebih besar dari bilangan B $'

Proses: MOV AL,BilA ; Masukkan bilangan A pada AL CMP AL,BilB ; Bandingkan AL(BilA) dengan Bilangan B JB AKecil ; Jika BilA < BilB, lompat ke AKecil JE Sama ; Jika BilA = BilB, lompat ke Sama JA ABesar ; Jika BilA > BilB, lompat ke ABesar Akecil: LEA DX,Kal0 ; Ambil offset Kal0 JMP Cetak ; Lompat ke cetak

Sama: LEA DX,Kal1 ; Ambil offset Kal1 JMP Cetak ; Lompat ke cetak ABesar: LEA DX,Kal2 ; Ambil offset Kal2 Cetak: MOV AH,09 ; Servis untuk mencetak kalimat INT 21h ; Cetak kalimat !! EXIT: INT 20h ; Kembali ke DOS. END TData

Contoh Program .MODEL SMALL .CODE ORG 100h TData : JMP Proses Kal DB ' Lucky Luck menembak ',13,10 DB 'Lebih cepat dari bayangannya !! ',7,7,'*' Proses: XOR BX,BX ; BX=0 MOV AH,02h ; Servis Untuk Cetak Karakter

Ulang: CMP Kal[BX],'*' ; Bandingkan dengan '*' JE Exit ; Jika Sama Lompat ke Exit MOV DL,Kal[BX] ; Masukkan karakter ke BX menuju DL INT 21h ; Cetak karakter INC BX ; Tambah 1 pada BX JMP Ulang ; Lompat Ke Ulang Exit : INT 20h ; Selesai ! kembali ke DOS END TData