Anda di halaman 1dari 17

TUGAS UAS BAHASA RAKITAN

DOSEN PENGAJAR : Riki Ruli Affandi S., S.Kom., M.Kom


KELAS : C

DISUSUN OLEH :
DEFRI AGUSTIAN DAMANIK
2016-31-196

TEKNIK INFORMATIKA
SEKOLAH TINGGI TEKNIK PLN JAKARTA
2018
.MODEL SMALL ; Bentuk memori yang digunakan pada program adalah small
1. Jalankan
.CODE program
; Code diatas,
segment amati output
untuk yang terjadi.
menyimpan Berikanyang
program penjelasan saudara dari hasil tersebut.!
akan dijalankan
ORG 100h ; Program dimula pada Offset 100h
Proses : ; Label Proses (main label)
MOV AH,15h ; Memindahkan 15h ke dalam register AH, AX=1500
MOV AL,4 ; Memindahkan 4 ke dalam register AL, AX=1504
ADD AH,AL ; Menambahkan nilai AL ke dalam register AH, AX=1904
MOV AX,1234h ; Memindahkan 1234h ke dalam register AX, AX=1234
MOV BX,0F221h ; Memindahkan 0F221h ke dalam register BX, BX=F221
ADD AX,BX ; Menambahkan nilai BX ke dalam register AX, AX=0455
MOV AX,1234h ; Memindahkan 1234h ke dalam register AX, AX=1234
MOV BX,9ABCh ; Memindahkan 9ABCh ke dalam register BX, BX=9ABC
MOV CX,5678h ; Memindahkan 5678h ke dalam register CX, CX=5678
MOV DX,0DEF0h ; Memindahkan 0DEF0h ke dalam register DX, DX=DEF0
ADC AX,BX ; Tempat menampung hasil pertambahan, AX=ACF1
INC AL ; Menambahkan 1 pada register AL, AX=ACF2
INT 20h ; Memberhentikan program
END Proses ; Mengakhiri Label Proses
Penjelasan Tracing(T) :
 Pada saat trace(t) ke-1 MOV AH,15h akan memindahkan 15h ke dalam register AH.
Sehingga register AX akan menjadi AX=1500
 Pada saat trace(t) ke-2 MOV AL,04h akan memindahkan 04h ke dalam register AL.
Sehingga register AX akan menjadi AX=1504
 Pada saat trace(t) ke-3 ADD AH,AL akan menambahkan 04h ke dalam register AH.
Sehingga register AX akan menjadi AX=1904
 Pada saat trace(t) ke-4 MOV AX,01234h akan memindahkan 01234h ke dalam register AX.
Sehingga register AX akan menjadi AX=1234
 Pada saat trace(t) ke-5 MOV BX,0F221h akan memindahkan 0F221h ke dalam registe BX.
Sehingga register BX akan menjadi BX=F221
 Pada saat trace(t) ke-6 ADD AX,BX akan menambahkan 0F221h ke dalam register AX.
Sehingga register AX akan menjadi AX=0455
 Pada saat trace(t) ke-7 MOV AX,01234h akan memindahkan 01234h ke dalam register AX.
Sehingga register AX akan menjadi AX=1234
 Pada saat trace(t) ke-8 MOV BX,09ABCh akan memindahkan 09ABCh ke dalam registe
BX. Sehingga register BX akan menjadi BX=9ABC
 Pada saat trace(t) ke-9 MOV CX,05678h akan memindahkan 05678h ke dalam registe CX.
Sehingga register CX akan menjadi CX=5678
 Pada saat trace(t) ke-10 MOV DX,0DEF0h akan memindahkan 0DEF0h ke dalam registe
DX. Sehingga register DX akan menjadi DX=DEF0
 Pada saat trace(t) ke-11 ADD CX,DX akan menambahkan 05678h ke dalam registe CX.
Sehingga register CX akan menjadi CX=3568
 Pada saat trace(t) ke-12 ADC AX,BX akan menambahkan 09ABCh ke dalam registe AX.
Sehingga register AX akan menjadi AX=ACF1
 Pada saat trace(t) ke-13 INC AL akan menambahkan 01h ke dalam registe AL. Sehingga
register AX akan menjadi AX=ACF2
.MODEL SMALL ; Bentuk memori yang digunakan pada program adalah small
.CODE ; Code segment untuk menyimpan program yang akan dijalankan
ORG 100h ; Program dimula pada Offset 100h
Tdata : ; Label Tdata (main label)
JMP Proses ; Lompat ke Label Proses
ALo EQU 0EFFFh ; Nilai ALo=0EFFFh
AHi EQU 122h ; Nilai AHi=122h
BLo EQU 0FFFFh ; Nilai BLo=0FFFFh
BHi EQU 0FEh ; Nilai BHi-0FEh
HslLo DW ? ; Untuk menampung hasil ALo-BLo
HslHi DW ? ; Untuk menampung hasil AHi-BHi
Proses :
MOV AX,ALo ; Memindahkan nilai ALo ke dalam register AX, AX=EFFh
SUB AX,BLo ; Kurangkan AX dengan nilai BLo EFFF-FFFF, AX=F000
MOV HslLo,AX ; Memindahkan AX ke dalam HslLo, HslLo=F000
MOV AX,AHi ; Memindahkan AHi ke dalam register AX, AX=122h
SBB AX,BHi ; Mengurangkan AX dengan nilai BHi 122-FE-Carry, AX=0023
MOV HslHi,AX ; Memindahkan AX ke dalam HslHi, HslHi=0023
INT 20h ; Memberhentikan program
END Tdata ; Mengakhiri Label TData

2. Jalankan program diatas, amati output yang terjadi. Berikan penjelasan saudara dari hasil tersebut.!
Penjelasan Program :
ALo EQU 0EFFFh
AHi EQU 122h
BLo EQU 0FFFFh
BHi EQU 0Feh
HslLo DW ?
HslHi DW ?

Perintah EQU digunakan untuk mendefinisikan suatu yang constant (tetap), data yang telah
didefinisikan dengan perintah EQU tidak dapat diubah. Dengan perintah EQU kita mendefenisikan
bahwa ALo = 0EFFF, AHi = 122, BLo = FFFF dan BHi = 0FE. Untuk menampung hasil dari
pengurangan A-B (122EFFF – FEFFF) nantinya, kita definisikan suatu tempat untuk
menyimpannya dengan nama HslLo dan HslHi.
Tanda ‘?’ digunakan untuk menyatakan bahwa tempat yang kita pesan sebanyak 1 word(DW) tidak
diberikan data awal yang akan terdapat pada variabel tersebut (HslLo dan HslHi). Jadi data yang
akan terdapat pada HslLo dan HslHi bisa apa saja dan kita tidak mengetahuinya. Tempat data
program kita lompati dengan perintah JMP supaya komputer tidak mengeksekusi data program
sebagai perintah.

MOV AX,ALo
SUB AX,Blo
MOV HslLo,AX

Untuk mengurangkan angka 122EFFF dengan 0FEFFFF kita dapat mengurangkan word rendah dari
angka tersebut dahulu, yaitu EFFF-FFFF. Hal ini dikarenakan daya tampung register yang hanya 16
bit. Dapat kita lihat bahwa pengurangan EFFF-FFFF akan menyebabkan terjadinya
peminjaman(Borrow), hasil word rendah(F000) yang didapatkan kemudian kita simpan pada
variabel HslLo.
MOV AX,AHi
SBB AX,Bhi
MOV HslHi,AX

Langkah selanjutnya adalah menghitung word tingginya yaitu pengurangan 122-FE-Carry dengan
menggunakan perintah SBB maka masalah tersebut dengan mudah terpecahkan. Akhirnya kita akan
mendapatkan hasil pengurangan dari 122EFFF-0FEFFFF yaitu 23F000 yang tersimpan pada
pasangan HslHi:HslLo(0023F000).

3.
;================================
;Program kali.asm J
;Melihat proses perkalian pada register
;================================
.MODEL SMALL ; Bentuk memori yang digunakan pada program adalah small
.CODE ; Code segment untuk menyimpan program yang akan dijalankan
ORG 100h ; Program dimula pada Offset 100h
Tdata : ; Label TData
JMP Proses ; Lompat ke Label Proses
A DW 01EFh ; Nilai A=01EFh
B DW 02FEh ; Nilai B=02EFh
HslLo DW ? ; Untuk menampung hasil
HslHi DW ? ; Untuk menampung hasil
Proses : ; Label Proses
MOV AX,A ; Memindahkan A ke register AX, AX=1EF
MUL B ; Mengalikan 1EF*2FE
MOV HslLo,AX ; AX bernilai C922 sehingga HslLo=C922
MOV HslHI,DX ; DX bernilai 005 sehingga HslHi=005
INT 20h ; Memberhentikan Program
END Tdata ; Mengakhiri label TData

alankan program diatas, amati output yang terjadi. Berikan penjelasan saudara dari hasil
tersebut.!
Penjelasan Program :
Pada program ini kita mendefenisikan angka untuk variabel ‘A’=1EF dan ‘B’=2FE dengan DW.
Karena tidak digunakan EQU, maka variabel ‘A’ dan B’ dapat dirubah bila diinginkan

.MODEL SMALL ; Bentuk memori yang digunakan pada program adalah small
4. Jalankan
.CODE ;program diatas, amati
Code segment output
untuk yang terjadi.
menyimpan Berikan
program penjelasan
yang saudara dari hasil tersebut.!
akan dijalankan
ORG 100h ; Program dimula pada Offset 100h
TData : ; Label TData
JMP Proses ; Lompat ke Label Proses
A DW 01EFh ; Nilai A=01EFh
B DW 2 ; Nilai B=2
Hsl DW ? ; Untuk menampung hasil
Sisa DW ? ; Untuk menampung hasil
Proses: ; Label Proses
SUB DX,DX ; Mengurangkan DX-DX, DX=0
MOV AX,A ; Memindahkan A ke dalam AX, AX=1EF
DIV B ; Membagi 1EF:2
MOV Hsl,AX ; AX bernilai 00F7 sehingga Hsl=00F7
MOV Sisa,DX ; DX berisi 0001 sehingga Sisa=0001
INT 20h ; Memberhentikan Program
END Tdata ; Mengakhiri label TData
Penjelasan Program :
Pada program ini menghasilkan output operasi pembagian, Pembagiannya adalah 1EF:2
Hsl=00F7
Sisa=0001

A. PROSEDUR PERCOBAAN
1. Ketik program diatas dengan mengunakan program EDIT dalam MS-DOS atau NOTEPAD atau
program simulator(sms)
2. Simpan Program yang telah kita ketik pada folder TASM
3. Aktifkan MS-DOS lalu masuk kedalam folder TASM
4. Lalu ketik Program TASM.EXE dan ketik nama program yang telah kita ketik
5. Langka selanjutnya kita merubah file kita yang telah menjadi program yang berekstensi OBJ
menjadi COM or EXE
6. Lalu jalan program kita dengan perintah DEBUG NAMAFILE.COM
7. Ketik T (Trace) amati hasilnya yang terjadi.

5. Jalankan program diatas, amati output yang terjadi. Berikan penjelasan saudara dari hasil tersebut.!
.MODEL SMALL
.CODE
ORG 100H
MULAI: JMP PROSES
A DB 'LISTRIK'
.MODEL SMALL
PROSES: 6.
.CODE
LEA 100h
ORG BX,A ; Pengambilan Variabel A, Register Indirect Addressing
MOV CX,3
TData ; COUNTER
: JMP Proses UNTUK LOOPING
ULANG: DB 'PISANG GORENG' ; 13 karakter
Kalimat
MOV DL,[BX] ; Mengambil Nilai Yang Ditunjukkan Register BX
Proses:
MOV BX,BX
XOR AH, 02H
; BX=0 Untuk penunjuk Offset
INT 21H ; Counter LOOP
MOV CX,13
ADD BX, 2 ; Nilai Bx=+2, Sehingga Bx Akan Menujukkan Ke 2 Alamat
Ulang:
Selanjutnya
MOV DL,Kalimat[BX] ; Ambil karakter yang ke BX
LOOPAH,02
MOV ULANG; Servis untuk cetak karakter
INT 20H
INT 21h ; Cetak Karakter
END BX
INC MULAI
; BX:=BX+1
LOOP Ulang ; Lompat ke Ulang sampai CX=0
INT 20h ; Selesai, kembali ke DOS !!
END TdataORG

Jalankan program diatas, amati output yang terjadi. Berikan penjelasan saudara dari hasil tersebut.!
Penjelasan program:
Pada program diatas, dapat disimpulkan bahwa pada program tasm tersebut, menampilkan output
PISANG GORENG
Outputnya :
7. .MODEL SMALL
.CODE
ORG 100H
MULAI: JMP PROSES ; lompat ke proses
TEKS DB 'BAHASA RAKITAN, STT PLN' ; 26 karakter
PROSES:
MOV AX,1300H ; servis cetak karakter
MOV BL,2 ; warna tulisan
MOV BH,00 ; nomor halaman
MOV DL,10 ; posisi kolom
MOV DH,10 ; posisi baris
MOV CX,23 ; cetak 23 kali
LEA BP,TEKS ; catat teks
INT 10H ; cetak...
INT 20H ; selesai
END MULAI

Jalankan program diatas, amati output yang terjadi. Berikan penjelasan saudara dari hasil tersebut.!
Penjelasan Program:
Pada potongan bahasa assambly diatas, dapat dilihat bahwa output dari program diatas
menampilkan tulisan BAHASA RAKITAN STTPLN dengan huruf berwarna hijau, dan posisi dari
output tersebut berada ditengah bagian output display
Outputnya:

8. Buatlah sebuah program dengan bahasa rakitan untuk mencetak teks seperti tertera
dibawah ini:
Bagaimana Belajar Bahasa Rakitan:
a. Melihat
b. Mencoba
c. Membaca, Mencoba, Berlatih

9. Dengan menggunakan perulangan, buat program untuk menampilkan teks seperti dibawah ini:
TEKNIK INFORMATIKA STT-PLN - 2018
TEKNIK INFORMATIKA STT-PLN - 2018
TEKNIK INFORMATIKA STT-PLN - 2018
TEKNIK INFORMATIKA STT-PLN - 2018
TEKNIK INFORMATIKA STT-PLN – 2018

.MODEL SMALL
.CODE
ORG 100h
TData: JMP Proses
BilA DB 61
BilB DB 66
Kal0 DB 'Bilangan A lebih kecil dari bilangan B $'
Kal1 DB 'Bilangan A sama dengan bilangan B $'
Kal2 DB 'Bilangan A lebih besar dari bilangan B $'
Proses:
MOV AL,BilA ; Masukkan bilangan A pada AL
CMP AL,BilB ; Bandingkan AL(BilA) dengan Bilangan B
JB AKecil ; Jika BilA < BilB, lompat ke AKecil
JE Sama ; Jika BilA = BilB, lompat ke Sama
JA ABesar ; Jika BilA > BilB, lompat ke ABesar
Akecil:
LEA DX,Kal0 ; Ambil offset Kal0
JMP Cetak ; Lompat ke cetak
Sama:
LEA DX,Kal1 ; Ambil offset Kal1
JMP Cetak ; Lompat ke cetak
ABesar:
LEA DX,Kal2 ; Ambil offset Kal2
Cetak:
MOV AH,09 ; Servis untuk mencetak kalimat
INT 21h ; Cetak kalimat !!
EXIT: INT 20h ; Kembali ke DOS.
END TData
10. Jalankan program diatas, amati output yang terjadi. Berikan penjelasan saudara dari hasil
tersebut.!
Penjelasan Program:
Dari potongan bahasa assambly diatas, dapat dilihat bahwa mempunyai output bilangan A lebih
kecil dari pada bilangan B. Dapat dilihat dalam pendeklarasian bahwa nilai A memiliki nilai 61,
dan nilai B adalah 66. Maka nilai bilangan A lebih kecil dari pada nilai bilangan B.
Outputnya:

Jelaskan perintah pada lompat sebenarnya dapat digunakan karena setiap huruf
melambangkan suatu kata, definisi perintah yang ada, dari huruf: J=Jump, E=Equal,
N=Not, S=Sign, Z=Zero, P=Parity, O=Overflow, C=Carry, G=Greater Than,
A=Above, L=Less dan B=Below.

ORG 100H
START : JMP MULAI
INFO1 DB 'PASSWORD ACCEPTED',13,10,'$'
INFO2 DB 'PASSWORD ? ',13,10, '$'
MULAI:
MOV AH,09
LEA DX,INFO2
INT 21H
MOV AH, 07H
INT 21H
CMP AL,50H
JE PASS1
CMP AL,70H
JNE MULAI
PASS1 :
MOV AH, 07H
INT 21H
CMP AL,4CH
JE PASS2
CMP AL,6CH
JNE MULAI
PASS2 :
MOV AH,07H
INT 21H
CMP AL,4EH
JE PASS3
CMP AL,6EH
JNE MULAI
PASS3 :
MOV AH,07H
INT 21H
CMP AL,2AH
JE OKE
JNE MULAI
OKE :
MOV AH, 09H
11. Jalankan program diatas, amati output yang terjadi. Berikan penjelasan saudara dari hasil
tersebut.!
Penjelasan Program:
Pada program ini. Merupakan penerapan dari praktikum pada tanggal 29 Mei yang mana
pemrograman tentang password.
Yang mana apa bila sesuai dengan password yang sudah di tentukan maka akan keluar kalimat
“Password Accepted” namun apabila password tidak sesuai maka akan mengulang program yang
mana di muat pada source berikut
CMP AL,50H
JE PASS1
CMP AL,70H
JNE MULAI
Outputnya:

12. .MODEL SMALL


.CODE
ORG 100h
TData :
JMP Proses
Kal DB 'LAB Teknik Informatika PLN $'
Ganti DB 13,10,'$'
STACKS DW ?
Proses:
LEA DX,Kal
MOV STACKS,DX
MOV AH,09
INT 21h
LEA DX,Ganti
INT 21h
MOV DX,STACKS
INT 21h
INT 20h
END Tdata

Jalankan program diatas, amati output yang terjadi. Berikan penjelasan saudara dari hasil tersebut.!
Penjelasan Program:
Merupakan bahasa pemograman yang menerapkan penerapan. Yang mana kalimat yang diulang
adalah kalimat “LAB Teknik Informatika PLN” yang dicetak sebanyak 2 kali.
Outputnya:

13. .MODEL SMALL


.CODE
ORG 100H
START:
JMP MULAI
TANYA DB 'IKUTI SAJA PERINTAH INI : ',13,10
DB 'MASUKAN SATU KARAKTER : $',13,10
HASIL DB ' <===== KARAKTER YANG DIMASUKKAN: $'
MULAI:
MOV AH,09H
LEA DX,TANYA ;MENCETAK TANYA
INT 21H
MOV AH,01H ;SERVICE UNTUK INPUT 1 CHAR
INT 21H
MOV AH,09H
LEA DX,HASIL ;MENCETAK HASIL
INT 21H
MOV AH,02H
MOV DL,AL ;CETAK HASIL INPUT
INT 21H
INT 20H
END START

Jalankan program diatas, amati output yang terjadi. Berikan penjelasan saudara dari hasil tersebut.!
Outputnya:
14. .MODEL SMALL
.CODE
ORG 100H
MULAI: JMP PROSES
TOMBOL1 DB 13,10,'INI ADALAH TOMBOL '
DB 'ASCII : $'
TOMBOL2 DB 13,10,'INI ADALAH TOMBOL '
DB 'TERUSKAN $'
PROSES: MOV AH,0 ; SERVIS INPUT SATU KARAKTER
INT 16H ; PELAYANAN PENGGUNAAN INPUT KEYBOARD
PUSH AX ; SIMPAN NILAI AX
CMP AL,00 ; APAKAH KARAKTER TERUSKAN ?
JE TERUSKAN ; KALO IYA, LOMPAT KE TERUSKAN
ASCII:
LEA DX,TOMBOL1 ; MOV DX, OFFSET TOMBOL2"³ CATAT KETERANGAN
MOV AH,09H ; SERVIS CETAK KARAKTER KE LAYAR
INT 21H ; CETAK
POP AX ; AMBIL NILAI AX (SETELAH DI PUSH)
MOV DL,AL ; CATAT NILAI AL
MOV AH,02H ; SERVIS CETAK KARAKTER
INT 21H ; CETAK
CMP AL,'Q' ; YG DITEKAN 'Q'--> HURUF BESAR
JE KELUAR ; MAKA AKAN KELUAR DARI PROGRAM
CMP AL,'Q' ; YG DITEKAN 'Q' --> HURUF KECIL
JE KELUAR ; MAKA AKAN KELUAR DARI PROGRAM
JMP PROSES ; KALO BUKAN 'Q' ATAU 'Q' ULANGI LAGI
TERUSKAN:
LEA DX,TOMBOL2 ; MOV DX, OFFSET TOMBOL2
MOV AH,09H ; SERVIS CETAK KARAKTER KE LAYAR
INT 21H ; CETAK
JMP PROSES ; ULANGI LAGI
KELUAR:
INT 20H ; SELESAI
END MULAI

Jalankan program diatas, amati output yang terjadi. Berikan penjelasan saudara dari hasil tersebut.!
Outputnya:

.MODEL SMALL
.CODE
ORG 100H
MULAI: JMP PROSES
TEKS DB 'JURUSAN TEKNIK INFORMATIKA STT PLN '
DB 13,10,'TOLONG TEKAN SEMBARANG PADA KEYBOARD KITA',13,10
DB 'AGAR PROGRAM INI BERHENTI !!!',13,10,'$'
PROSES:
15. Jalankan program diatas, amati output yang terjadi. Berikan penjelasan saudara dari hasil
tersebut.!
Outputnya:

.MODEL SMALL
.CODE
ORG 100H
START:
JMP MULAI
TANYA DB 'JAWABLAH PERTANYAAN DIBAWAH INI!',13,10
DB 'APAKAH KITA SEORANG MAHASISWA LAKI-LAKI (Y/T)!',13,10
DB 'JAWABAN KITA :$'
JAWAB1 DB 13,10,'KITA ADALAH SEORANG MAHASISWA LAKI-LAKI DI STT
PLN',13,10,'$'
JAWAB2 DB 13,10,'KITA ADALAH SEORANG MAHASISWA WANITA DI STT
PLN',13,10,'$'
MULAI:
MOV AH, 09H ;SERVIS CETAK LAYAR
LEA DX,TANYA ;MOV DX, OFFSET TANYA
INT 21H ;CETAK
ULANG : MOV AH,01H ;SIAP MENERIMA INPUT KEYBOARD
INT 21H ;CETAK
CMP AL,'Y' ;COMPARE DENGAN TUJUANNYA
JE LAKI ;JUMP IF EQUAL = MELOMPAT KE SUB PROGRAM YG DITUJU
CMP AL,'Y' ;COMPARE DENGAN TUJUANNYA
JE LAKI ;JUMP IF EQUAL = MELOMPAT KE SUB PROGRAM YG DITUJU
CMP AL,'T' ;COMPARE DENGAN TUJUANNYA
JE WANITA ;JUMP IF EQUAL = MELOMPAT KE SUB PROGRAM YG DITUJU
CMP AL,'T' ;COMPARE DENGAN TUJUANNYA
JE WANITA ;JUMP IF EQUAL = MELOMPAT KE SUB PROGRAM YG DITUJU
JNE ULANG ;JUMP IF NOT EQUAL = MELOMPAT MUNDUR KE SUBPROGRAM
WANITA : MOV AH, 09H ;SERVIS CETAK KARAKTER KE LAYAR
LEA DX, JAWAB2 ; MOV DX, OFFSET JAWAB2
INT 21H ;CETAK
JMP SELESAI ; JUMP=LOMPAT MAJU KE SUBPROGRAM
LAKI: MOV AH, 09H ;SERVIS CETAK KARAKTER KE LAYAR
LEA DX, JAWAB1 ;MOV DX, OFFSET JAWAB1
INT 21H ;CETAK
SELESAI : INT 20H ;KELUAR DARI DOS
END START
16. Jalankan program diatas, amati output yang terjadi. Berikan penjelasan saudara dari hasil
tersebut.!
Outputnya:

17. .MODEL SMALL


.CODE
ORG 100H
MULAI:JMP PROSES
TBL_ENTER EQU 0DH ; 0DH=ENTER
TANYA DB 'KETIK NAMA KAMU : $'
KET DB 13,10,'SELAMAT BELAJAR BAHASA RAKITAN $'
JAWAB DB 26,?,26 DUP(?)
PROSES:
MOV AH,09H
LEA DX,TANYA
INT 21H ; TANYA
MOV AH,0AH
LEA DX,JAWAB
INT 21H ; CATAT
MOV AH,09H
LEA DX,KET
INT 21H ; CETAK KET
LEA BX,JAWAB+2 ; MENUNJUK BYTE KE-2 DARI JAWAB
ULANG:
CMP BYTE PTR [BX],TBL_ENTER ; APAKAH KARAKTER ENTER
JE KELUAR
MOV DL,[BX]
MOV AH,02H
INT 21H
INC BX
JMP ULANG
KELUAR:
INT 20H
END MULAI

Jalankan program diatas, amati output yang terjadi. Berikan penjelasan saudara dari hasil tersebut.!
Outputnya:
18. Buatlah program untuk menginputkan data mahasiswa. Contoh output:
Masukan data kita.
Nim : [Enter]
Nama : [Enter]
Jurusan : [Enter]
Berikut ini adalah data kita.
Nim = 123456789
Nama = RuliRiki
Jurusan = TI
.MODEL SMALL
.CODE
ORG 100H
START: JMP MULAI
DATA1 DB 13, 10, 'PILIHAN OPERASI DIREKTORI', 13, 10
DB '1. GANTI DIREKTORI', 13,10
DB '2. BUAT DIREKTORI',13,10
DB '3. HAPUS DIREKTORI',13,10
DB 'PILIHAN ANDA:$'
DATA2 DB 13,10, 'MASUKAN NAMA DIREKTORI (FOLDER):$'
DATA3 DB 13,10, 'PROSES SUKSES$',13,10
DATA4 DB 13,10,'PROSES TERJADI KESALAHAN$',13,10
NAMA DB 13, 1, 12 DUP (0)
ID_PROSES DB ?
MULAI: MOV AH, 09H
MOV DX, OFFSET DATA1
INT 21H
MOV AH, 01
INT 21H
CMP AL, 33H
JG SALAH
CMP AL, 31H
JL SALAH
MOV ID_PROSES, AL
MOV AH, 09H
MOV DX, OFFSET DATA2
INT 21H
MOV AH, 0AH
MOV DX, OFFSET NAMA
INT 21H
MOV BX, OFFSET NAMA
INC BX
MOV AL,[BX]
XOR AH, AH
ADD BX,AX
INC BX
MOV AL,0
MOV [BX],AL
MOV DX,OFFSET NAMA
INC DX
INC DX
CMP ID_PROSES,31H
JE GANTI
CMP ID_PROSES, 32H
JE BUAT
MOV AH, 03AH
INT 21H
JC SALAH
JMP BETUL
GANTI:
MOV AH, 3BH
INT 21H
JC SALAH
JMP BETUL
BUAT:
MOV AH, 39H
INT 21H
JC SALAH
BETUL:
MOV AH,09H
MOV DX, OFFSET DATA3
INT 21H
AKHIR:
INT 20H
SALAH:
MOV AH,09H
MOV DX, OFFSET DATA4
INT 21H
JMP AKHIR
END START

19. Jalankan program diatas, amati output yang terjadi. Berikan penjelasan saudara dari hasil
tersebut.!
Outputnya:

.MODEL SMALL
.STACK 200h
.DATA
Klm DB ' Jurusan Teknik informatika STT-PLN Jakarta $'
.CODE
Proses:
MOV AX,@DATA ; Inialisasi, supaya
MOV DS,AX ; DS menunjuk pada data
20. Jalankan program diatas, amati output yang terjadi. Berikan penjelasan saudara dari hasil
tersebut.!
Outputnya:

Anda mungkin juga menyukai