Kamis, 23 Oktober 2014

Perintah lompat yang mengikuti perintah CMP






nama : ona anisa
kelas : 1cb
nim :061430700545

bukalah program command prompt
start --> all program > command prompt--> enter
laksanakan perintah berikut
C:\users\notebook>cd... (enter)
C:\users>cd...(enter)
C:\>d: (enter)
D:\>cd ona (enter) --------(ona-->nama folder dimana didalam folder tersebut sudah terdapat aplikasi TLINK,TASM,RTM)
D:\ona>edit (enter)

maka akan ke layar biru ketiklah

.model small
.code
org 100h

Tdata :  jmp proses
        BilA DB  '8'
        BilB DB  '7'
        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
        CMP AL,BilB
        JB  AKecil
        JE  Sama
        JA  ABesar

AKecil:
        LEA  DX,Kal0
        JMP Cetak

Sama :
        LEA  DX,Kal1
        JMP Cetak

ABesar :
        LEA  DX,Kal2

Cetak :
        MOV AH,09H
        INT 21H

EXIT : INT 20H

END Tdata

kemudian simpan dengan nama cex.asm
file-->save as
kemudian file-->exit
kita kembali ke layar hitam


d:\ona>tasm cex
d:\ona>tlink cex
d:\ona>tlink/t cex
d:\ona>cex
hasilnya
'bilangan A lebih besar dari bilangan B'

jika kita mengedit kembali angka-angka pada file cex.asm dengan cara
D:\ona>edit cex.asm(kembali ke layar biru yang telah kita masukkan tadi)
ubah seperti berikut

dengan cara yang sama hasilnya seperti ini




begitu juga dengan abjad alphabetis
jika kita masukkan seperti ini




dengan  proses yang sama, maka hasilnya seperti ini
dan sebaliknya jika kita masukkan data seperti ini
dengan proses yang sama maka hasilnya seperti ini :


keterangan :
LOMPAT TANPA SYARAT
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).
13.2. MEMBANDINGKAN DENGAN CMP
Perintah CMP(Compare) digunakan untuk membandingkan 2 buah operand, dengan syntax:
CMP Operand1,Operand2
CMP akan membandingkan operand1 dengan operand2 dengan cara mengurangkan operand1 dengan operand2. CMP tidak mempengaruhi nilai Operand1 dan Operand2, perintah CMP hanya akan mempengaruhi flags register sebagai hasil perbandingan. Adapun flag-flag yang terpengaruh oleh perintah CMP ini adalah:
- 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.
perintah Lompat                           | Kondisi
-----------------------------+----------------------------------
JA <Jump If Above>                   | Lompat, jika Operand1 > Operand2
                                                     | untuk bilangan tidak bertanda
JG <Jump If Greater>                  | Lompat, jika Operand1 > Operand2
                                                     | untuk bilangan bertanda
JE <Jump If Equal>                     | Lompat, jika Operand1 = Operand2
JNE <Jump If Not Equal>           | Lompat, jika Operand1 tidak sama
                                                     | dengan Operand2
JB <Jump If Below>                   | Lompat, jika Operand1 < Operand2
                                                      | untuk bilangan tidak bertanda
JL <Jump If Less>                        | Lompat, jika Operand1 < Operand2
                                                      | untuk bilangan bertanda
JBE <Jump If Below or Equal>   | Lompat, jika operand1 <= Operand2
                                                      | untuk bilangan tidak bertanda
JLE <Jump If Less or Equal>       | Lompat, jika Operand1 <= Operand2
                                                       | untuk bilangan bertanda
JAE <Jump If Above or Equal>    | Lompat, jika Operand1 >= Operand2
                                                        | untuk bilangan tidak bertanda
JGE <Jump If Greater or                | Lompat, jika Operand1 >= Operand2
Equal>                                            | untuk bilangan bertanda
-----------------------------+----------------------------------
Gambar 13.1. Perintah Jump yang mengikuti CMP

download files

Tidak ada komentar:

Posting Komentar