1. modul bhs rakitan-01
DESCRIPTION
Modul bahasa rakitanOleh : Suhana MinahasaTRANSCRIPT
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