MASIGNALPHAS2101
6680671983845063762

Pemrograman dengan Bahasa Assembly - Bagian 8 - OPERASI ARITMATIKA

Pemrograman dengan Bahasa Assembly - Bagian 8 - OPERASI ARITMATIKA
Add Comments
8/05/2016



OPERASI ARITMATIKA

I. OPERASI PERNAMBAHAN
1. ADD

Untuk menambah dalam bahasa assembler digunakan perintah ADD dan ADC serta INC. Perintah ADD digunakan dengan syntax :

ADD Tujuan,Asal
Perintah ADD ini akan menambahkan nilai pada Tujuan dan Asal. Hasil yang didapat akan ditaruh pada Tujuan, dalam bahasa pascal sama dengan instruksi Tujuan:=Tujuan + Asal. Sebagai contohnya:
MOV AH,15h ; AH:=15hMOV AL,4 ; AL:=4ADD AH,AL ; AH:=AH+AL, jadi AH=19h
Perlu anda perhatikan bahwa pada perintah ADD ini 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).

Mungkin ada yang bertanya-tanya, apa yang akan terjadi bila Tujuan tempat hasil penjumlahan disimpan tidak mencukupi seperti pertambahan 1234h dengan F221h.
1234 h Biner --> 0001 0010 0011 0100F221 h Biner --> 1111 0010 0010 0001-------------- 10455 h 1 0000 0100 0101 0101
Pada pertambahan diatas dapat dilihat bahwa pertambahan bilangan 1234 dengan F221 akan menghasilkan nilai 10455. Supaya lebih jelas dapat anda lihat pada pertambahan binernya dihasilkan bit ke 17, padahal register terdiri atas 16 bit saja. Operasi pertambahan yang demikian akan menjadikan carry flag menjadi satu, Contoh :
MOV AX,1234h ; NIlai AX:=1234h dan carry=0MOV BX,0F221h ; Nilai BX:=F221h dan carry=0ADD AX,BX ; Nilai AX menjadi 0455h dan carry=1
2. ADC
Perintah ADC digunakan dengan cara yang sama pada perintah ADD, yaitu :
ADC Tujuan,Asal
Perbedaannya pada perintah ADC ini Tujuan tempat menampung hasil pertambahan Tujuan dan Asal ditambah lagi dengan carry flag (Tujuan:=Tujuan+Asal+Carry). Pertambahan yang demikian bisa memecahkan masalah seperti yang pernah kita kemukakan, seperti pertambahan pada bilangan 12345678h+9ABCDEF0h. Seperti yang telah kita ketahui bahwa satu register hanya mampu menampung 16 bit, maka untuk pertambahan seperti yang diatas bisa anda gunakan perintah ADC untuk memecahkannya, 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 = ACF1
Hasil 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.

3. INC
Perintah INC(Increment) digunakan khusus untuk pertambahan dengan 1. Perintah INC hanya menggunakan 1 byte memory, sedangkan perintah ADD dan ADC menggunakan 3 byte. Oleh sebab itu bila anda ingin melakukan operasi pertambahan dengan 1 gunakanlah perintah INC. Syntax pemakainya adalah :
INC Tujuan
Nilai pada tujuan akan ditambah dengan 1, seperti perintah Tujuan:=Tujuan+1 dalam Turbo Pascal. Tujuan disini dapat berupa suatu register maupun memory. Contoh : perintah INC AL akan menambah nilai di register AL dengan 1. Adapun flag yang terpengaruh oleh perintah ini adalah OF,SF,ZF,AF dan PF.

4. PROGRAM PENAMBAHAN DAN DEBUG
Setelah apa yang telah kita pelajari, marilah sekarang kita menjadikannya sebuah program dengan semua contoh yang telah diberikan.


PROGRAM : TAMBAH.ASM ;FUNGSI : MELIHAT PENAMBAHAN YANG DILAKUKAN OLEH BERBAGAI PERINTAH========S’to=; .MODEL SMALL .CODE ORG 100hProses :

MOV AH,15h ; AH:=15h MOV AL,4 ; AL:=4 ADD AH,AL ; AH:=AH+AL, jadi AH=19h MOV AX,1234h ; NIlai AX:=1234h dan carry=0 MOV BX,0F221h ; Nilai BX:=F221h dan carry=0 ADD AX,BX ; AX:=AX+BX, jadi nilai AX=0455h MOV AX,1234h ; AX = 1234h CF = 0 MOV BX,9ABCh ; BX = 9ABCh CF = 0 MOV CX,5678h ; BX = 5678h CF = 0 MOV DX,0DEF0h ; DX = DEF0h CF = 0 ADD CX,DX ; CX = 3568h CF = 1 ADC AX,BX ; AX = AX+BX+CF = ACF1 INC AL ; AL:=AL+1, nilai pada AL ditambah 1 INT 20hEND Proses

tag:
operasi aritmatika pada bahasa assembly

Hestech Indonesia

Innovasi di bidang Teknologi, Listrik, Teknik Komputer dan gaya Hidup. Info lainnya tentang praktik konservasi berbasis Sains, inovasi, dan kearifan lokal