MODUL III FLOW CONTROL INSTRUTIONS

dokumen-dokumen yang mirip
a b a AND b a OR b a XOR b a NOT a

MODUL I PENGENALAN ASSEMBLY

Daftar Isi. Daftar Isi Pertemuan 6: Perintah Masukkan dari Keyboard P6.1. Teori Masukkan dari Keyboard... 3

Daftar Isi. Daftar Isi Pertemuan 4: Operator Aritmatika, Logika dan Instruksi Banding dan Lompatan P4.1. Teori... 3

PERINTAH-PERINTAH DASAR (UMUM)

MODUL 6 INSTRUKSI PERCABANGAN. Tujuan : praktikan dapat menggunakan instruksi percabangan dalam program.

MODUL V STACK dan PENGENALAN PROCEDURE

Mata Kuliah : Bahasa Rakitan

LAPORAN PRAKTIKUM ORGANISASI KOMPUTER & BAHASA ASSEMBLY PROGRAM OPERASI ARITMATIKA. Kelas : INF 2B Praktikum 1 Nama : Fernalia NIM : J3C212210

TUGAS KELOMPOK BAHASA RAKITAN PUSTAKA MAKRO

OF DF IF TF SF ZF AF PF CF

Kuis : Bahasa Rakitan (UAS)

PERTEMUAN : 4 EKSPLORASI DEBUG

KALKULATOR ASSEMBLY Lutfi Budi Ilmawan

BAB V MEMULAI DENGAN ASSEMBLY

LAPORAN PRAKTIKUM ORGANISASI KOMPUTER & BAHASA ASSEMBLY PROGRAM POINTER OPERASI ARITMATIKA

Pada pembahasan kali ini, digunakan instruksi MOV untuk menjelaskan mode pengalamatan data. Format penulisannya adalah :

REGISTER Register-register yang terdapat pada mikroprosesor, antara lain :

NAMA : FATIH SILMI MHD NIM : BAHASA MESIN DI DALAM DEBUG.COM

MODUL BAHASA RAKITAN PENDIDIKAN INFORMATIKA

MODUL 5 PERULANGAN (LOOPING)

BAHASA PEMOGRAMAN AT89S/Cxx (assembly)

LAPORAN PRAKTIKUM SISTEM MIKROPROSESSOR INSTRUKSI PERCABANGAN DAN LOOP

LOOPING. Brigida Arie Minartiningtyas, M.Kom

Simple As Possible (SAP) - 2. Abdul Syukur

MIKROPROSESOR REGISTER-REGISTER MIKROPROSESOR INTEL

OPERASI ARITMATIKA. Untuk menambah dalam bahas Assembler digunakan perintah ADD, ADC serta INC Sintaks : ADD Tujuan,Asal

BAB IV IMPLEMENTASI DAN PENGUJIAN IMPLEMENTASI DAN PENGUJIAN

IMPLEMENTASI PENGISIAN REGISITER DATA DAN OPERASI ARITMATIKA MENGGUNAKAN PROGRAM COMMAND PROMPT, BAHASA ASSEMBLER

IKI20210 Pengantar Organisasi Komputer Kuliah Minggu ke-3: Bahasa Rakitan AVR

PERTEMUAN 9-11 STATEMENT

Bab 1. Pemrograman dan Bahasa Rakitan. 1.1 Pendahuluan

BAB 3 MODE AKSES MEMORI, PENGGUNAAN VARIABEL DAN STACK

BAB III ALGORITMA DAN PERANCANGAN ALGORITMA DAN PERANCANGAN

Modul Kuliah Bahasa Rakitan. Harry Witriyono, M.Kom. I. Bahasa Rakitan, Microprocessor dan Bilangan

Rekursif/ Iterasi/ Pengulangan

PRAKTIKUM 6 PENGULANGAN PROSES 2

2. Unit Praktikum Perhitungan Aritmatika

BAB VIII OPERASI ARITMATIKA

DCH1B3 Konfigurasi Perangkat Keras Komputer SAP-2

Instruksi logika (1) Memanipulasi isi Accumulator, dibagi menjadi 2. Panjang instruksi : 1 byte. Panjang instruksi : 2 byte

Dasar Pemrograman. Kondisi dan Perulangan. By : Hendri Sopryadi, S.Kom, M.T.I

Looping : break, continue, nested loop

PROGRAM STUDI TEKNIK KOMPUTER JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG TK Praktikum Bahasa Rakitan Hand On Lab 4

Materi 3. Komponen Mikrokomputer SYSTEM HARDWARE DAN SOFTWARE DADANG MULYANA

PEMROGRAMAN BAHASA RAKITAN

BAB VI. STATEMENT CONTROL


Diktat Kuliah Organisasi dan Interaksi

LAPORAN PRAKTIKUM SISTEM MIKROPROSESSOR STACK DAN SUBROUTINE

Simple As Posible 2 (bag-2)

BAB 3 UNIT KONTROL. Universitas Gadjah Mada 1

Pemrograman Assembler dengan Debug

Arsitektur SAP-2 W BUS ACKNOWLEDGE HEXADECIMAL KEYBOARD ENCODER ACCUMULATOR INPUT PORT 1 ALU FLAGS READY INPUT PORT 2 SERIAL IN PROGRAM COUNTER TMP

BAHASA PEMROGRAMAN MIKROKOMPUTER

Daftar Isi. Daftar Isi Pertemuan 2: Pengenalan Debug dan Interrupt P2.1. Teori Pengenalan DEBUG... 3

UJIAN AKHIR SEMESTER TAHUN AKADEMIK 2010/2011

STRUKTUR DASAR ALGORITMA

Struktur Kontrol. (Repetition) 1. Pemilihan (Selection) 2. Pengulangan

MODUL 3 PERCABANGAN TINGKAT LANJUT DAN PERULANGAN

ALGORITMA DAN PEMROGRAMAN

OPERATION SYSTEM. Jenis - Jenis Register Berdasarkan Mikroprosesor 8086/8088

Tahun Akademik 2015/2016 Semester I DIG1B3 Konfigurasi Perangkat Keras Komputer

Mata Kuliah : Bahasa Rakitan Materi ke-3

V. PENGULANGAN. while (kondisi) { Pernyataan ; } Copyright PIK Unsri Agustus 2006

0F9C:0000 9A00009E0F CALL 0F9E:0000 0F9C: PUSH BP 0F9C: E5 MOV BP,SP 0F9C: C0 XOR AX,AX 0F9C:000A 9ACD029E0F CALL 0F9E:02CD

Diktat Kuliah intel 8088

Mikroprosesor. Bab 3: Arsitektur Mikroprosesor. INTEL 8086 Generasi Awal Prosesor PENTIUM. Arsitektur Mikroprosesor 1

BAB VII KOMPUTER SEDERHANA SAP-3 (SIMPLE AS POSSIBLE-3)

PETA MEMORI MIKROPROSESOR 8088

ORGANISASI DAN ARSITEKTUR KOMPUTER. rsp oak informatika

Algoritma & Pemrograman

Daftar Isi. Daftar Isi Pertemuan 5: Subroutine, Macro, Stack dan Pointer P5.1. Teori Subroutine (Procedure) Macro...

PENGERTIAN REGISTER. Arsitektur Mikroprosesor INTEL 8086 Tinjauan Umum

Mode Pengalamatan (Addressing Mode) Keluarga Prosesor 8086

R E G I S T E R. = Code Segment Register = Data Segment Register = Stack Segment Register = Extra Segment Register. 3.

PERCOBAAN 4 INSTRUKSI PERCABANGAN. Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

STRUKTUR DASAR ALGORITMA

Bab 4 Perintah Perulangan

Mikroprosesor. Pertemuan 8. By: Augury

Diktat Kuliah - Pipeline

BAB 5 PERULANGAN DAN ARRAY

PENGULANGAN. pencacah harus bertipe integer atau karakter pernyataan adalah satu atau lebih instruksi yang. Pernyataan

Algoritma. Menurut Kamus Besar Bahasa Indonesia Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah.

Perulangan Muh. Izzuddin Mahali, M.Cs. Pertemuan 3. Algoritma dan Struktur Data. PT. Elektronika FT UNY

Eksplorasi Prosesor 8086 Dengan Program DEBUG

Simple As Possible (SAP) - 2. Abdul Syukur

STRUKTUR DASAR ALGORITMA DAN PEMROGRAMAN STMIK AMIKOM YOGYAKARTA

BAB III. Pengenalan Struktur Kontrol : Penyeleksian dan Perulangan

OPERATOR, PERULANGAN DAN SELEKSI KONDISI

Modul Praktikum Bahasa Rakitan

Mode Pengalamatan. Sistem Komputer Universitas Gunadarma

PARADIGMA VOL. IX. NO. 3, AGUSTUS 2007

Pipeline pada x86. Sebagai contoh : Instruksi 1 : ADD AX,AX Instruksi 2 : ADD BX,CX

INTRUKSI-INTRUKSI BAHASA PEMROGRAMAN ASSEMBLY

Algoritma Pemrograman

Instruksi-Instruksi Pemindahan Data. Sistem Komputer Universitas Gunadarma

ALGORITMA STRUCTURED ENGLISH DAN PSEUDOCODE

MODUL. Perulangan (Looping) Modul Praktikum C++ Pemrograman Dasar. Semester Genap 2017/2018

Keg. Pembelajaran 5 : Perulangan dalam C++ 1. Tujuan Kegiatan Pembelajaran 2. Uraian Materi while do..while for continue dan break go to

Transkripsi:

MODUL III FLOW CONTROL INSTRUTIONS Intruksi lompatan (jump) dan perulangan (loop) digunakan untuk pengambilan keputusan dan mengulang bagian-bagian kode. Untuk mengontrol instruksi lompatan (jump) dan perulangan (loop) dapat dilakukan dengna terlebih dahulu menyeleksi kondisi logika (conditional jump) dan tanpa menyeleksi kondisi (unconditional jump). Unconditional Jump Instruksi JMP (jump) menyebabkan transfer kontrol tak bersyarat (unconditional jump) dan akan melompati daerah data program tertentu. Sintaksnya adalah: JMP tujuan Di mana label tujuan umunya adalah label dalam suatu segmen yang sama seperti JMP itu sendiri. org 100h mov ax, 5 ; ax = 5. mov bx, 2 ; bx = 2. jmp hitung ; lompat ke 'hitung'. lagi: jmp stop ; go to 'stop'. hitung: add ax, bx ; ax = ax+bx. jmp lagi ; lompat ke lagi. stop: ret ; selesai Compare Instruksi CMP (compare) digunakan untuk membandingkan 2 buah operand, dengan sintaks : CMP tujuan,sumber Instruksi ini membandingkan sumber dan tujuan dengan cara mengurangkan tujuan dengan sumber. Perintah CMP tidak mempengaruhi nilai tujuan dan sumber, perintah ini akan mempengaruhi flag register (OF, SF, ZF, CF) sebagai hasil perbandingan. Operand CMP tidak dapat membandingkan antar 2 lokasi memori. Perintah CMP biasanya diikuti dengan perintah lompat yang melihat keadaan flag register. Adapun flag-flag yang terpengaruh oleh perintah CMP ini adalah: 18

- OF akan 1, jika operand1 lebih kecil dari operand2 pada operasi bilangan bertanda. - SF akan 1, bila operand1 lebih kecil dari operand2, pada operasi bilangan bertanda. - ZF akan 1, jika operand1 nilainya sama dengan operand2. - CF akan 1, jika operand1 lebih kecil dari operand2 pada operasi bilangan tidak bertanda. Perlu anda ingat bahwa CMP tidak dapat membandingkan antar 2 lokasi memory. org 100h lea dx,sama lea dx,input jmp stop int 21H less: mov ah,1 lea dx,kurang mov a,al jmp stop lea dx,enter greater: lea dx,input1 lea dx,lebih mov ah,1 stop: ret mov bl,al a db? b db? lea dx,enter input db "masukkan nilai A= $" cmp a,bl input1 db "masukkan nilai je equal B= $" jl less kurang db "A < B $" jg greater sama db "A = B $" jmp stop lebih db "A > B $" equal: enter db,0dh,0ah,'$' 19

Conditional Jump Instruksi conditional jump memindahkan kendali ke alamat tujuan ketika kondisi flag bernilai benar. Sintaknya sebagai berikut : JCond tujuan Alamat tujuan harus antara 128 - +127 byte dari lokasi sekarang. Cond mengacu pada kondisi flag, mengidentigikasikan satu atau lebih keadaan. Flag diset oleh instruksi aritmetik, perbandingan dan boolean. Setiap instruksi jump kondisional memeriksa satu atau beberapa flag, mengembalikan hasil benar atau salah. Jika hasilnya benar, maka jump dilakukan, sebaliknya jika salah maka tidak ada yang dilakukan dan instruksi selanjutnya akan dilakukan. Contoh : ORG 100h Proses: MOV AH,1 ; Servis untuk mengecek buffer keyboard INT 16h ; Laksanakan! JNZ EXIT ; Jika ada tombol yang ditekan, lompat Ke EXIT MOV AH,09 ; Servis untuk cetak kalimat LEA DX,Kal0 ; Ambil alamat efektif Kal0 INT 21h ; Cetak kalimat! JMP Proses ; Lompat ke Proses exit: INT 20h ; Selesai RET Kal0 DB 'Tekan sembarang tombol untuk berhenti! ' DB 13,10,'$' END Looping Loop adalah suatu rangkaian instruksi yang diulang. Banyaknya pengulangan mungkin dapat diketahui akhirnya, atau tergantung pada kondisi tertentu. Bentuknya sbb: LOOP label_tujuan 19

Pencacah untuk loop adalah register CX yang diinisialisasi ke loop_count. Ekesekusi instruksi LOOP menyebabkan CX turun (decremented) secara otomatis, dan jika CX tidak nol, maka control menstransfernya ke label_tujuan. Jika CX = 0, instruksi berikutnya setelah LOOP yang dikerjakan. Label_tujuan harus berada sebelum instuksi LOOP dengan tidak lebih dari 126 byte. Berikut ialah salah satu contoh pengaplikasian looping dalam mencetak beberapa karakter berbeda dalam hal ini huruf. ORG 100h Proses : MOV AH,02h ; Nilai servis MOV DL,'A' ; DL=karakter 'A' atau DL=41h MOV CX,10h ; Banyaknya pengulangan yang akan Ulang: INT 21h ; Cetak karakter!! INC DL ; Tambah DL dengan 1 LOOP Ulang ; Lompat ke Ulang INT 20h ; selesai RET END 20

Tugas Pendahuluan 1. Buatlah Program dengan memanfaatkan flow control Instruction sebagai berikut : masukkan 2 huruf : ZM sorting Huruf : MZ 21

2. Buatlah Program sebagai berikut : masukkan sebuah kalimat : KOMPUTER Jumlah Konsonan : 5 3. Buatlah Program dengan tampilan sebagai berikut : inputkan (Angka 1-9) : 5 Output * * * * * * * * * * * * * * * Latihan 1. Translasi bahasa tingkat tinggi ke bahasa assembly Bahasa Tingkat Tinggi IF AX < 0 THEN replace ax by ax END_IF Bahasa Assembly ; IF AX < 0 CMP AX,0 ;AX < 0? JNL END_IF ; no, exit ; THEN NEG AX END_IF FOR 80 kali DO Tampilkan * END_FOR TOP: MOV CX,80 MOV AH,2 MOV DL, * INT 21h LOOP TOP cl = 1 while (cl <=80) tampilkan * inc cl end while MOV CL, 0 WHILE_ : CMP CL, 80 JA END_WHILE MOV AH, 02H MOV DL, * INT 21H INC CL JMP WHILE_ 22

END_WHILE: RET 2. ORG 100H MULAI: MOV BX,0 MOV CX, 0 TAMBAH: CMP CX, 10 JA EXIT ADD BX, CX ADD CX, 2 JMP TAMBAH EXIT: RET 3. ORG 100H MULAI: MOV AH, 09H LEA DX, KAL1 INT 21H MOV AH, 01H INT 21H MOV BL,AL CMP BL, 'x' JE EXIT JMP MULAI EXIT: MOV AH, 09H LEA DX, KAL2 INT 21H RET KAL1 DB 13,10, 'INPUT KARAKTER : $' KAL2 DB 13,10, 'PROGRAM SELESAI $' Tugas Praktikum 1. Translasikan bahasa tingkat tinggi dibawah ini ke bahasa assembly : a. CX O WHILE (AX > = BX) CX CX - 1 AX = AX - BX 23

END WHILE b. CX 0 REPEAT AX = AX + CX BX = BX - 1 UNTIL (BX = 0) 2. Buatlah program untuk menjumlahkan data ke dalam register AX a. 1 + 4 + 7 + + 148 b. 100 + 95 + 90 +... +5 3. Buat program untuk menginputkan beberapa karakter (menggunakan service 01h), kemudian lakukan seleksi apakah terdapat huruf vokal. 4. Buat Program dengan tampilan sebagai berikut : Input angka (1-9) : 5 Output 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 24