1. modul bhs rakitan-01

47
MODUL 1 PENGENALAN ASSEMBLER A. DASAR Dalam lingkungan Sistem Operasi DOS atau MS DOS dikenal dua jenis executable file yaitu file berextensi EXE dan file ber extensi COM, pertimbangan digunakan kedua jenis file executable ini didasarkan pada jumlah data dan code yang terlibat dalam program. Jenis executable file yang akan dihasilkan oleh assembler ditentukan oleh compiler directive yang digunakan dalam program dan cara linking program tersebut. Kapabilitas computer dapat diketahui dari kumpulan instruksi dasar (Basic Instriction Set). Untuk kemudahan, dalam assembler instruksi dasar ini dipresentasikan dalam bentuk Kode Mneumonic. Kode Mneumonic tersebut diantaranya adalah Instruksi misalnya MOV dan pengakses program yaitu Interupsi (INT nomor). B. TUJUAN. Tujuan dari praktikum adalah : Mengetahui cara membuat executable file menggunakan turbo assembler versi 5.0 atau yang lain. Mengetahui penggunaan instruksi, sebagai contoh misalnya untuk keperluan transfer data (MOV). Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 1 Modul Praktikum Bahasa Rakitan

Upload: sufri-kangeanan

Post on 22-Oct-2015

28 views

Category:

Documents


0 download

DESCRIPTION

Modul bahasa rakitanOleh : Suhana Minahasa

TRANSCRIPT

MODUL 1

PENGENALAN ASSEMBLER

A. DASAR

Dalam lingkungan Sistem Operasi DOS atau MS DOS dikenal dua jenis executable file yaitu file berextensi EXE dan file ber extensi COM, pertimbangan digunakan kedua jenis file executable ini didasarkan pada jumlah data dan code yang terlibat dalam program. Jenis executable file yang akan dihasilkan oleh assembler ditentukan oleh compiler directive yang digunakan dalam program dan cara linking program tersebut.

Kapabilitas computer dapat diketahui dari kumpulan instruksi dasar (Basic Instriction Set). Untuk kemudahan, dalam assembler instruksi dasar ini dipresentasikan dalam bentuk Kode Mneumonic. Kode Mneumonic tersebut diantaranya adalah Instruksi misalnya MOV dan pengakses program yaitu Interupsi (INT nomor).

B. TUJUAN.

Tujuan dari praktikum adalah : Mengetahui cara membuat executable file menggunakan turbo

assembler versi 5.0 atau yang lain.

Mengetahui penggunaan instruksi, sebagai contoh misalnya untuk keperluan transfer data (MOV).

Mengetahui penggunaan interupsi, sebagai contoh misalnya INT 21 pelaksanaan proses di monitor. INT 20 untuk mengakhiri suatu program pada SO WINDOWS 98 atau DEBUG), sedang untuk WINDOWS XP digunakan instruksi MOV AH,4CH diikuti dengan instruksi INT 21H.

C. SARANA

Software : Text Editor (Edit, Side Kick, Qe, Turbo Pascal dll)

D. DASAR TEORI YANG HARUS DIPELAJARI :

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 1

Modul Praktikum Bahasa Rakitan

Jenis-jenis Rgister dan Akumulator bersama dengan tanda atau bendera yang dipunyainya.

Format dan Operasi dari Instruksi. Format dan Operasi dari Interupsi. Fungsi dari Register dari alamat.

E. DASAR OPERASI UNTUK PRAKTIKUM.- Hidupkan komputer sampai dengan Sistem Operasi Windows

selesai diproses menuju ke Root Directory;

- Setelah itu click START, click All Program, jika pada directory All Program ada MS DOS lalu click, tetapi jika pada directory tersebut tidak ada, click Accessories, click MS DOS sehingga proses menuju ke Root Directory C promt, sbb ;

Contoh :C:/WINDOWS>CURSORLalu ketikanC:/WINDOWS>CD .. < tekan enter >C:>cursorLalu ketikanC:>DEBUG < tekan enter >Akan muncul sbb :- Cursor lalu tulis sebagai berikut :- A0100 tekan enter, akan muncul alamat XXXX: 0100 misalnya

sebagai berkiut :0A10:0100 cursor dari sini kita dapat mengawali pembuatan program, sebagai alamat awal program yang ditunjuk RIPJika pada program diatas diawali dengan Nama file, untuk membuat program dengan DEBUG dimulai dari Instruksi pertama dari program. Pada contoh diatas, dimulai dari MOV AH,2 sampai dengan INT 20 saja. Jadi program itu sbb :

Program menampilkan data dari register DX atau DL melalui interface CPU ke Monitor.

0A10:0100 MOV AH,2 ; Berfungsi sebagai interface antara CPU dengan Monitor.0A10:0102 MOV DL,41 ; disini tidak perlu ditulis H.0A10:0104 INT 21 ; Pelaksanaan instruksi.0A01:0106 INT 20 ; Mengakhiri program0A01:0108 tekan enter

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 2

Modul Praktikum Bahasa Rakitan

- Cursor, setelah itu kita perlu menentukan besarnya program yang akan dijalankan. Untuk itu ketik, sbb

- RCX tekan enter akan munculBesarnya program yang akan dijalankan, masukan nilai besarnya program, ambil saja alamat akhir dari program. Pada contoh diatas adalah 0108 tekan entar.

- Cursor, untuk mengetahui apakah alamat awal dari program tersebut adalah 0100. Kita dapat ketikan

- RIP tekan enter- Jika alamat program sudah XXXX:0100 kita tekan enter saja, tetapi

jika yang lain kita ketikan sbb ; : 0100 tekan enter- sekarang kita dapat menjalankan program tersebut sbb :- G atau g lalu tekan enter untuk menjalankan program, pada

program diatas jika dijalankan akan muncul huruf pada layar monitor sebagai berikut :AProgram terminated normally.

- Q atau q untuk keluar dari program.

Pada program dengan menggunakan Bahasa Perakitan dengan Kompiler TASM sebagai berikut :

C:>cd TASM < tekan enter >C:>/TASM>Cursor, lalu ketik berikut :C:>/TASM>EDIT < tekan enter >Akan muncul halaman Edit sbb :

Kemudian tulis kalimat program di halaman edit di bawah ini, boleh menggunakan huruf besar atau huruf kecil sama saja.

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 3

Modul Praktikum Bahasa Rakitan

File Edit dst

.model TINY .code org 100h ; digunakan untuk program COM.Start : mov dx, 41h ; Mulai program mov ah, 2 int 21h endpend Start

Click File, lalu click SAVE AS akan muncul tempat untuk memberi nama file, anda dapat memberi nama file sesuai dengan nama anda diikuti dengan ‘.ASM’. Contoh sebagai berikut : TUTI.ASM

Setelah anda memberi nama file, kemudian program dikompiler dengan TASM.EXE untuk membuat program.obj dan TLINK.EXE untuk membuat program.com. Untuk mengkompil program berikut ini :

Sebagai berikut :

C:/TASM>TASM Nama file.ASM

Contoh

C:/TASM>TASM TUTI.ASM <tekan enter>

Jika program salah betulkan terlebih dadulu sampai betul semua, lalu dilink dengan TLINK sebagai berikut :

C:>/TASM>TLINK

Atau

C:>/TASM>T Nama File.OBJ

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 4

Modul Praktikum Bahasa Rakitan

Contoh

C:/TASM>TLINK < tekan enter >

C:/TASM>T TUTI.OBJ < tekan enter >

Baru dapat dijalankan, sebagai berikut :

C:/TASM>nama file

Contoh

C:/TASM>TUTI < tekan enter>

Hasil program di atas adalah :

A

Program untuk menampilkan beberapa huruf menggunakan Windows XP, sebagai bwerikut :

Setelah dijalankan akan muncul kalimat sebagai berikut :

UMC TINF

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 5

Modul Praktikum Bahasa Rakitan

MODUL 2

PENGENALAN INTERFACE CPU DENGAN MONITOR/KEYBOARD

Program untuk membaca dan mengambil Data di dalam Memory dengan menggunakan alamat yang ditulis sbb [alamat], kemudian menampilkan di layar monitor :

Untuk Sistem Operasi Windows 98, programnya sebagai berikut :

Setelah dijalankan, maka hasilnya sebagai berikut :

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 6

Modul Praktikum Bahasa Rakitan

Sedangkan jika menggunakan Sistem Operasi Windows XP, sebagai berikut :

Ada perbedaan yang harus diperhatikan!!!.Program memasukan sebuah data (Character) kedalam CPU melalui interface Keyboard sbb :

.

Bila program dijalankan, maka akan muncul tanda sebagai berikut :

Muncul cursor, lalu ketikan sebuah data baik berupa huruf atau angka sbb :

A

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 7

Modul Praktikum Bahasa Rakitan

Program untuk memasukan data STRING (Word) melalui interface Keyboard ke CPU sebagai berikut :

Bila program dijalankan, maka akan muncul tanda sebagai berikut :Cursor, lalu ketikan beberapa data baik berupa huruf atau angka sebelum mengakhiri harus diketik $ sbb :

UMC Program Studi Teknik Informatika$ tekan enter

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 8

Modul Praktikum Bahasa Rakitan

MODUL 3

PENGENALAN INSTRUKSI MEMBANDINGKAN SEBUAH DATA

Program untuk membandingkan Data1 yang dimasukan melalui Keyboard dengan Data2 yang tersimpan di Memory dapat digambarkan sebagai berikut .

Flow Chart dari program sebagai berikut :

.MODEL TINY

.CODEORG 100H

START: MOV DX,OFFSET A1 ; Mengkopykan data dari alamat A1 s/d $ ke Register DX.

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 9

Modul Praktikum Bahasa Rakitan

MOV AH,9 ; Interface CPU ke Monitor untuk data string.

INT 21H ; Pelaksanaan proses pengambilan dan penampilan ke Monitor.

MOV AH,0AH ; Interface CPU dengan Keyboard untuk Data String.

INT 21H ; Pelaksanaan proses memasukan Data String dari Keyboard.

MOV SI,OFFSET A2 ; Mengkopykan Data String dari Memory A2 ke Register SI.

ADD DX,2 ; Untuk menyesuaikan letak Data di Register DX.

MOV DI,DX ; Memindahkan Data dari register DX ke register DI.

MOV CX,5 ; Untuk membatasi jumlah Character yang dibaca.

REPE ; Mengulangi proses pengambilan data string.

CMPSB ; Membandingkan data register SI dan DI satu persatu character.

JE A5 ; Jika Data di SI sama dengan Data di DI menuju alamat A5.

MOV AH,9 ; Interface CPU dengan Monitor untuk Data String.

LEA DX,A3 ; Mengkopykan data dari alamat A3 ke register DX.

INT 21H ; Pelaksanaan proses penampilan data di register DX ke Monitor.

JMP A6 ; Menuju ke alamat A6. A5: MOV DX,OFFSET A4 ; Mengkopykan data dari alamat A4 ke

register DX. MOV AH,9 ; Interface CPU dengan Monitor untuk

Data String. INT 21H ; Pelaksanaan proses penampilan data di

register DX ke Monitor. A6: MOV AH,4CH INT 21H ENDP ; Program selesai. A1: DB ‘Nama Programer : Saefudin Zuhri ‘,13,10 DB ‘ Nama Perguruan Tinggi : Universitas Muhammadiyah

Cirebon ‘,13,10 DB ‘ Nama Program Studi : Teknik Informatika ‘,13,10 DB ‘ Alamat Perg. Tinggi : Jl. Tuparev No. 70 Cirebon ‘,13,10 DB ‘Telp. (0231) 209617’,13,10,13,10,’$’

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 10

Modul Praktikum Bahasa Rakitan

A2: DB ‘READ$’A3: DB 13,10,‘Salah$’A4: DB 13,10,‘Benar$’

END START ; Program Start selesai.

Jika program dijalankan maka hasilnya adalah ;

Jika dimasukan data1 string melalui Keyboard adalah READ$, maka hasilnya Benar.Jika dimasukan data1 string melalui Keyboard adalah bukan READ$, maka hasilnya adalah Salah.

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 11

Modul Praktikum Bahasa Rakitan

MODUL 4

PENGENALAN INSTRUKSI MEMBANDINGKAN DUA DATA

Program membandingkan Data2 atau Data3 yg dimasukan melalui Keyboard dengan Data1 yg tersimpan di Memory.

Flow Chart dari program sebagai berikut :

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 12

Modul Praktikum Bahasa Rakitan

.MODEL TINY

.CODEORG 100H

START:MOV DX,OFFSET A1 ; Mengkopykan data dari alamat A1 s/d $ ke Register DX.

MOV AH,9 ; Interface CPU ke Monitor untuk data string.

INT 21H ; Pelaksanaan proses pengambilan dan penampilan ke Monitor.

MOV AH,0AH ; Interface CPU dengan Keyboard untuk Data String.

INT 21H ; Pelaksanaan proses memasukan Data String dari Keyboard.

MOV SI,OFFSET A2 ; Mengkopykan Data String dari Memory alamat A2 ke SI.

ADD DX,2 ; Untuk menyesuaikan letak Data di Register DX.

MOV DI,DX ; Memindahkan Data dari register DX ke register DI.

MOV CX,5 ; Untuk membatasi jumlah Character yang dibaca.

REPE ; Mengulangi proses pengambilan data string.

CMPSB ; Membandingkan data register SI dan DI satu persatu character.

JE A6 ; Jika Data di SI sama dengan Data di DI menuju alamat A6.

MOV SI,OFFSET A3 ; Mengkopykan Data String dari Memory A3 ke Register SI.

ADD DX,2 ; Untuk menyesuaikan letak Data di Register DX.

MOV DI,DX ; Memindahkan Data dari register DX ke register DI.

MOV CX,5 ; Untuk membatasi jumlah Character yang dibaca.

REPE ; Mengulangi proses pengambilan data string.

CMPSB ; Membandingkan data register SI dan DI satu persatu character.

JE A6 ; Jika Data di SI sama dengan Data di DI menuju alamat A6.

MOV AH,9 ; Interface CPU dengan Monitor untuk Data String.

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 13

Modul Praktikum Bahasa Rakitan

LEA DX,A4 ; Mengkopykan data dari alamat A4 ke register DX.

INT 21H ; Pelaksanaan proses penampilan data di register DX ke Monitor.

JMP A7 ; Menuju ke alamat A7.

A6: MOV DX,OFFSET A5 ; Mengkopykan data dari alamat ALM6 ke register DX.

MOV AH,9 ; Interface CPU dengan Monitor untuk Data String.

INT 21H ; Pelaksanaan proses penampilan data di register DX.

A7: MOV AH,4CH INT 21H ENDP ; Program selesai.A1: DB ‘ Nama Programer : Saefudin Zuhri ‘,0DH,0AH DB ‘Nama Perguruan Tinggi : Universitas Muhammadiyah

Cirebon ‘,0DH,0AH DB ‘ Nama Program Studi : Teknik Informatika ‘,0DH,0AH DB ‘ Alamat Perg. Tinggi : Jl. Tuparev No. 70 Cirebon

‘,0DH,0AH DB ‘Telp. (0231) 209617’,0DH,0AH,0DH,0AH,’$’A2: DB ‘READ$’A3: DB ‘WRIT$’A4: DB 13,10,13,10,‘Salah$’A5: DB 13,10,13,10,‘Benar$’END START ; Program Start selesai

Jika program dijalankan maka hasilnya adalah ;Jika dimasukan data1 string melalui Keyboard adalah READ$ atau WRIT$, maka hasilnya Benar. Jika dimasukan data1 string melalui Keyboard adalah bukan READ$ atau WRIT$, maka hasilnya adalah Salah.

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 14

Modul Praktikum Bahasa Rakitan

MODUL 5

PENGENALAN PENGOLAHAN ARITHMATIKA PENAMBAHAN

Program untuk membuat Unit Arithmatika.Program untuk membuat Unit Arithmatika Penambahan pada angka satuan.

Rumusnya adalah : ( X – 30 ) + ( Y – 30 ) = ( A + 30 ) dan ( B + 30 )Dimana : X dan Y sebagai angka satuan.

A sebagai angka puluhan B sebagai angka satuan.

Program sebagai berikut :

.MODEL TINY

.CODEORG 100H

START: MOV DX,OFFSET A1 ; Mengkopykan data dari alamat A1 s/d $ ke Register DX.

MOV AH,9 ; Interface CPU ke Monitor untuk data string.

INT 21H ; Pelaksanaan proses pengambilan dan penampilan ke Monitor.

MOV AH,2 ; Interface CPU ke Monitor untuk satu angka dalam Heksa.

MOV DL,20H ; Menampilkan data spasi di layar monitor.

INT 21H ; Pelaksanaan proses penampilan data di monitor.

MOV AH,1 ; Interface CPU dari Keyboard untuk satu angka dalam Heksa.

INT 21H ; Pelaksanaan proses pemasukan satu angka dari keyboard

SUB AL,30H ; Mengubah Heksa ke Biner dengan rumus AL = AL – 30H.

MOV BL,AL ; Mengkopykan data dari AL ke BL.MOV AH,2 ; Interface CPU ke Monitor untuk

satu angka dalam Heksa.MOV DL,20H ; Menampilkan data spasi di layar monitor.

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 15

Modul Praktikum Bahasa Rakitan

INT 21H ; Pelaksanaan proses penampilan data di monitor.

MOV DL,2BH ; Menampilkan tanda tambah (+) ke monitor.

INT 21H ; Pelaksanaan proses penampilan data di monitor.

MOV AH,2 ; Interface CPU ke Monitor untuk satu angka dalam Heksa.

MOV DL,20H ; Menampilkan data spasi di layar monitor.

INT 21H ; Pelaksanaan proses penampilan data di monitor.

MOV AH,1 ; Interface CPU dari Keyboard untuk satu angka dalam Heksa.

INT 21H ; Pelaksanaan proses pemasukan data satu angka dari Keyboard.

SUB AL,30H ; Mengubah Heksa ke Biner dengan rumus AL = AL – 30H.

MOV AH,0 ; Menjadikan nilai puluhan di AH = 0.

ADC AL,BL ; Proses penambahan AL = AL + BL secara Biner.

AAA ; Mengkonversikan ke BCD, angka puluhan di AH, satuan di AL.

MOV CL,AL ; Mengkopykan data angka satuan dari AL ke CL.

ADD CL,30H ; Mengubah Biner ke heksa dengan rumus CL = CL + 30H.

MOV CH,AH ; Mengkopykan data angka puluhan dari AH ke CH.

ADD CH,30H ; Mengubah Biner ke Heksa dengan rumus CH = CH + 30H.

MOV AH,2 ; Interface CPU ke monitor untuk satu angka dalam Heksa.

MOV DL,20H ; Menampilkan spasi di layar monitor.

INT 21H ; Pelaksanaan proses penampilan spasi di layar monitor.

MOV DL,3DH ; Menampilkan tanda sama dengan (=) di layar monitor.

INT 21H ; Pelaksanaan proses penampilan di layar monitor.

MOV DL,20H ; Menampilkan spasi di layar monitor.

INT 21H ; Pelaksanaan proses penampilan di layar monitor.

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 16

Modul Praktikum Bahasa Rakitan

MOV DL,CH ; Mengkopykan data angka puluhan dari CH ke DL.

INT 21H ; Pelaksanaan proses penampilan angka di layar monitor.

MOV DL,CL ; Mengkopykan data angka satuan dari CL ke DL.

INT 21H ; Pelaksanaan proses penampilan di layar monitor.

INT 20H ; Program selesai.A1: DB ‘Nama Programer : Saefudin Zuhri ‘,0DH,0AH

DB ‘Nama Perguruan Tinggi : Universitas Muhammadiyah Cirebon ‘,0DH,0AH

DB ‘Nama Program Studi : Teknik Informatika‘,0DH,0AHDB ‘Alamat Perg. Tinggi : Jl. Tuparev No. 70 Cirebon

‘,0DH,0AHDB ‘Telp. (0231) 209617’,’$’,0DH,0AH,0DH,0AH

END START ; Program Start selesai.

Setelah di compiler, kemudian dijalankan akan menghasilkan pekerjaan sebagai berikut :Setelah muncul cursor, kita tuliskan sebuah angka misal :

3 + 6 = 9

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 17

Modul Praktikum Bahasa Rakitan

MODUL 6PENGENALAN PENGOLAHAN ARITHMATIKA

PENGURANGAN

Program untuk membuat Unit Arithmatika Pengurangan pada angka satuan.

Rumusnya adalah : ( X – 30 dan Y – 30 ) - ( Z – 30 ) = ( A + 30 ) dan ( B + 30 )

Dimana : X sebagai angka puluhan. Y dan Z sebagai angka satuan.

A sebagai angka puluhanB sebagai angka satuan.

Program sebagai berikut :

.MODEL TINY .CODE ORG 100H

START: MOV DX,OFFSET A1 ; Mengkopykan data dari alamat A1 s/d $ ke Register DX.

MOV AH,9 ; Interface CPU ke Monitor untuk data string.

INT 21H ; Pelaksanaan proses pengambilan dan penampilan ke Monitor.

MOV AH,2 ; Interface CPU dengan layar monitor untuk satu character.

MOV DL,20H ; Menampilkan data spasi dilayar monitor.

INT 21 ; Pelaksanaan proses penampilan data dilayar monitor.

MOV AH,1 ; Interface CPU dengan Keyboard untuk satu angka.

INT 21H ; Pelaksanaan pemasukan data satu angka.

SUB AL,30H ; Mengubah data Heksa ke Biner dengan rumus AL = AL – 30H.

MOV CH,AL ; Mengkopykan data angka puluhan dari AL ke CH.

INT 21H ; Pelaksanaan pemasukan data satu angka.

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 18

Modul Praktikum Bahasa Rakitan

SUB AL,30H ; Mengubah data Heksa ke Biner dengan rumus AL = AL – 30H.

MOV CL,AL ; Mengkopykan data satuan dari AL ke CL.

MOV AH,2 ; Interface CPU dengan monitor untuk menampilkan satu huruf.

MOV DL,20H ; Menampilkan spasi di layar monitor.

INT 21H ; Pelaksanaan proses penampilan spasi di layar monitor.

MOV DL,2DH ; Menampilkan tanda kurang (-) dilayar monitor.

INT 21H ; Pelaksanaan penampilan data di layar monitor.

MOV DL,20H ; Menampilkan data spasi dilayar monitor.

INT 21H ; Pelaksanaan proses penampilan data dilayar monitor.

MOV AH,1 ; Interface CPU dengan Keyborad untuk satu angka.

INT 21H ; Pelaksanaan proses pemasukan data satu angka ke CPU.

SUB AL,30H ; Mengubah data Heksa ke Biner dengan rumus AL = AL – 30H.

MOV BL,AL ; Mengkopykan data dari AL ke BL. MOV AH,CH ; Mengkopykan data dari CH ke AH. MOV AL,CL ; Mengkopykan data dari CL ke AL. SBB AL,BL ; Proses AL = AL – BL secara Biner. AAS ; Data dikonversi ke BCD, puluhan

di AH, satuan di AL. MOV CL,AL ; Mengkopykan data satuan dari AL

ke CL. ADD CL,30H ; Mengubah data Biner ke Heksa

dengan rumus CL = CL + 30H. MOV CH,AH ; Mengkopykan data puluhan dari

AH ke CH. ADD CH,30H ; Mengubah data Biner ke Heksa

dengan rumus CH = CH + 30H MOV AH,2 ; Interface CPU dengan monitor

untuk satu angka. MOV DL,20H ; Menampilkan spasi ke layar

monitor.

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 19

Modul Praktikum Bahasa Rakitan

INT 21H ; Pelaksanaan proses penampilan spasi di layar monitor.

MOV DL,3DH ; Menampilkan data sama dengan (=) dilayar monitor.

INT 21H ; Pelaksanaan proses penampilan data.

MOV DL,20H ; Menampilkan spasi dilayar monitor.

INT 21H ; Pelaksanaan proses penampilan data.

MOV DL,CH ; Mengkopykan data puluhan dari CH ke DL.

INT 21H ; Proses penampilan data dari register DL di layar monitor.

MOV DL,CL ; Mengkopykan data satuan dari CL ke DL.

INT 21H ; Pelaksanaan proses penampilan data.

INT 20H ; Program selesai.A1: DB ‘ Nama Programer : Saefudin Zuhri ‘,0DH,0AH DB ‘ Nama Perguruan Tinggi : Universitas Muhammadiyah

Cirebon ‘,0DH,0AH DB ‘ Nama Program Studi : Teknik Informatika ‘,0DH,0AH DB ‘ Alamat Perg. Tinggi : Jl. Tuparev No. 70 Cirebon

‘,0DH,0AH DB ‘ Telp. (0231) 209617’,’$’,0DH,0AH,0DH,0AH END START ; Program start selesai.

Setelah di compiler, kemudian dijalankan akan menghasilkan pekerjaan sebagai berikut :Setelah muncul cursor, kita tuliskan sebuah angka misal :15 - 8 = 07

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 20

Modul Praktikum Bahasa Rakitan

MODUL 7PENGENALAN PENGOLAHAN ARITHMATIKA PERKALIAN

Program untuk membuat Unit Arithmatika Perkalian pada angka satuan.

Rumusnya adalah : ( X – 30 ) * ( Y – 30 ) = ( A + 30 ) dan ( B + 30 )

Dimana : X dan Y sebagai angka satuan. A sebagai angka puluhan B sebagai angka satuan.

Program sebagai berikut :

.MODEL TINY

.CODEORG 100H

START: MOV DX,OFFSET A1 ; Mengkopykan data dari alamat A1 s/d $ ke Register DX.

MOV AH,9 ; Interface CPU ke Monitor untuk data string.

INT 21H ; Pelaksanaan proses pengambilan dan penampilan ke Monitor.

MOV AH,2 ; Interface CPU dengan Monitor untuk satu character.

MOV DL,20H ; Menampilkan data spasi dilayar monitor.

INT 21 ; Pelaksanaan proses penampilan data dilayar monitor.

MOV AH,1 ; Interface CPU dengan Keyboard untuk satu angka.

INT 21H ; Pelaksanaan proses pemasukan satu angka ke register AL.

MOV BL,AL ; Mengkopykan data dari AL ke BL. MOV AH,2 ; Interface CPU dengan monitor

untuk satu character. MOV DL,20H ; Menampilkan data spasi dilayar

monitor. INT 21H ; Pelaksanaan proses penampilan

data dilayar monitor. MOV DL,2AH ; Menampilkan data * dilayar

monitor.

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 21

Modul Praktikum Bahasa Rakitan

INT 21H ; pelaksanaan proses penampilan data dilayar monitor.

MOV DL,20H ; Menampilkan data spasi dilayar monitor.

INT 21H ; pelaksanaan proses penampilan data dilayar monitor.

MOV AH,1 ; Interface antara CPU dengan Keyboard untuk satu angka.

INT 21H ; Pelaksanaan pemasukan data di register AL.

MOV AH,0 ; Tidak ada Interface yang terhubung dengan CPU.

SUB BL,30H ; Mengubah data Heksa ke Biner dengan rumus BL = BL – 30H.

SUB AL,30H ; Mengubah dataHeksa ke Biner dengan rumus AL = AL – 30H.

MUL BL ; Prose perkalian dengan rumus AL = AL * BL.

AAM ; Data dikonversi ke BCD, puluhan di AH, satuan di AL.

MOV CL,AL ; Mengkopykan data satuan dari AL ke CL.

ADD CL,30H ; Mengubah data dari Biner ke Heksa untuk data satuan.

MOV CH,AH ; Mengkopykan data puluhan dari AH ke CH.

ADD CH,30H ; Mengubah data Biner ke Heksa untuk data puluhan.

MOV AH,2 ; Interface antara CPU dengan Monitor untuk satu angka.

MOV DL,20H ; Menampilkan data spasi dilayar monitor.

INT 21H ; Pelaksanaan proses penampilan data dilayar monitor.

MOV DL,3DH ; Menapilkan data tanda sama dengan (=) dilayar monitor.

INT 21H ; Pelaksanaan proses penampilan data dilayar monitor.

MOV DL,20H ; Menampilkan data spasi dilayar monitor.

INT 21H ; Pelaksanaan proses penampilan data dilayar monitor.

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 22

Modul Praktikum Bahasa Rakitan

MOV DL,CH ; Menampilkan data puluhan dilayar monitor. INT 21H ; Pelaksanaan penampilan data

puluhan dilayar monitor. MOV DL,CL ; Menampilkan data satuan dilayar

monitor. INT 21H ; Pelaksanaan penampilan data

satuan dilayar monitor. INT 20H ; Program selesai.A1: DB ‘ Nama Programer : Saefudin Zuhri ‘,0DH,0AH DB ‘ Nama Perguruan Tinggi : Universitas Muhammadiyah

Cirebon ‘,0DH,0AH DB ‘ Nama Program Studi : Teknik Informatika ‘,0DH,0AH DB ‘ Alamat Perg. Tinggi : Jl. Tuparev No. 70 Cirebon

‘,0DH,0AH DB ‘Telp. (0231) 209617’,0DH,0AH,0DH,0AH,’$’ END START ; Program start selesai.

Setelah di compiler, kemudian dijalankan akan menghasilkan pekerjaan sebagai berikut :Setelah muncul cursor, kita tuliskan sebuah angka misal :

5 x 6 = 30

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 23

Modul Praktikum Bahasa Rakitan

MODUL 8PENGENALAN PENGOLAHAN ARITHMATIKA PEMBAGIAN

Program untuk membuat Unit Arithmatika Pembagian pada angka satuan.

Rumusnya adalah : ( X – 30 dan Y - 30 ) / ( Z – 30 ) = ( A + 30 )

Dimana : X sebagai angka puluhan Y dan Z sebagai angka satuan. A sebagai angka satuan

Program sebagai berikut :

.MODEL TINY

.CODEORG 100H

START: MOV DX,OFFSET A1 ; Mengkopykan data dari alamat A1 s/d $ ke Register DX.

MOV AH,9 ; Interface CPU ke Monitor untuk data string.

INT 21H ; Pelaksanaan proses pengambilan dan penampilan ke Monitor.

MOV AH,2 ; Interface CPU dengan Monitor untuk satu character.

MOV DL,20H ; Menampilkan data spasi dilayar monitor.

INT 21 ; Pelaksanaan proses penampilan data dilayar monitor.

MOV AH,1 ; Interface antara CPU dengan keyboard untuk satu angka

INT 21H ; Pelaksanaan pemasukan data satuan dari keyboard.

SUB AL,27H ; Mengubah data angka puluhan dari Heksa ke Biner.

MOV CL,AL ; Memindah angka sepuluh dari AL ke CL

INT 21H ; Pelaksanaan pemasukan data satuan dari keyboard.

SUB AL,30H ; Mengubah data angka satuan dari Heksa ke Biner.

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 24

Modul Praktikum Bahasa Rakitan

ADD CL,AL ; Menambah angka sepuluh dengan angka satuan secara Biner.

MOV AH,2 ; Interface antara CPU dengan monitor untuk satu character.

MOV DL,20H ; Menampilkan data spasi ke layar monitor.

INT 21H ; Pelaksanaan proses penampilan data spasi ke layar monitor.

MOV DL,2FH ; Menampilkan data tanda bagi dilayar monitor.

INT 21H ; Pelaksanaan proses penampilan data dilayar monitor.MOV DL,20H ; Menampilkan spasi di layar

monitor.INT 21 ; Pelaksanaan penampilan spasi

dilayar monitor.MOV AH,1 ; Interface antara CPU dengan

Keyboard untuk satu angka.INT 21 ; Pelaksanaan proses pemasukan

data Angka pembagi.SUB AL,30H ; Mengubah data Heksa ke Biner

dng rumus AL = AL – 30H.MOV BL,AL ; Mengkopykan data pembagi dari

AL ke BL.MOV AH,0 ; Memutuskan semua interface ke

CPU.MOV AL,CL ; Mengkopykan data yang dibagi

dari CL ke AL.DIV BL ; Proses pembagian dng rumus AL =

AL / BL.AAD ; Data dikonversi ke BCD, puluhan

di AH, satuan di AL.MOV CL,AL ; Mengkopykan data satuan dari AL

ke B.ADD CL,30H ; Mengubah data Biner ke Heksa

dng rumus BL = BL + 30H.MOV AH,2 ; Interface antara CPU dengan

monitor untuk satu character.MOV DL,20H ; Menampilkan spasi di layar

monitor.INT 21H ; Pelaksanaan penampilan spasi

dilayar monitor.

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 25

Modul Praktikum Bahasa Rakitan

MOV DL,3DH ; Menampilkan tanda bagi dilayar monitor

INT 21H ; Pelaksanaan Penampilan tanda bagi dilayar monitor.

MOV DL,20H ; Menampilkan spasi dilayar monitor.

INT 21H ; Pelaksanaan proses penampilan spasi dilayar monitor.

MOV DL,CL ; Menampilkan data hasil bagi dilayar monitor.

INT 21H ; Pelaksanaan proses penampilan hasil bagi dilayar monitor.

INT 20H ; Program selesai.

A1: DB‘Nama Programer : Saefudin Zuhri ‘,0DH,0AH DB‘Nama Perguruan Tinggi : Universitas Muhammadiyah

Cirebon ‘,0DH,0AHDB‘ Nama Program Studi : Teknik Informatika ‘,0DH,0AHDB‘Alamat Perg. Tinggi : Jl. Tuparev No. 70 Cirebon

‘,0DH,0AHDB‘Telp. (0231) 209617’,0DH,0AH,0DH,0AH,’$’END START ; Program start selesai.

Setelah di compiler, kemudian dijalankan akan menghasilkan pekerjaan sebagai berikut :Setelah muncul cursor, kita tuliskan sebuah angka misal :

16 / 4 = 4 (benar)

16 / 5 = hasilnya salah

Catatan untuk mengubah data angka puluhan dari Heksa ke Biner :

Pembagian disini pembagian integer harus habis dibagi, tidak boleh ada sisa pembagian.

1. Untuk angka sepuluh rumusnya adalah = X – 26H atau X – 27H2. Untuk angka duapuluh rumusnya adalah = X – 1BH atau X - 1CH

atau X – 1EH3. Untuk angka tigapuluh rumusnya adalah = X – 11H atau X - 12H

atau X – 15H

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 26

Modul Praktikum Bahasa Rakitan

4. Untuk angka empatpuluh rumusnya adalah = X – 07H atau X - 08H atau X – 0CH

5. Untuk angka limapuluh rumusnya adalah = X + 02H atau X + 01H atau X – 03H

6. Untuk angka enampuluh rumusnya adalah = X + 0BH atau X + 0AH atau X + 06H

7. Untuk angka tujuhpuluh rumusnya adalah = X + 15H atau X + 14H atau X + 0FH

8. Untuk angka delapanpuluh rumusnya adalah tidak ada atau tidak ada atau X + 18H.

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 27

Modul Praktikum Bahasa Rakitan

MODUL 9PENGENALAN PROSEDUR SUBROUTINE

SUB ROUTINE/PROCEDURE

.MODEL TINY

.CODEORG 100H

START: MOV DX,OFFSET A1 ; Mengkopykan data dari alamat A1 s/d $ ke Register DX.MOV AH,9 ; Interface CPU ke Monitor untuk data string.INT 21H ; Pelaksanaan proses pengambilan dan penampilan ke Monitor.

MOV AH,1INT 21H

CMP AL,31JNE A2CALL TAMBAH

A2: CMP AL,32JNE A3CALL KURANG

A3: INT 20H

A1: DB ‘Nama Programer : Saefudin Zuhri ‘,0DH,0AHDB ‘Nama Perguruan Tinggi : Universitas Muhammadiyah Cirebon ‘,0DH,0AHDB ‘Nama Program Studi : Teknik Informatika ‘,0DH,0AHDB ‘Alamat Perg. Tinggi : Jl. Tuparev No. 70 Cirebon ‘,0DH,0AHDB ‘Telp. (0231) 209617’,0DH,0AH,0DH,0AHDB ‘ Masukan salah satu angka pilihan dibawah ini: ‘,0DH,0AHDB ‘ 1. untuk proses Penambahan’,0DH,0AHDB ‘ 2. untuk proses Pengurangan’,0DH,0AHDB ‘ 3. untuk proses Selesai’,0DH,0AH,0DH,0AH,DB ‘ Masukan Pilihan : ‘,’$’

END START

TAMBAH PROC NEAR

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 28

Modul Praktikum Bahasa Rakitan

MOV DX,OFFSET A4 ; Menampilkan data string di layar monitor.

MOV AH,9 ; Interface CPU ke Monitor untuk data string.

INT 21H ; Pelaksanaan proses penampilan data di monitor.

MOV AH,1 ; Interface CPU dari Keyboard untuk satu angka.

INT 21H ; Pelaksanaan proses pemasukan satu angka dari keyboard

SUB AL,30H ; Mengubah Heksa ke Biner dengan rumus AL = AL – 30H.

MOV BL,AL ; Mengkopykan data dari AL ke BL.MOV AH,2 ; Interface CPU ke Monitor untuk

satu angka.MOV DL,20H ; Menampilkan data spasi di layar

monitor.INT 21H ; Pelaksanaan proses penampilan

data di monitor.

MOV DL,2BH ; Menampilkan tanda tambah (+) ke monitor.

INT 21H ; Pelaksanaan proses penampilan data di monitor.

MOV AH,2 ; Interface CPU ke Monitor untuk satu angka.

MOV DL,20H ; Menampilkan data spasi di layar monitor.

INT 21H ; Pelaksanaan proses penampilan data di monitor.

MOV AH,1 ; Interface CPU dari Keyboard untuk satu angka.

INT 21H ; Pelaksanaan proses pemasukan data satu angka dari Keyboard.

SUB AL,30H ; Mengubah Heksa ke Biner dengan rumus AL = AL – 30H.

MOV AH,0 ; Menjadikan nilai puluhan di AH = 0.

ADC AL,BL ; Proses penambahan AL = AL + BL secara Biner.

AAA ; Mengkonversikan ke BCD, angka puluhan di AH, satuan di AL.

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 29

Modul Praktikum Bahasa Rakitan

MOV CL,AL ; Mengkopykan data angka satuan dari AL ke CL.

ADD CL,30H ; Mengubah Biner ke heksa dengan rumus CL = CL + 30H.

MOV CH,AH ; Mengkopykan data angka puluhan dari AH ke CH.

ADD CH,30H ; Mengubah Biner ke Heksa dengan rumus CH = CH + 30H.

MOV AH,2 ; Interface CPU ke monitor untuk satu angka.

MOV DL,20H ; Menampilkan spasi di layar monitor.

INT 21H ; Pelaksanaan proses penampilan spasi di layar monitor.

MOV DL,3DH ; Menampilkan tanda sama dengan (=) di layar monitor.

INT 21H ; Pelaksanaan proses penampilan di layar monitor.

MOV DL,20H ; Menampilkan spasi di layar monitor.

INT 21H ; Pelaksanaan proses penampilan di layar monitor.

MOV DL,CH ; Mengkopykan data angka puluhan dari CH ke DL.

INT 21H ; Pelaksanaan proses penampilan angka di layar monitor.

MOV DL,CL ; Mengkopykan data angka satuan dari CL ke DL.

INT 21H ; Pelaksanaan proses penampilan di layar monitor.

JMP A3DB 0DH,0AH,0DH,0AH,DB ‘Masukan angka satuan tambah satuan : ‘,’$’

TAMBAH ENDP ; Program selesai.KURANG PROC NEAR MOV DX,OFFSET A5 ; Menampilkan data string di layar

monitor. MOV AH,9 ; Interface CPU ke Monitor untuk

data string. INT 21H ; Pelaksanaan proses penampilan

data di monitor.

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 30

Modul Praktikum Bahasa Rakitan

MOV AH,1 ; Interface CPU dengan Keyboard untuk satu angka.

INT 21H ; Pelaksanaan pemasukan data satu angka.

SUB AL,30H ; Mengubah data Heksa ke Biner dengan rumus AL = AL – 30H.

MOV CH,AL ; Mengkopykan data angka puluhan dari AL ke CH.

INT 21H ; Pelaksanaan pemasukan data satu angka.

SUB AL,30H ; Mengubah data Heksa ke Biner dengan rumus AL = AL – 30H.

MOV CL,AL ; Mengkopykan data satuan dari AL ke CL.

MOV AH,2 ; Interface CPU dengan monitor untuk menampilkan satu huruf.

MOV DL,20H ; Menampilkan spasi di layar monitor.

INT 21 ; Pelaksanaan proses penampilan spasi di layar monitor.

MOV DL,2DH ; Menampilkan tanda kurang (-) dilayar monitor.

INT 21H ; Pelaksanaan penampilan data di layar monitor.

MOV DL,20H ; Menampilkan data spasi dilayar monitor.

INT 21 ; Pelaksanaan proses penampilan data dilayar monitor.

MOV AH,1 ; Interface CPU dengan Keyborad untuk satu angka.

INT 21 ; Pelaksanaan proses pemasukan data satu angka ke CPU.

SUB AL,30H ; Mengubah data Heksa ke Biner dengan rumus AL = AL – 30H.

MOV BL,AL ; Mengkopykan data dari AL ke BL.MOV AH,CH ; Mengkopykan data dari CH ke AH.

MOV AL,CL ; Mengkopykan data dari CL ke AL. SBB AL,BL ; Proses AL = AL – BL secara Biner. AAS ; Data dikonversi ke BCD, puluhan

di AH, satuan di AL. MOV CL,AL ; Mengkopykan data satuan dari AL

ke CL.

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 31

Modul Praktikum Bahasa Rakitan

ADD CL,30H ; Mengubah data Biner ke Heksa dengan rumus CL = CL + 30H.

MOV CH,AH ; Mengkopykan data puluhan dari AH ke CH.

ADD CH,30H ; Mengubah data Biner ke Heksa dengan rumus CH = CH + 30H

MOV AH,2 ; Interface CPU dengan monitor untuk satu angka.

MOV DL,20H ; Menampilkan spasi ke layar monitor.

INT 21H ; Pelaksanaan proses penampilan spasi di layar monitor.

MOV DL,3DH ; Menampilkan data sama dengan (=) dilayar monitor.

INT 21H ; Pelaksanaan proses penampilan data.

MOV DL,20H ; Menampilkan spasi dilayar monitor.

INT 21H ; Pelaksanaan proses penampilan data.

MOV DL,CH ; Mengkopykan data puluhan dari CH ke DL.

INT 21H ; Proses penampilan data dari register DL di layar monitor.

MOV DL,CL ; Mengkopykan data satuan dari CL ke DL.

INT 21H ; Pelaksanaan proses penampilan data.

JMP A3A5: DB 0DH,0AH,0DH,0AH,

DB ‘Masukan angka puluhan kurang satuan : ‘,’$’KURANG ENDP ; Program selesai.

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 32

Modul Praktikum Bahasa Rakitan

MODUL 10

PENGENALAN PROGRAM MACRO

Disiapkan Oleh : Suhana Minah Jaya, S. Kom Page 33

Modul Praktikum Bahasa Rakitan