OPERASI ARITMATIKA
description
Transcript of OPERASI ARITMATIKA
pertemuan 4 1
OPERASI ARITMATIKAOPERASI PENAMBAHAN 1. ADD• Untuk operasi penambahan digunakan perintah ADD dan ADC serta
INC. • Syntax : ADD Tujuan,Asal• Perintah ADD akan menambahkan nilai pada Tujuan dan Asal. Hasil
yang didapat akan ditaruh pada Tujuan. contoh :MOV AH,15h ; AH:=15hMOV AL,4 ; AL:=4ADD AH,AL ; AH:=AH+AL, jadi AH=19hPada perintah ADD antara Tujuan dan Asal harus mempunyai daya
tampung yang sama, misalnya register AH(8 bit) dan AL(8 bit), AX(16 bit) dan BX(16 bit).
• Contoh : pertambahan 1234h dengan F221h.• 1234 h Biner --> 0001 0010 0011 0100• F221 h Biner --> 1111 0010 0010 0001• ---------- +--------------------------------------- +• 10455 h 1 0000 0100 0101 0101
pertemuan 4 2
• nilai binernya dihasilkan bit ke 17, padahal register terdiri atas 16 bit saja.
• Operasi pertambahan diatas menjadikan carry flag menjadi satu, Contoh :
• MOV AX,1234h ; NIlai AX:=1234h dan carry=0
• MOV BX,0F221h ; Nilai BX:=F221h dan carry=0
• ADD AX,BX ; Nilai AX menjadi 0455h dan carry=1
pertemuan 4 3
2. ADC• Perintah ADC digunakan dengan cara yang sama
pada perintah ADD, yaitu :• ADC Tujuan,Asal• Pada perintah ADC, Tujuan tempat menampung
hasil pertambahan ditambah lagi dengan carry flag (Tujuan:=Tujuan+Asal+Carry).
Contoh:MOV AX,1234h ; AX = 1234h CF = 0MOV BX,9ABCh ; BX = 9ABCh CF = 0MOV CX,5678h ; BX = 5678h CF = 0MOV DX,0DEF0h ; DX = DEF0h CF = 0ADD CX,DX ; CX = 3568h CF = 1ADC AX,BX ; AX = AX+BX+CF = ACF1Hasil penjumlahan akan ditampung pada register
AX:CX yaitu ACF13568h. Adapun flag-flag yang terpengaruh oleh perintah ADD dan ADC ini adalah CF,PF,AF,ZF,SF dan OF.
pertemuan 44
3. INC• Perintah INC(Increment) pertambahan
dengan 1. INC hanya menggunakan 1 byte memory, sedang perintah ADD dan ADC menggunakan 3 byte
Syntax : INC Tujuan• Nilai pada tujuan akan ditambah dengan
1. Tujuan disini dapat berupa suatu register maupun memory.
• Contoh : perintah INC AL akan menambah nilai di register AL dengan 1.
pertemuan 4 5
OPERASI PENGURANGAN2.1. SUB• syntax: SUB Tujuan,Asal • Perintah SUB akan mengurangkan nilai pada
Tujuan dengan Asal. Hasil yang didapat akan ditaruh pada Tujuan
Contoh :MOV AX,15 ; AX:=15MOV BX,12 ; BX:=12SUB AX,BX ; AX:=15-12=3SUB AX,AX ; AX=0Untuk menolkan suatu register bisa kita
kurangkan dengan dirinya sendiri seperti SUB AX,AX.
pertemuan 4 6
2.2. SBB• Operasi pengurangan dengan bilangan yang besar(lebih dari 16 bit).• Bisa kita gunakan perintah SUB disertai dengan SBB(Substract With Carry). • Syntax: SBB Tujuan,Asal• Perintah SBB mengurangkan nilai Tujuan dengan Asal, hasil yang didapat
dikurangi lagi dengan Carry Flag(Tujuan:=Tujuan-Asal-CF).;================================;; PROGRAM : KURANG.ASM ;; FUNGSI : MENGURANGKAN ANGKA ;; 122EFFF-0FEFFFF ;;================================;.MODEL SMALL.CODEORG 100hTData :JMP Proses ; Lompat ke ProsesALo EQU 0EFFFhAHi EQU 122hBLo EQU 0FFFFhBhi EQU 0FEhHslLo DW ?HslHi DW ?Proses :
pertemuan 4 7
MOV AX,ALo ; AX=EFFFh
SUB AX,Blo ; Kurangkan EFFF-FFFF, jadi AX=F000
MOV HslLO,AX ; HslLo bernilai F000
MOV AX,AHi ; AX=122h
SBB AX,BHi ; Kurangkan 122-FE-Carry, AX=0023
MOV HslHi,AX ; HslHi bernilai 0023
INT 20h ; Kembali ke DOS
END TData
pertemuan 4 8
Mendefinisikan suatu nilai constanta dan variabel dengan :ALo EQU 0EFFFhAHi EQU 122hBLo EQU 0FFFFhBhi EQU 0FEhHslLo DW ?HslHi DW ?• Data yang didefinisikan dengan perintah EQU tidak dapat dirubah.
Dengan perintah EQU kita dapatka bahwa ALo = 0EFFF, AHi=122, BLo=FFFF dan BHi=0FE. Untuk menampung hasil dari pengurangan A-B(122EFFF-0FEFFFF) , adalah HslLo dan HslHi.
• Tanda '?' digunakan untuk menyatakan tempat yang dipesan sebanyak 1 word(DW) tidak diberikan data awal yang akan terdapat pada varibel
tersebut(HslLo dan HslHi). • Untuk mengurangkan angka 122EFFF dengan 0FEFFFF kurangkan
word rendah dari angka tersebut dahulu, yaitu EFFF- FFFF. Ini dikarenakan daya tampung register hanya 16 bit. Pengurangan EFFF-FFFF akan menyebabkan terjadinya peminjaman(Borrow), hasil word rendah(F000) yang didapatkan kemudian kita simpan pada variabel HslLo.
122 EFFF FE FFFF------------- -023 F000
pertemuan 4 9
2.3. DEC
• Perintah DEC(Decrement) digunakan khusus untuk pengurangan dengan 1.
• Perintah DEC hanya menggunakan 1 byte memory, perintah SUB dan SBB menggunakan 3 byte.
Syntax: DEC Tujuan
• Nilai pada tujuan akan dikurangi 1. Tujuan disini dapat berupa suatu register maupun memory.
pertemuan 4 10
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;; FUNGSI : MENCETAK KARAKTER ;; “E".."A" DENGAN ;; INT 21h SERVIS 02 ;;==========================;.MODEL SMALL.CODEORG 100hProses :MOV AH,02h ; Nilai servisMOV DL,'E' ; DL=5AhMOV CX,5 ; Banyaknya pengulangan yang akan dilakukanUlang:INT 21h ; Cetak karakter !!DEC DL ; Kurang DL dengan 1LOOP Ulang ; Lompat ke UlangINT 20hEND ProsesOutput Mencetak karakter "E".."A"
pertemuan 4 11
3. OPERASI PERKALIAN• Untuk perkalian bisa digunakan perintah MUL• syntax: MUL Sumber • Sumber dapat berupa suatu register 8
bit(Mis:BL,BH,..), register16 bit(Mis: BX,DX,..) atau suatu varibel.
• Ada 2 pada perintah MUL, sesuai dengan jenis perkalian 8 bit atau 16 bit. Bila Sumber merupakan 8 bit seperti MUL BH, komputer akan mengambil nilai pada BH dan nilai pada AL untuk dikalikan. Hasilnya disimpan pada register AX.
• Bila sumber 16 bit seperti MUL BX, komputer akan mengambil nilai pada BX dan nilai pada AX untuk dikalikan. Hasilnya disimpan pada register DX dan AX(DX:AX), jadi register DX menyimpan Word tingginya dan AX menyimpan Word rendahnya.
pertemuan 4 12
4. PEMBAGIAN• Syntax: DIV Sumber • Bila sumber merupakan operand 8 bit seperti
DIV BH, komputer mengambil nilai pada register AX dan membaginya dengan nilai BH. Hasil pembagian 8 bit disimpan pada register AL dan sisa dari pembagian disimpan pada register AH.
• Bila sumber operand 16 bit seperti DIV BX, komputer mengambil nilai pada register DX:AX dan membaginya dengan nilai BX. Hasil pembagian 16 bit akan disimpan pada register AX, sisa dari pembagian disimpan pada register DX.