Transcript
Page 1: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

Pemograman Bahasa Rakitan Assembly Oleh : Ninik Yuliana sir200902 A.Pengertian

Bahasa Assembly itu sendiri merupakan bahasa pemograman yang tergolong dalam pemrograman bahasa tingkat rendah (Low Level Lenguage) dan setingkat diatas bahasa mesin ( Machine Language).

Dalam pemograman assembly kita akan menemukan apa yang disebut dengan register .Register itu sendiri merupakan memori dalam mikroprosesor yang bekerja dengan kecepatan yang sangat tinggi .dan jenis –jenis register itu sendiri dibagi menjadi beberapa bagian yaitu

1.Segmen Register Register Kegunaan CS (Code Segmen) Menujukan tempat segmen yang sedang aktif SS (Stack Segmen) Untuk letak segmen yang digunakan o/ Stack DS (Data Segmen ) Ketempat segmen dimana data-data program disimpan ES (Extra Segmen) Register bonus yang tidak memiliki tugas khusus

2.Pointer dan Index Register Register Pasangan Register Kegunaan SP(Stack Pointer) SS :SP u/ menunjukan alamat dari stack BP(Base Pointer) SS:BP u/ mencatat almt dimemori t4 data SI (Source Index) - Sama spt Register (DI) DI(Dstination indx) - u/operasi string dengan m’akses secara

lngsng pd alamat yg ditunjukan ol ke 2 register

3.General Purpose Register Register Kegunaan AX u/ op. aritmatika terutama dlm pembagian & pengurangan BX u/ menunjukan suatu alamat offset dr suatu segmen CX u/ op.looping dmn register menentukan bnyk-nya looping DX u/ menampung sisa hasil pembagian 16 bit

Page 2: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

4.. Index Pointer Register Register IP berpasangan dengan CS(CS:IP) menunjukkan alamat dimemory tempat dari intruksi(perintah) selanjutnya yang akan dieksekusi. Register IP juga merupakan register 16 bit. Pada prosesor 80386 digunakan register EIP yang merupakan register 32 bit. 5.Flags Register Flag register menujukan kondisi sari suatu kaadaan [ya atau tidak ].karena setiap keadaan dapat digunakan 1 bit saja ,maka sesuai dengan jumlah bitnya,flag register hanya mampu mencatat sampai 16 keaddan .

Flag Kegunaan - OF <OverFlow Flag>. Jika terjadi OverFlow pada operasi aritmatika,

bit ini akan bernilai 1.

- SF <Sign Flag>. Jika digunakan bilangan bertanda bit ini akan bernilai 1

- ZF <Zero Flag>. Jika hasil operasi menghasilkan nol, bit ini akan bernilai 1.

- CF <Carry Flag>. Jika terjadi borrow pada operasi pengurangan atau carry pada penjumlahan, bit ini akan bernilai 1.

- PF <Parity Flag>. Digunakan untuk menunjukkan paritas bilangan. Bit ini akan bernilai 1 bila bilangan yang dihasilkan merupakan bilangan genap

- DF <Direction Flag>. Digunakan pada operasi string untuk menunjukkan arah proses.

- IF <Interrupt Enable Flag>. CPU akan mengabaikan interupsi yang terjadi jika bit ini 0.

- TF <Trap Flag>. Digunakan terutama untuk Debugging, dengan operasi step by step.

- AF <Auxiliary Flag>. Digunakan oleh operasi BCD, seperti pada perintah AAA.

- NT <Nested Task>. Digunakan pada prosesor 80286 dan 80386 untuk menjaga jalannya interupsi yang terjadi secara beruntun.

- IOPL <I/O Protection level>. Flag ini terdiri atas 2 bit dan digunakan pada prosesor 80286 dan 80386 untuk mode proteksi

- PE <Protection Enable>. Digunakan untuk mengaktifkan mode proteksi. Flag ini akan bernilai 1 pada mode proteksi dan 0 pada mode real.

- MP <Monitor Coprosesor> Digunakan bersama flag TS untuk menangani terjadinya intruksi WAIT.

- EM <Emulate Coprosesor>. Flag ini digunakan untuk mensimulasikan coprosesor 80287 atau 80387

- TS <Task Switched>. Flag ini tersedia pada 80286 keatas. - ET <Extension Type> Flag ini digunakan untuk menentukan jenis

coprosesor80287 atau 80387.

Page 3: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

- RF <Resume Flag>. Register ini hanya terdapat pada prosesor 80386 keatas

- VF <Virtual 8086 Mode>. Bila flag ini bernilai 1 pada saat mode proteksi, mikroprosesor akan memungkinkan dijalankannya aplikasi mode real pada mode proteksi. Register ini hanya terdapat pada 80386 keatas

Perintah –Perintah Debug • A : Merakit intruksi simbolik (kode mesin) • D : menampilkan isi suatu daerah memori • E : memasukan data ke memori yang dimulai pad lokasi tertentu • G : run executable program ke memori • N : menamai program • P : eksekusi sekumpulan intruksi yang terkait • Q : quit • R : menampilkan isi satu atau lebih register • T : trace isi sebuah intruksi • U : unassembled kode mesin ke kode simbolik • W : menulis program ke disk

Langkah-langkah Pemrograman Bahasa assembly 1.Buatlah Folder asm di C:/ 2.Dan untuk menuliskan program assemblynya kita bisa gunakan notepad .dan penyimpananya dimasukan di folder ASM yang sudah kita buat tadi, Dan penyimpanannya kita tambahkah .asm misalnya latihan.asm 3.Dan selanjutnya yang kita lakukan adalah meng-compire /menjalankan program tadi apakah sudah benar atau masih terdapat kesalahan yaitu dengan Klik AllProgram –Accessorise- pilih Command Prompt. Apabila sudah kita pilh maka akan munjul tampilan seperti ini

Page 4: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

Apabila sudah masuk ke command prom berarti kita tinggal mengejalankan program kita tadi .yaitu dengan langkah-langkah dibawah ini. yang pertama cara supaya kita bisa masuk kedalam folder penyimpanan asm yang

sudah kita simpan tadi yaitu di C:/

selanjutnya kita masukan ke TASM {NAMA PROGRAM }.asm TASM digunakan untuk mengetest apakah masih terdapat kesalahn dalam program atau tidak.

Dan kita masukan ke TLINK / t { NAMA PROGRAM }.OBJ TLINK / t untuk me link-kaan program menjadi program COM TLINK untuk melink-kan program menjadi program EXE

Page 5: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

Selanjutnya kita tinggal memanggil program kita misalnya Lathan,.COM. Kemudian ENTER.

Cara cepat mencompire-nya lebih cepat maka kita digukan dengan extensi .BAT. Buka notepad baru dan ketikasn program seperti ini @echooff Tasm {nama program} .asm Tlink/t {nama program} .obj

{nama program}.com kemudian di folder ASM dan simpan misalnya Latihan.bat

Page 6: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

Praktikum-praktikum Bahasa Assembly

Pencetakan Satu Karakter Praktikum 1 Program pencetakan satu karakter ‘ A ’ .MODEL SMALL ; memulai program .CODE ORG 100h ; menujukan bahwa program yang akan dibuat berupa.COM Mulai: Mov ah,02 ; service unk mencetak satu karakter Mov dl , ‘A’ INT 21h ; interrupt untk menampilkan / mencetak isi program INT 20h ; intrurrupt untk menghentikan program End mula ; mengahiri program Hasil program : pencetakan satu Karakter ‘A’

Ket : pada saat terjadi interuptsi pada 21h,maka register akan melihat isi pada AH Jika berisi 02,maka akan mencetak satu karaktr berdasarka kode ASCII yang terdapat di DL.

Page 7: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

PENCETAKAN BEBERAPA KARAKTER dengan Service 02h

Praktikum 2 Program pencetakkan beberapa karakter dengan menggunakan service 02h. Program.misal kita akan mencetak ‘ BUNGA ’

.MODEL SMALL .CODE org 100h Mulai: mov ah,02 ; service mencetak satu karakter mov dl,’B’ ; register yang akan dicetak B INT 21h mov dl,’U’ ; register yang akan dicetak U INT 21h mov dl,’N’ ; register yang akan dicetak N INT 21h mov dl,’G’ ; register yang akan dicetak G INT 21h mov dl,’A’ ; register yang akan dicetak A INT 21h INT 20h End mulai Hasil Program :Pencetakan beberapa karakter dg menggunakan servive 02h

Ket : Pencetakan yang digunakan masih menggunakan service 02h,tetapi disini masih menggunakan secara manual yaitu pada DL.pada program masih menggunakan DL secra berulang-ulang yaitu akan disi sejumlah karakter yang akan ditampilkan.

Page 8: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

Perulangan (LOOP) Dalam pencetakan beberapa karakter,selain menggunakan service 02h dapat juga menggunakan looping atau dengan register CX. Register CX digunakan secara khusus pada operasi looping dimana register ini menentukan berapa banyaknya looping yang akan terjadi. Praktikum 3 Program pencetakan karakter huruf ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA .MODEL SMALL .CODE ORG 100h mulai: mov ah,02h ;service mencetak karakter mov dl,'A' mov cx,25 ; akan melooping sebanyak 25 ulang: int 21h inc dl ; tambah DL sebanyak 1 loop ulang ; akan mengulang label ulang sebanyak 25 kali mov dl,'Y' mov cx,25 maning: int 21h ; akan mencetak / menampilkan karakter dec dl ; kurangi DL senyak 1 loop maning ; akan menulang label maning sebanyak 25 kali int 20h End mulai

Page 9: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

Hasil program praktikum 3 : Mencetak karakter ‘ ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA ’

Ket : looping atau perulangan ini sama dengan perintah jump.semua instruksi loop menggunakan register CX memiliki 16 bit dan nilai maksumum dapat mencangkau 65535. Praktikum 4 Program menampilkan karakter ‘ BDFHJLNPRTVXZ ‘ .MODEL SMALL .Code org 100h mulai: mov ah,02h ;service mencetak karakter mov dl,'B' mov cx,13 ;register untuk me-looping ulang: int 21h inc dl ;Tambah DL Sebanyak 1 inc dl loop ulang ;Lompat ke label ulang int 20h ;service menghentikan program end mulai

Page 10: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

Hasil program praktikum 4

Membuat Karakter Huruf menjadi Berwarna Tadi kita sudah bisa menampilkan beberapa karakter,dan sekarang kita akan mengmodif tampilan karakter tdi menjadi tulisan berwarna agar lebih menarik.dengan menggunakan register BL. Praktikum 5 Program tampilan karakter berwarna .MODEL SMALL .CODE ORG 100h mulai: mov ah,09h ;service untuk mencetak kalimat mov al,'A' ;masukan A ke AL mov bl,00000001b ;service mengubah karakter menjadi berwarna mov cx,25 ;register untuk me-looping ulang: int 10h inc al ;tambah AL inc bl ;tambah BL loop ulang int 20h end mulai Hasil program praktikum 5

Page 11: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

Membuat Warna Background Praktikum 6 Program membuat warna background .model small .code org 100h mulai: mov ah, 09h ;service untuk mencetak kalimat mov al, 'A’ mov bl, 01001101b ; service membuat baground warna mov cx, 10 ;looping senyak 10 kali ulang: int 10h inc al ;tambah AL loop ulang ;lompat ke ulang int 20h end mulai Hasil Program Praktikum 6

Page 12: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

Membuat Program dengan JMP Perintah JMP (jump) merupakan perintah yang digunakan untuk melompat daerah data progam. Praktikum 7 .Model Small .Code org 100h mulai: jmp proses vkal db ' my love $ ' vkalr db 'is blink $ ' proses : mov ah,09h lea dx,vkal int 21h lea dx,vkalr int 21h int 20h end mulai Hasil program Prktikum 7

Ket : LEA : Perintah untuk mendapatkan alamat dari sebuah variable.. JMP: Perintah untuk melakukan lompatan ke label tertentu. DB (Define Byte) : suatu jenis data yang besarnya 1 byte

Page 13: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

Program Pengoprasian Aritmatika Praktikum 8 =========================================================================== .model small .code org 100h proses : mov ah,15h ;AH = 15 h mov al,4 ;AL= 4 add ah,al ;AH = AH + AL = 19h mov ax,1234h ;AX=1234 h CF=0 mov bx,0f221h ;BX=01221h add ax,bx ;AX=AX+BX=1234h+01221h =2455h mov bx,9ABCh ;BX=9ABCh CF=0 mov cx,5678h ;BX=5678h CF=0 mov dx,0DEF0h :DX=DEF0h CF=0 add cx,dx ;5678h+0DEF0h adc ax,bx ;1234h+9ABCh inc al int 20h end proses =========================================================================== Ket ; ADD , ADC dan INC digunakan untuk menambah. ADD Tujuan,Asal Mov ah,15h Mov al,4 Add ah,al ;ah=ah+al jadi AH=19h Dan pada ADD ini antara tujuan dan asal harus mempunyai daya tampung yang sama,jika AH =8bit dan AL=8bit , AX=16bit dan BX= 16 bit. Adapun hasil penjumlahan akan ditampung pada register AX:CX yaitu ACF13568h .adapun Flag-flag yang terpengaruh oleh perintah ADD dan ADC adalah CF,PF,AF,ZF,SF dan OF INC (increment)digunakan khusus untuk pertambahan dengan 1.

Page 14: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

Membuat Program Password

FLOWCHART

praktikum 9 .Model Small .Code org 100h mulai: jmp proses vkal db 10, 'ENTER PASSWORD:',13,10,' $ ' vkalr db 13,10,'INCORECT $' vkals db 10, 'WELCOME GUYS ',10,' $' proses: mov ah,09h lea dx,vkal int 21h mov ah,08h

Page 15: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

int 21h cmp al,'Y' JE OK1 JNE NO1 OK1: mov ah,02h mov dl,2Ah int 21h mov ah,08h int 21h cmp al,'O' JE OK2 JNE NO2 NO1: mov ah,09h lea dx,vkalr int 21h jmp proses OK2: mov ah,02h mov dl,2Ah int 21h mov ah,08h int 21h cmp al,'U' JE OK3 JNE NO3 NO2: mov ah,09h lea dx,vkalr int 21h jmp proses OK3: mov ah,02h mov dl,2Ah int 21h mov ah,08h int 21h cmp al,'R'

Page 16: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

JE OK4 JNE NO4 NO3: mov ah,09h lea dx,vkalr int 21h jmp proses OK4: mov ah,02h mov dl,2Ah int 21h mov ah,09h lea dx,vkals int 21h int 20h NO4: mov ah,09h lea dx,vkalr int 21h jmp proses end mulai Hasil program praktikum 9

KET: LEA : Perintah untuk mendapatkan alamat dari sebuah variable.. JMP: Perintah untuk melakukan lompatan ke label tertentu. DB (Define Byte) : suatu jenis data yang besarnya 1 byte JE ( JUMP IF EQUAL ):Lompat ,jika operant1=operant 2 JNE (JUMP NOT EQUAL) :Lompat jika operant 1 tidak sama dengan operant 2

Page 17: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

Membuat Program Inputan Praktikum 10 .Model Small .Code org 100h Proses : jmp mulai vkal db 13,' apakah anda sudah belajar :??(y/t) $ ' vkalr db 10, ' Berarti anda bisa memahaminya !! $ ' vkals db 10, ' sayang sekali belum !! $ ' Mulai : mov ah,09h lea dx,vkal int 21h mov ah,01h int 21h cmp al,'y' cmp al,'Y' Je ya JNE Tidak ya: mov ah,09h lea dx,vkalr int 21h int 20h Tidak: mov ah,09h lea dx,vkals int 21h int 20h end proses

Page 18: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

Hasil Program

Ket : Pada program diatas adalah suatu perbandingan yang apabila inputan yang diberikan berupa “ Y” Maka akan mendeteksi yang sama dengan operant1 atau JE ya:”Berarti anda bisa memahaminya!! tapi tidak berlaku jika yang kita masukan adalah “y” atau huruf-huruf yang lain maka hasilnya akan mendeteksi yang JNE tidak: “sayang sekali belum” !! Jika Inputan yang berikan adalah “T” maka akan mendeteksi JNE tidak. LEA : Perintah untuk mendapatkan alamat dari sebuah variable.. JMP: Perintah untuk melakukan lompatan ke label tertentu. DB (Define Byte) : suatu jenis data yang besarnya 1 byte JE ( JUMP IF EQUAL ):Lompat ,jika operant1=operant 2 JNE (JUMP NOT EQUAL) :Lompat jika operant 1 tidak sama dengan operant 2 CMP(COMPERE) :Digunakan untuk membandingkan antara operant 1dengan operant2.

Page 19: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

Membuat program pencarian huruf Praktikum 11 .Model Small .Code org 100h data: jmp mulai asal db 'widyautama ',13,10,'$' kata db 'masukan huruf yang dicari : ',13,10,' $' ket1 db 'Huruf ditemukan ',13,10,'$' ket2 db 'huruf tidak ditemukan ',13,10,' $' mulai: xor bx,bx ;cek panjang kalimat cek : mov al,asal [bx] ;pindahan asal [index] ke al inc bx cmp al,'$' jne cek dec bx mov cx,bx xor bx,bx mov ah,9 mov dx,offset asal int 21h mov ah,2 mov dl,13 int 21h

Page 20: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

mov dl,10 int 21h mov ah,9 mov dx,offset kata int 21h mov ah,1 int 21h ulang: mov dl,asal [bx] inc bx cmp dl,'$' je salah cmp al,dl jne ulang jmp benar salah: mov ah,2 mov dl,13 int 21h mov dl,10 int 21h mov ah,9 mov dx,offset ket2 int 21h jmp barisbaru benar: mov ah,2 mov dl,13

Page 21: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

int 21h mov dl,10 int 21h mov ah,9 mov dx,offset ket1 int 21h jmp barisbaru barisbaru: mov ah,2 mov dl,13 int 21h mov dl,10 int 21h int 20h end data Hasil program praktikum 11

Page 22: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

Program POP dan PUSH Pop Dan Push dapat kita bayingkansebagai sebuah tabung yang panjang.sedangkan nilai pada register dapat dibayangkan berbentuk koin yang dimasukan dalam tabung tersebut.dan push itu sendiri diibaratkan kita sedang memasukan koin PUSH AX :Simpan nilai AX pada stack PUSH BX: Simpan nilai BX pada stack PUSH CX: Simpan nilai CX pada stack Sedangkan POP akan mengambil koin nilai pada stack yang paling atas dan dimasukan pada register 16 bit .dari sini bisa kita lihat bahwa data terakhir dimasukan akan merupakan yang pertama dikeluarkan .Inillah sebanya operasi stack dinamakan LIFO ( Last In First Out ) Sebagai contoh untuk mengambil nilai dari register AX,BX dan CX yang disimpan pada stack harus dilakukan pada register CX dahulu brulah BX dan AX seperti : POPCX: Ambil nilai pada puncak stack,masukan ke CX POPBX: Ambil nilai pada puncak stack,masukan ke BX POPAX: Ambil nilai pada puncak stack,masukan ke AX Bila terbalik dalam menngambil nilai pada stack dengan POP AX kemudian POP BX dan POP CX,maka nilai yang akan didapatkan pada register AX,BX,CX akan terbalik. Praktikum 13 .Model Small .Code org 100h mulai: mov ax,15 mov bx,80 add ax,bx mov bx,10 xor cx,cx ulang: xor dx,dx div bx push dx inc cx cmp ax,0 jne ulang cetak: pop dx add dl,'0' call cetak_k loop cetak

Page 23: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

int 20h cetak_k proc near mov ah,02 int 21h ret cetak_k endp end mulai Hasil Program Praktikum 14 .Model Small .Code org 100h mulai: mov bl,10 mov al,14 div bl push ax ;simpan nilai ax pd stack mov dl,al add dl,30h mov ah,2 int 21h pop ax ;ambil nilai pada puncak stack masukan ke ax

Page 24: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

mov dl,ah mov ah,2 add dl,30h int 21h int 20h end mulai Hasil program Praktikum 15 .model small .code org 100h Tdata: jmp proses test_angka DW 345 Proses: mov ax,test_Angka mov bx,10 xor cx,cx ulang: xor dx,dx div bx push dx inc cx cmp ax,0 jne ulang cetak:

Page 25: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

pop dx add dl,'0' mov ah,02 int 21h loop cetak int 20h end tdata Hasil program Praktikum 16 code segment assume cs:code org 100h start: jmp mulai tanya db 'hello','$' mulai: mov ah,09h mov dx,offset tanya int 21h mov ah,01h int 21h cmp al,'y' jne boot int 20h boot: int 18h code ends end start

Page 26: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

Hasil program Praktikum 17 .model small .code org 100h tdata: jmp res_kan pesan db 'dibelokan' noint equ 05h bag_res proc push ax push bx push dx push es push di push ds push si mov ax,1300h mov bl,01001111b mov bh,00h mov,20h mov dh,12h mov cx,44h push cx push es lea bp,pesan 1nt 10h push si push ds push di push es push dx push cx

Page 27: Pemograman Bahasa Rakitan Assembly

Pemrograman Bahasa Assembly

Ninik Yuliana TI / SIR200902

STMIK WIDYA UTAMA PURWOKERTO ‘09

push bx push ax bag_res endp res_kan : mov ah,25h mov al,noint lea dx,res_kan int 27h end tdata Lampiran Code ASCII


Top Related