SlideShare une entreprise Scribd logo
1  sur  29
1 
PRAKTIKUM I 
REGISTER 
1. REGISTER 
Dalam mempelajari bahasa assembly tidak lepas dari register, karena dalam pemograman 
bahasa assembly selalu terhubung dengan register yang digunakan dalam pemograman untuk 
melakukan operasi-operasi dan intruksi–intruksi yang diperintahkan pada bahasa assembly. Lalu 
apakah register itu ?. 
Register merupakan sebagian memori dari microprosesor yang dapat diakses dengan 
kecepatan yang sangat tinggi. Dalam melakukan pekerjaanya microprosesor selalu menggunakan 
register sebagai perantaranya. Pada microprosesor terdapat 5 jenis register yang dapat 
diakses,yaitu : 
1. Segmen Register 
Segment Register membentuk alamat memori bagi suatu data, terdapat pada 2 
operasi(Real Mode dan Protected Real), berikut register-register pada segment register 
,yaitu : CS(Code Segmen),DS(Data Segmen),SS(Stack Segmen),dan ES(Ekstra Segmen) 
2. Pointer Register 
Pointer Register adalah register yg digunakan untuk menunjukkan alamat sebuah data di 
lokasi memori. Penujukan pada saat operasi perpindahan data, operasi stack(PUSH dan 
POP), akan dieksekusi pada saat proram dijalankan. pointer register terdiri atas:SP(Stack 
Pointer), BP(Base Pointer), dan IP(Indeks Pointer) 
3. Index Register 
Berfungsi sebagai “general purpose register” lebih sering digunakan untuk menunjukkan 
alamat sebuah data di lokasi memori pada operasi-operasi string. Register ini jg 
digunakan untuk menujukkan data berindek(data tipe larik) di dlm memori, regiter ini 
terdiri atas : SI(Source Index) dan DI(Destination Index) 
4. Data Register/General Purpose Register 
Register yg digunakan untuk keperluan umum pemograman, keperluan umum yang 
dimaksud yaitu melakukan perhitungan aritmetika dan perpindahan data. Register ini 
terdiri atas: AX(Acumulator Register,(AH,AL), BX(Base Register(BH,BL), DX(Data 
Register,(DH,DL) dan CX(Counter Register(CH,CL) 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
2 
5. Flag Register 
Flag Register berfungsi untuk menunjukan status(Keadaan) sesaat dari mikroprocecor. 
Register ini terdiri atas : overflow,direction,overflow,zero,carry,parity,auxiliary,sign,trap 
dan Interrupt . 
2. 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 
3. Procedure Percobaan 
1. Jalan Command Prompt 
2. Ketikan”Debug” pada C prompt kemudian tekan Enter 
3. Ketikan Huruf A 100 kemudian tekan enter 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
3 
4. Selanjutnya ketikan program di bawah ini : 
Mov ax,05 
Mov ds,ax 
Mov si,012 
Mov di,021 
Mov ax,si 
Mov di,ax 
Int 20 
5. Untuk melihat perubahan register terhadap intruksi yang diberiakan program diatas tekan 
enter, ketikan T dan kemudian tekan enter. 
6. Untuk menyimpan program yang kita buat ke disk adalah dengan mengetikan huruf n 
nama_proram.com, misalnya :-n aksesreg.com, kemudian Ketikan w lalu tekan Enter 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
4 
Tugas : 
1. Buatlah Analis Program diatas(dikumpulkan) 
2. rubahlah program diatas untuk menukar data register DI ke Register SI, kemudian hapus 
data pada register AX(dikumpulkan) 
PRAKTIKUM II 
MODEL PROGRAM COM DAN INTRUPSI 
1. MODEL PROGRAM COM 
Untuk membuat program .COM yang hanya menggunakan 1 segment,. Bentuk yang 
digunakan disini adalah bentuk program yang dianjurkan(Ideal). Dipilihnya bentuk program 
ideal dalam buku ini dikarenakan pertimbangan dari berbagai keunggulan bentuk program ideal 
ini seperti, prosesnya lebih cepat dan lebih mudah digunakan oleh berbagai bahasa tingkat tinggi 
yang terkenal(Turbo Pascal dan C). 
----------------------------------------------------------- 
.MODEL SMALL 
.CODE 
ORG 100H 
Label1 : JMP Label2 
+---------------------+ 
| TEMPAT DATA PROGRAM | 
+---------------------+ 
Label2 : +---------------------+ 
| TEMPAT PROGRAM | 
+---------------------+ 
INT 20H 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
5 
END Label1 
----------------------------------------------------------- 
Supaya lebih jelas bentuk dari program ideal, marilah kita telusuri lebih lanjut dari bentuk 
program ini. 
MODEL SMALL 
Tanda directive ini digunakan untuk memberitahukan kepada assembler bentuk memory yang 
digunakan oleh program kita. Supaya lebih jelas model-model yang bisa digunakan adalah : 
- TINY 
Jika program anda hanya menggunakan 1 segment seperti program COM. Model ini disediakan 
khusus untuk program COM. 
- SMALL 
Jika data dan code yang digunakan oleh program kurang dari ukuran 1 segment atau 64 KB. 
- MEDIUM 
Jika data yang digunakan oleh program kurang dari 64 KB tetapi code yang digunakan bisa lebih 
dari 64 KB. 
- COMPACT 
Jika data yang digunakan bisa lebih besar dari 64 KB tetapi codenya kurang dari 64 KB. 
- LARGE 
Jika data dan code yang dipakai o leh program bisa lebih dari 64 KB. 
- HUGE 
Jika data, code maupun array yang digunakan bisa lebih dari 64 KB. Mungkin ada yang 
bertanya-tanya mengapa pada program COM yang dibuat digunakan model SMALL dan 
bukannya TINY ? Hal ini disebabkan karena banyak dari compiler bahasa tingkat tinggi yang 
tidak bisa berkomunikasi dengan model TINY, sehingga kita menggunakan model SMALL 
sebagai pemecahannya. 
.CODE 
Tanda directive ini digunakan untuk memberitahukan kepada assembler bahwa kita akan mulai 
menggunakan Code Segment-nya disini. Code segment ini digunakan untuk menyimpan 
program yang nantinya akan dijalankan. 
. ORG 100h 
Pada program COM perintah ini akan selalu digunakan. Perintah ini digunakan untuk 
memberitahukan assembler supaya program pada saat dijalankan(diload ke memory) ditaruh 
mulai pada offset ke 100h(256) byte. Dapat dikatakan juga bahwa kita menyediakan 100h byte 
kosong pada saat program dijalankan. 100h byte kosong ini nantinya akan ditempati oleh 
PSP(Program Segment Prefix) dari program tersebut. PSP ini digunakan oleh DOS untuk 
mengontrol jalannya program tersebut. 
JMP 
Perintah JMP(JUMP) ini digunakan untuk melompat menuju tempat yang ditunjukkan oleh 
perintah JUMP. Adapun syntaxnya adalah: 
JUMP Tujuan . 
Dimana tujuannya dapat berupa label seperti yang digunakan pada bagan diatas. Mengenai 
perintah JUMP ini akan kita bahas lebih lanjut nantinya. Perintah JUMP yang digunakan pada 
bagan diatas dimaksudkan agar melewati tempat data program, karena jika tidak ada perintah 
JUMP ini maka data program akan ikut dieksekusi sehingga kemungkinan besar akan 
menyebabkan program anda menjadi Hang. 
INT 20h 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
6 
Perintah INT adalah suatu perintah untuk menghasilkan suatu interupsi 
INT NoInt 
Interupsi 20h berfungsi untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada 
Dos. Pada program COM cara ini bukanlah satu-satunya tetapi cara inilah yang paling efektif 
untuk digunakan. Bila anda lupa untuk mengakhiri sebuah program maka program anda tidak 
akan tahu kapan harus selesai, hal ini akan menyebabkan komputer menjadi hang. 
2. PROSEDUR PERCOBAAN 1 
1. Aktifkan Editor(Notepad) kemudian ketikan progam dibawah ini : 
.MODEL SMALL 
.CODE 
ORG 100h 
MULAI: 
jmp CETAK 
Hello DB 'SELAMAT DATANG ' 
DB 'DI BHS ASSEMBLY' 
DB '$' 
CETAK : 
MOV AH,09H 
MOV DX,OFFSET Hello 
INT 21H 
HABIS: 
INT 20h 
END MULAI 
2. Simpan Program yang anda ketik diatas dengan Hello.asm 
3. Gunakan perintah tasm untuk mengubah ke file objek 
C:/tasm>tasm Hello.asm 
4. Gunakan perintah tlink untuk merubah ke file Com 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
7 
C:/tasm>tlink Hello.obj/t 
5. Ketikan nama program untuk menjalankan program comnya 
C:/tasm>Hello 
3. INTRUPSI 
(MENCETAK KARAKTER DAN KALIMAT) 
Intrupsi adalah permitaan khusus kepada mikroprosesor untuk melakukan sesuatu. 
Mikroprosesor akan menghentikan dahulu apa sedang dikerjakan dan melayani permitaan khusus 
tersebut, bila terjadi intrupsi.ada 2 jenis intrupsi yaitu intrupsi vector(yg dimilki mikroprosesor) 
dan intruksi intrupsi (dimilki PC). Ada banyak intrupsi yg dimiliki oleh mikroprosesor dan PC 
tapi disini kita hanya pada berfungsi intrupsi 20 dan 21. Intrupsi 21 hanya memilki 1 fungsi 
layanaan yaitu untuk menghetikan program, sedangkan intrupsi 21 terdiri atas 2 layanan yaitu 
layanan nomor 02h berfungsi mencetak karakter ASCII dan layana nomor 09h berfungsi 
mencetak String ASCII. Untuk memanggil layanan nomor intrupsi harus dimasukan dulu ke 
register AH sebelum INT. 
4. PROSEDUR PERCOBAAN 2 
1. Aktifkan Editor(Notepad) kemudian ketikan progam dibawah ini : 
.MODEL SMALL 
.CODE 
ORG 100h 
Proses : 
MOV AH,02h 
MOV DL,'A’ 
INT 21h 
INT 20h 
END Proses 
2. Simpan Program yang anda ketik diatas dengan Latihan1.asm 
3. Gunakan perintah tasm untuk mengubah ke file objek 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
8 
C:/tasm>tasm Latihan1.asm 
4. Gunakan perintah tlink untuk merubah ke file Com 
C:/tasm>tlink Latihan1.obj/t 
5. Ketikan nama program untuk menjalankan program comnya 
C:/tasm>Latihan1 
Tugas : 
1. Buatlah analisis terhadap program di atas : 
2. Buatlah program untuk menampilkan karakter ‘K’ 
3. Dikumpulkan 
6. PROSEDUR PERCOBAAN 3 
1. Aktifkan Editor(Notepad) kemudian ketikan progam dibawah ini : 
.model small 
.code 
org 100h 
Satu: 
JMP Dua 
Kal1 DB 'Gue Lagi Belajar' 
DB 'Bahasa Assembly $' 
Kal2 DB 'Ternyata...' 
DB 'Asik Boo...' 
DB '$' 
Dua : 
Mov AH,09h 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
9 
Lea DX,Kal1 
int 21h 
Tiga : 
Mov DX,Offset Kal2 
int 21h 
int 20h 
End Satu 
2. Simpan Program yang anda ketik diatas dengan Latihan2.asm 
3. Gunakan perintah tasm untuk mengubah ke file objek 
C:/tasm>tasm Latihan2.asm 
4. Gunakan perintah tlink untuk merubah ke file Com 
C:/tasm>tlink Latihan2.obj/t 
5. Ketikan nama program untuk menjalankan program comnya 
C:/tasm>Latihan2 
Tugas : 
1. Buatlah analisis terhadap program di atas : 
2. Buatlah program untuk menampilkan karakter ‘ PRODI INFORMATIKA’ 
3. Dikumpulkan 
6. PROSEDUR PERCOBAAN 4 
1. Aktifkan Editor(Notepad) kemudian ketikan progam dibawah ini : 
.MODEL SMALL 
.CODE 
ORG 100h 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
10 
Proses : 
MOV AH,02h 
MOV DL,'A' 
MOV CX,10h 
Ulang : 
INT 21h 
INC DL 
LOOP Ulang 
INT 20h 
END Proses 
2. Simpan Program yang anda ketik diatas dengan Latihan3.asm 
3. Gunakan perintah tasm untuk mengubah ke file objek 
C:/tasm>tasm Latihan3.asm 
4. Gunakan perintah tlink untuk merubah ke file Com 
C:/tasm>tlink Latihan3.obj/t 
5. Ketikan nama program untuk menjalankan program comnya 
C:/tasm>Latihan3 
Tugas : 
4. Buatlah analisis terhadap program di atas : 
5. Buatlah program untuk menampilkan karakter ‘ FEDCBA’ 
6. Dikumpulkan 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
11 
PRAKTIKUM III 
ARITMETIKA 
1. OPERASI PERNAMBAHAN 
ADD 
Untuk menambah dalam bahasa assembler digunakan perintah ADD dan ADC serta INC. 
Perintah ADD digunakan dengan syntax : 
ADD Tujuan,Asal 
Perintah ADD ini akan menambahkan nilai pada Tujuan dan Asal. Hasil yang didapat akan 
ditaruh pada Tujuan, dalam bahasa pascal sama dengan instruksi 
Tujuan:=Tujuan + Asal. 
Sebagai contohnya : 
MOV AH,15h ; AH:=15h 
MOV AL,4 ; AL:=4 
ADD AH,AL ; AH:=AH+AL, jadi AH=19h 
Perlu anda perhatikan bahwa pada perintah ADD ini antara Tujuan dan Asal harus mempunyai 
daya tampung yang sama, misalnya register AH(8 bit) dan AL(8 bit), AX(16 bit) dan BX(16 bit). 
ADC 
Perintah ADC digunakan dengan cara yang sama pada perintah ADD, yaitu : 
ADC Tujuan,Asal 
Perbedaannya pada perintah ADC ini Tujuan tempat menampung hasil pertambahan Tujuan dan 
Asal ditambah lagi dengan carry flag (Tujuan:=Tujuan+Asal+Carry). Pertambahan yang 
demikian bisa memecahkan masalah seperti yang pernah kita kemukakan, seperti pertambahan 
pada bilangan 12345678h+9ABCDEF0h. Seperti yang telah kita ketahui bahwa satu register 
hanya mampu menampung 16 bit, maka untuk pertambahan seperti yang diatas bisa anda 
gunakan perintah ADC untuk memecahkannya, Contoh: 
MOV AX,1234h ; AX = 1234h CF = 0 
MOV BX,9ABCh ; BX = 9ABCh CF = 0 
MOV CX,5678h ; BX = 5678h CF = 0 
MOV DX,0DEF0h ; DX = DEF0h CF = 0 
ADD CX,DX ; CX = 3568h CF = 1 
ADC AX,BX ; AX = AX+BX+CF = ACF1 
Hasil penjumlahan akan ditampung pada register AX:CX yaitu ACF13568h. Adapun flag-flag 
yang terpengaruh oleh perintah ADD dan ADC ini adalah CF,PF,AF,ZF,SF dan OF. 
INC 
Perintah INC(Increment) digunakan khusus untuk pertambahan dengan 1. Perintah INC hanya 
menggunakan 1 byte memory, sedangkan perintah ADD dan ADC menggunakan 3 byte. Oleh 
sebab itu bila anda ingin melakukan operasi pertambahan dengan 1 gunakanlah perintah INC. 
Syntax pemakainya adalah : 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
12 
INC Tujuan 
Nilai pada tujuan akan ditambah dengan 1, seperti perintah Tujuan:=Tujuan+1 dalam Turbo 
Pascal. Tujuan disini dapat berupa suatu register maupun memory. Contoh : perintah INC AL 
akan menambah nilai di register AL dengan 1. Adapun 
flag yang terpengaruh oleh perintah ini adalah OF,SF,ZF,AF dan PF. 
2. OPERASI PENGURANGAN 
SUB Tujuan,Asal 
Perintah SUB akan mengurangkan nilai pada Tujuan dengan Asal. Hasil yang didapat akan 
ditaruh pada Tujuan, dalam bahasa pascal sama dengan instruksi 
Tujuan:=Tujuan-Asal. 
Contoh : 
MOV AX,15 ; AX:=15 
MOV BX,12 ; BX:=12 
SUB AX,BX ; AX:=15-12=3 
SUB AX,AX ; AX=0 
Untuk menolkan suatu register bisa anda kurangkan dengan dirinya sendiri seperti SUB AX,AX. 
SBB 
Seperti pada operasi penambahan, maka pada operasi pengurangan dengan bilangan yang 
besar(lebih dari 16 bit), bisa anda gunakan perintah SUB disertai dengan SBB(Substract With 
Carry). Perintah SBB digunakan dengan syntax: 
SBB Tujuan,Asal 
Perintah SBB akan mengurangkan nilai Tujuan dengan Asal dengan cara yang sama seperti 
perintah SUB, kemudian hasil yang didapat dikurangi lagi dengan Carry Flag(Tujuan:=Tujuan- 
Asal-CF). 
DEC 
Perintah DEC(Decrement) digunakan khusus untuk pengurangan dengan 1.Perintah DEC hanya 
menggunakan 1 byte memory, sedangkan perintah SUB dan SBB menggunakan 3 byte. Oleh 
sebab itu bila anda ingin melakukan operasi pengurangan dengan 1 gunakanlah perintah DEC. 
Syntax pemakaian perintah dec ini adalah: 
DEC Tujuan 
Nilai pada tujuan akan dikurangi 1, seperti perintah Tujuan:=Tujuan-1 dalam Turbo Pascal. 
Tujuan disini dapat berupa suatu register maupun memory. Contoh : perintah DEC AL akan 
mengurangi nilai di register AL dengan 1. 
3. OPERASI PERKALIAN 
Untuk perkalian bisa digunakan perintah MUL dengan syntax: 
MUL Sumber 
Sumber disini dapat berupa suatu register 8 bit(Mis:BL,BH,..), register 16 bit(Mis:BX,DX,..) 
atau suatu varibel. Ada 2 kemungkinan yang akan terjadi pada perintah MUL ini sesuai dengan 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
13 
jenis perkalian 8 bit atau 16 bit. Bila Sumber merupakan 8 bit seperti MUL BH maka komputer 
akan mengambil nilai yang terdapat pada BH dan nilai pada AL untuk dikalikan. Hasil yang 
didapat akan selalu disimpan pada register AX. Bila sumber merupakan 16 bit seperti MUL BX 
maka komputer akan mengambil nilai yang terdapat pada BX dan nilai pada AX untuk dikalikan. 
Hasil yang didapat akan disimpan pada register DX dan AX(DX:AX), jadi register DX 
menyimpan Word tingginya dan AX menyimpan Word rendahnya. Sebelum Anda bisa 
mengalikan dua digit ASCII, Anda harus menutup 4 bit angka atas dari masing-masing digit. Hal 
ini menyebabkan hasil BCD (satu digit BCD per byte) pada setiap byte. Setelah dua hasil digit 
BCD dikalikan, instruksi AAM digunakan untuk mengatur hasil dari dua hasil digit BCD dalam 
AX. AAM berfungsi hanya setelah pengalian dari dua hasil byte BCD, dan AAM hanya 
berfungsi hanya pada suatu operand dalam AL. AAM memperbaharui PF, SF, 
dan ZF, tetapi AF, CF, dan OF tidak diterangkan. 
CONTOH: 
; AL = 00000101 = hasil BCD 5 
; BH = 00001001 = hasil BCD 9 
MUL BH ; AL x BH ; hasil dalam AX 
; AX = 00000000 00101101 = 002DH 
AAM ; AX = 00000100 00000101 = 0405H, 
; yang merupakan hasil BCD untuk angka 45. 
; Jika menginginkan kode ASCII untuk hasilnya, gunakan 
instruksi berikutnya 
OR AX, 3030H ; Letakkan 3 pada angka atas di setiap byte. 
; AX = 00110100 00110101 = 3435 H, 
; yang merupakan kode ASCII untuk angka 45 
4. PEMBAGIAN 
Operasi pada pembagian pada dasarnya sama dengan perkalian. Untuk operasi pembagian 
digunakan perintah DIV dengan syntax: 
DIV Sumber 
Bila sumber merupakan operand 8 bit seperti DIV BH, maka komputer akan mengambil nilai 
pada register AX dan membaginya dengan nilai BH. Hasil pembagian 8 bit ini akan disimpan 
pada register AL dan sisa dari pembagian akan disimpan pada register AH. Bila sumber 
merupakan operand 16 bit seperti DIV BX, maka komputer akan mengambil nilai yang terdapat 
pada register DX:AX dan membaginya dengan nilai BX. Hasil pembagian 16 bit ini akan 
disimpan pada register AX dan sisa dari pembagian akan disimpan pada register DX. AAD 
mengubah dua hasil digit BCD menjadi AH dan AL menjadi angka biner yang seimbang dalam 
AL. Pengaturan ini harus dibuat sebelum membagi dua hasil digit BCD dalam AX dengan byte 
hasil BCD. Setelah pembagian, AL akan berisi hasil bagi dari hasil BCD dan AH akan berisi sisa 
hasil BCD. PF, SF, dan ZF diperbaharui. AF, CF, dan OF tidak diterangkan setelah AAD. 
CONTOH: 
; AX = 0607H hasil BCD untuk 67 desimal 
; CH = 09H, sekarang atur menjadi biner 
AAD ; Hasil: AX = 0043 = 43H = 67 desimal 
DIV CH ; Bagi AX dengan hasil BCD pada CH 
; Hasil Bagi : AL = 07 hasil BCD 
; Sisa : AH = 04 hasil BCD 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
14 
; Flags tidak diterangkan setelah DIV 
5. PROSEDUR PERCOBAAN 1 
1. Jalan Command Prompt 
2. Ketikan”Debug” pada C prompt kemudian tekan Enter 
3. Ketikan Huruf A 100 kemudian tekan enter 
4. Selanjutnya ketikan program di bawah ini : 
MOV AH,15h 
MOV AL,4 
ADD AH,AL 
MOV AX,1234h 
MOV BX,0F221h 
ADD AX,BX 
MOV AX,1234h 
MOV BX,9ABCh 
MOV CX,5678h 
MOV DX,0DEF0h 
ADD CX,DX 
ADC AX,BX 
INC AL 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
15 
INT 20h 
5. Untuk melihat perubahan register terhadap intruksi yang diberiakan program diatas tekan 
enter, ketikan T dan kemudian tekan enter. 
6. Untuk menyimpan program yang kita buat ke disk adalah dengan mengetikan huruf n 
nama_proram.com, misalnya :-n aksesreg.com, kemudian Ketikan w lalu tekan Enter 
Tugas : 
1. Buatlah Analis Program diatas(dikumpulkan) 
2. rubahlah program diatas untuk register ah 20 dan register al 10, dan berapakah hasil register 
AL terkahir 
PRAKTIKUM IV 
STACK DAN PROCEDUR 
1. STACK 
Secara harfiah, stack artikan sebagai 'tumpukan'. Stack adalah bagian memory yang digunakan 
untuk menyimpan nilai dari suatu register untuk sementara. intruksi-intruksi pada assembler 
yang ekskusi data yang pada register stack yaitu intruksi PUSH, POP,PUSF dan POPF. Stack 
memenggunakan pasangan register SS(Stack Segmen) dan SP(Stack Pointer) untuk menunjukan 
lokasi dari stack. 
. 
PUSH DAN POP 
Stack dapat kita analogikan sebagai sebuah tabung yang panjang. Sedangkan nilai pada register 
dapat dibayangkan berbentuk koin yang dapat dimasukkan dalam tabung tersebut. Untuk 
memasukkan nilai suatu register pada stack, digunakan perintah push dengan syntax: 
PUSH Reg16Bit 
Sebagai contohnya pada perintah: 
MOV AX,12 
MOV BX,33 
MOV CX,99 sw PUSH AX ; Simpan nilai AX pada stack 
PUSH BX ; Simpan nilai BX pada stack 
PUSH CX ; Simpan nilai CX pada stack 
Untuk mengambil keluar koin nilai pada tabung stack, digunakan perintah pop dengan syntax: 
POP Reg16Bit 
Perintah POP akan mengambil koin nilai pada stack yang paling atas dan dimasukkan pada 
Reg16Bit. Dari sini dapat anda lihat bahwa data yang terakhir dimasukkan akan merupakan yang 
pertama dikeluarkan. Inilah sebabnya operasi stack dinamankan LIFO(Last In First Out). 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
16 
Sebagai contohnya, untuk mengambil nilai dari register AX, BX dan CX yang disimpan pada 
stack harus dilakukan pada register CX dahulu barulah BX dan AX, seperti: 
POP CX ; Ambil nilai pada puncak stack, masukkan ke CX 
POP BX ; Ambil nilai pada puncak stack, masukkan ke BX 
POP AX ; Ambil nilai pada puncak stack, masukkan ke AX 
Bila anda terbalik dalam mengambil nilai pada stack dengan POP AX kemudian POP BX dan 
POP CX, maka nilai yang akan anda dapatkan pada register AX, BX dan CX akan terbalik. 
Sehingga register AX akan bernilai 99 dan CX akan bernilai 12. Seperti yang telah kita ketahui, 
data tidak bisa dicopykan antar segment atau memory. Untuk mengcopykan data antar segment 
atau memory anda harus menggunakan register general purpose sebagai perantaranya, seperti: 
MOV AX,ES ; Untuk menyamakan register 
MOV DS,AX ; ES dan DS 
Dengan adanya stack, anda bisa menggunakannya sebagai perantara, sehingga akan tampak 
seperti: 
PUSH ES ; Untuk menyamakan register 
POP DS ; ES dan DS 
2. PROCEDURE PERCOBAAN 
1. Aktifkan Editor(Notepad) kemudian ketikan progam dibawah ini : 
.MODEL SMALL 
.CODE 
ORG 100h 
TData : JMP Proses 
kal1 db 'saya $' 
kal2 db 'dia $' 
Ganti db ,13,10,'$' 
Stacks DW ? 
Proses: 
LEA DX,Kal1 
PUSH DX 
MOV AH,09 
INT 21h 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
17 
LEA DX,Kal2 
PUSH DX 
MOV AH,09 
INT 21h 
LEA DX,Ganti 
INT 21h 
POP DX 
INT 21h 
POP DX 
INT 21h 
Exit: INT 20h 
END TData 
2. Simpan Program yang anda ketik diatas dengan Latihan4.asm 
3. Gunakan perintah tasm untuk mengubah ke file objek 
C:/tasm>tasm Latihan4.asm 
4. Gunakan perintah tlink untuk merubah ke file Com 
C:/tasm>tlink Latihan4.obj/t 
5. Ketikan nama program untuk menjalankan program comnya 
C:/tasm>Latihan4 
Tugas : 
1. Buatlah analisis terhadap program di atas : 
2. Buatlah Perulangan untuk mencetak isi dari Stack 
3. Dikumpulkan 
3. PROSEDURE 
Procedure adalah sekelompok intruksi yang dibangun sedemikaian rupa(dengan cara-cara 
tertentu) untuk melakukan tugas-tugas tertentu dan dapat dipanggil(digunakan) secara berulang- 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
18 
ulang oleh sebuah program.procedure ditulis terpisah dari program utamanaya, bilamana 
program utama harus menjalankan fungsi yang didefenisikan oleh procedure, maka procedure 
harus dipanggil kedalam operasi. Dalam pemanggilan procedure mengizinkan dua tipe intruksi 
yaitu call intrasegment dan ret. Call di gunakan untuk memanggil subroutine dan Ret untuk 
kembali ke program utama. Berikut kerangka dari procedure : 
;……………………………………………………; 
Nama_Proc PROC NEAR/FAR ;nama procedure 
…………. ; 
…………. ; 
…………. ; 
RET ; 
Nama_Proc ENDP ;akhir procedure 
;…………………………………………………..; 
Keuntungan Menggunakan Procedur: 
1. Dapat digunakan berulang-ulang 
2. Penelusuran kesalahan lebih mudah 
Kelemahan Menggunakan Procedure : 
Waktu eksekusi program lebih lama dari pd tampa procedure krn microprocecor harus 
melakukan lomptan ketika memangil procedure tersebut 
4. PROCEDUR PERCOBAAN 
1. Aktifkan Editor(Notepad) kemudian ketikan progam dibawah ini : 
.Model Small 
.Code 
ORG 100h 
Mulai : 
mov cx,05h 
Mov dl,’A’ 
Ulang: 
Call CTK_KAR 
Inc dl 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
19 
Loop Ulang 
Habis : int 20h 
CTK_KAR PROC NEAR 
Mov ah,02h 
Int 21h 
RET 
CTK_KAR ENDP 
End Mulai 
2. Simpan Program yang anda ketik diatas dengan Latihan5.asm 
3. Gunakan perintah tasm untuk mengubah ke file objek 
C:/tasm>tasm Latihan5.asm 
4. Gunakan perintah tlink untuk merubah ke file Com 
C:/tasm>tlink Latihan5.obj/t 
5. Ketikan nama program untuk menjalankan program comnya 
C:/tasm>Latihan5 
Tugas : 
1. Buatlah analisis terhadap program di atas : 
2. Rubahlah program Latihan2.asm ke dalam progam menggunakan procedure 
3. Dikumpulkan 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
20 
PRAKTIKUM V 
MAKRO 
1. MAKRO 
Makro adalah nama simbolik dari string teks atau satu blok kode yang akan digunakan berulang-ulang 
dalam program. Pada dasarnya macro sama dengan procedure, tapi pada makro tidak 
menggunakan perintah CALL untuk pemanggilan procedure dan RET untuk kembali ke program 
utama. Makro di tulis diluar dari tubuh program utama.Kerangka makro sebagai berikut : 
;………………………………………………………; 
Nama_Makro MAC [P1,P2] ;nama makro 
…………. ; 
…………. ;tubuh macro 
…………. ; 
ENDM ;akhir makro 
;………………………………………………………; 
Ket : Nama adalah makro banyak baris yang di defis, "P1" dan "P2" adalah parameter yang bisa 
anda gunakan pada macro. Parameter ini berbentuk optional, artinya bisa digunakan ataupun 
tidak. 
Keuntungan Menggunakan Macro: 
1. Makro cukup dipanggil dengan mengeksekusi namanya 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
21 
2. Penulusuran Kesalahan lebih mudah 
3. Terdapat parameter optional seperti hal bahasa pemograman tingkat tinggi 
2. PROCEDURE PERCOBAAN 
1. Aktifkan Editor(Notepad) kemudian ketikan progam dibawah ini : 
Ctk_Kar Macro Kar 
mov dl,kar 
mov ah,02h 
int 21h 
Endm 
.model small 
.code 
Org 100h 
Mulai : 
Ctk_Kar ‘A’ 
Ctk_Kar ‘B’ 
Ctk_Kar ‘C’ 
Ctk_Kar ‘D’ 
Ctk_Kar ‘E’ 
Habis : int 20h 
End mulai 
2. Simpan Program yang anda ketik diatas dengan Latihan6.asm 
3. Gunakan perintah tasm untuk mengubah ke file objek 
C:/tasm>tasm Latihan6.asm 
4. Gunakan perintah tlink untuk merubah ke file Com 
C:/tasm>tlink Latihan6.obj/t 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
22 
5. Ketikan nama program untuk menjalankan program comnya 
C:/tasm>Latihan6 
Tugas : 
1. Buatlah analisis terhadap program di atas : 
2. Rubahlah program Latihan2.asm ke dalam progam menggunakan makro 
3. Dikumpulkan 
PRAKTIKUM VI 
LOMPATAN 
1. Lompatan Tidak Bersyarat 
Lompatan tak bersyara adalah lompatan ke lokasi memori tertentu tampa ada pengecekan 
kondisi tertentu. perintah ini tidak menyeleksi keadaan apapun untuk melakukan suatu 
lompatan.Setiap ditemui perintah ini maka lompatan pasti dilakukan. sintaknya : 
JMP tujuan 
Contoh : 
JMP NEXT 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
23 
Kal db ‘Saya’ 
……………………... 
NEXT: 
Mov DX,Kal 
……………………… 
setiap menemkan perintah JMP akan melakukan lompatan ke label yang ditujuh dengan tidak 
mengjalankan baris di bawah JMP. Misalnya pada contoh diatas Label bernama NEXT. 
2. PROCEDUR PERCOBAAN 1 
1. Aktifkan Editor(Notepad) kemudian ketikan progam dibawah ini : 
.model small 
.code 
org 100h 
Satu: 
JMP Tiga 
Kal1 DB 'Lagi Belajar $' 
Kal2 DB ‘Belajar Lagi….!$’ 
Dua : 
Mov AH,09h 
Lea DX,Kal1 
int 21h 
Tiga : 
Mov AH,09h 
Mov DX,Offset Kal2 
int 21h 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
24 
int 20h 
End Satu 
2. Simpan Program yang anda ketik diatas dengan Latihan7.asm 
3. Gunakan perintah tasm untuk mengubah ke file objek 
C:/tasm>tasm Latihan7.asm 
4. Gunakan perintah tlink untuk merubah ke file Com 
C:/tasm>tlink Latihan7.obj/t 
5. Ketikan nama program untuk menjalankan program comnya 
C:/tasm>Latihan7 
Tugas : 
1. Buatlah analisis terhadap program di atas : 
2. Dikumpulkan 
3. Lompatan Bersyarat 
Lomptan ke lokasi memori tertentu dgn pengecekan nilai, bila nilainya terpenuhi maka akan 
melakukan lompatan dan bila tidak terpenuhi maka akan menjalankan intruksi dibaris 
berikutnya. Biasanya lompatan jenis ini diikuti CMP 
CMP Operand1,Operand2 
Berikut perintah-perintah lompatan bersyarat: 
Perintah Lompatan Kondisi 
JA <Jump If Above> Lompat, jika Operand1 > Operand2 untuk 
bilangan tidak bertanda 
JG <Jump If Greater> Lompat, jika Operand1 > Operand2 untuk 
bilangan bertand 
JE <Jump If Equal> Lompat, jika Operand1 = Operand2 
JNE <Jump If Not Equal> Lompat, jika Operand1 tidak sama dengan 
Operand2 
JB <Jump If Below> Lompat, jika Operand1 < Operand2 untuk 
bilangan tidak bertanda 
JL <Jump If Less> Lompat, jika Operand1 < Operand2 untuk 
bilangan bertanda 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
25 
JBE <Jump If Below or Equal> Lompat, jika operand1 <= Operand2 untuk 
bilangan tidak bertanda 
JLE <Jump If Less or Equal> Lompat, jika Operand1 <= Operand2 
untuk bilangan bertanda 
JAE <Jump If Above or Equal> Lompat, jika Operand1 >= Operand2 
untuk bilangan tidak bertanda 
JGE <Jump If Greater or Equal Lompat, jika Operand1 >= Operand2 untuk 
bilangan tidak bertanda 
JC <Jump Carry> Lompat, jika Operand1 >= Operand2 
Lompat, jika Carry flag=1 
JCXZ <Jump If CX is Zero> Lompat, jika CX=0 
JNA <Jump If Not Above> Lompat, jika Operand1 < Operand2 dengan 
CF=1 atau ZF=1 
JNAE <Jump If Not Above nor Equal> Lompat, jika Operand1 < Operand2 dengan 
CX=1 
JNB <Jump If Not Below> Lompat, jika Operand1 > Operand2 dengan 
CF=0 
JNBE <Jump If Not Below nor Equal> Lompat, jika Operand1 > Operand2 dengan 
CF=0 dan ZF=0 
JNC <Jump If No Carry> Lompat, jika CF=0 
JNG <Jump If Not Greater> |Lompat, jika Operand1 <= Operand2 dengan 
ZF=1 atau SF tidak sama OF 
JNGE <Jump If Not Greater Nor Equal> | Lompat, jika Operand1 <= Operand2 dengan 
SF tidak sama OF 
JNL <Jump If Not Less> Lompat, jika Operand1 >= Operand2 dengan 
SF=OF 
4. PROCEDURE PERCOBAAN 2 
1. Aktifkan Editor(Notepad) kemudian ketikan progam dibawah ini : 
.MODEL SMALL 
.CODE 
ORG 100h 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
26 
TData: JMP Proses 
BilA DB 67 
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 
CMP AL,BilB 
JB AKecil 
JE Sama 
JA ABesar 
LEA DX,Kal0 
JMP Cetak 
Sama: 
LEA DX,Kal1 
JMP Cetak 
AKecil: 
LEA DX,Kal0 
JMP Cetak 
ABesar: 
LEA DX,Kal2 
JMP Cetak 
Cetak: 
MOV AH,09 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
27 
INT 21h 
EXIT: INT 20h 
END TData 
2. Simpan Program yang anda ketik diatas dengan Latihan8.asm 
3. Gunakan perintah tasm untuk mengubah ke file objek 
C:/tasm>tasm Latihan8.asm 
4. Gunakan perintah tlink untuk merubah ke file Com 
C:/tasm>tlink Latihan8.obj/t 
5. Ketikan nama program untuk menjalankan program comnya 
C:/tasm>Latihan8 
Tugas : 
1. Buatlah analisis terhadap program di atas : 
2. Rubah isi variable BilA dan BilB pada program diatas, menjadi BilA =70 dan BilB=70 dan 
kemudian buatlah analisis terhadap program yang anda buat 
3. Dikumpulkan 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
28 
DAFTAR ISI 
PRAKTIKUM I REGISTER………………………………………..…………….………..…...1 
1. Register………………………………………………………..…………………….……1 
2. Perintah-Perintah Debug……………………………………………………………..…..2 
3. Procedur Percobaan 1……….………………………………………………………..….2 
PRAKTIKUM II MODEL PROGRAM COM DAN INTRUPSI…………………………..…..4 
1. Model Program COM……………………………………………………………….……4 
2. Procedur Percobaan 1…..…………………………………………………………….…..5 
3. Intrupsi…………………………………………………………………………………...6 
4. Procedur Percobaan 2………..……………………………………………………….…..6 
PRAKTIKUM III ARITMETIKA………………………………………………………………9 
1. Operasi Penambahan……………………………………………………………………..9 
2. Operasi Perngurangan……………………………………………………………………10 
3. Operasi Perkalian……………...…………………………………………………………11 
4. Operasi Pembagian………………………………………………………………………11 
5. Procedur Percobaan…………………………………………………………….………..12 
PRAKTIKUM IV STACK DAN PROCEDURE………………………………………………13 
1. Stack……………………………………………………………………………………..13 
2. Procedur Percobaan 1…………………………………………...………………………14 
3. Procedur………………………………………………………………………………….15 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0
29 
4. Procedur Percobaan 2……………………...…………………………………………….15 
PRAKTIKUM V MACRO………….…………………………………………………………..17 
1. Macro…………………………………………………………………………………….17 
2. Procedur Percobaan 1…………………………………………………………...……….17 
PRAKTIKUM VI LOMPATAN……………….………………………….…………………..19 
1. Lompatan Tidak Bersyarat………………………………………………………………19 
2. Procedur Percobaan 1……………………………………………………………………19 
3. Lompatan Bersyarat……………………………………………………………………..20 
4. Procedure Percobaan 2…………………………………………………………………..21 
P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U 
U T A R A 
REV 1.0

Contenu connexe

Tendances

Analisis Semantik - P 6 Teknik Kompilasi
Analisis Semantik - P 6 Teknik KompilasiAnalisis Semantik - P 6 Teknik Kompilasi
Analisis Semantik - P 6 Teknik Kompilasiahmad haidaroh
 
Sistem Basis Data(PPT)
Sistem Basis Data(PPT)Sistem Basis Data(PPT)
Sistem Basis Data(PPT)tafrikan
 
Part 7 - Mengenal Array di Visual Basic .Net
Part 7 - Mengenal Array di Visual Basic .NetPart 7 - Mengenal Array di Visual Basic .Net
Part 7 - Mengenal Array di Visual Basic .NetRolly Yesputra
 
Kerangka kerja interaksi
Kerangka kerja interaksiKerangka kerja interaksi
Kerangka kerja interaksiAriev Kusuma
 
5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)Kelinci Coklat
 
Implementasi queue
Implementasi queueImplementasi queue
Implementasi queueRhe Dwi Yuni
 
Mata Kuliah Basis Data
Mata Kuliah Basis DataMata Kuliah Basis Data
Mata Kuliah Basis DataMr. Nugraha
 
Perangkat keras dan lunak komputer
Perangkat keras dan lunak komputerPerangkat keras dan lunak komputer
Perangkat keras dan lunak komputerKumara Pandya
 
Pemrograman Python untuk Pemula
Pemrograman Python untuk PemulaPemrograman Python untuk Pemula
Pemrograman Python untuk PemulaOon Arfiandwi
 
Laporan Laboratorium Dasar Pemrograman dengan Bahasa C by Muhammad Kennedy Gi...
Laporan Laboratorium Dasar Pemrograman dengan Bahasa C by Muhammad Kennedy Gi...Laporan Laboratorium Dasar Pemrograman dengan Bahasa C by Muhammad Kennedy Gi...
Laporan Laboratorium Dasar Pemrograman dengan Bahasa C by Muhammad Kennedy Gi...Muhammad Kennedy Ginting
 
Perangkat lunak presentation
Perangkat lunak presentationPerangkat lunak presentation
Perangkat lunak presentationDavid Indra Kz
 
praktikum Cisco Packet Tracer 5.3.
praktikum Cisco Packet Tracer 5.3.praktikum Cisco Packet Tracer 5.3.
praktikum Cisco Packet Tracer 5.3.Hibaten Wafiroh
 
Struktur data dan algoritma
Struktur data dan algoritmaStruktur data dan algoritma
Struktur data dan algoritmaChusnul Khotimah
 
Ragam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerRagam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerAuliaa Oktarianii
 
Kedudukan dan fungsi bahasa indonesia sebagai bahasa nasional dan bahasa negara
Kedudukan dan fungsi bahasa indonesia sebagai bahasa nasional dan bahasa negaraKedudukan dan fungsi bahasa indonesia sebagai bahasa nasional dan bahasa negara
Kedudukan dan fungsi bahasa indonesia sebagai bahasa nasional dan bahasa negaraMuhammadIqbal169
 
Basis Data - Pengenalan DML dan DDL
Basis Data - Pengenalan DML dan DDLBasis Data - Pengenalan DML dan DDL
Basis Data - Pengenalan DML dan DDLWalid Umar
 

Tendances (20)

Analisis Semantik - P 6 Teknik Kompilasi
Analisis Semantik - P 6 Teknik KompilasiAnalisis Semantik - P 6 Teknik Kompilasi
Analisis Semantik - P 6 Teknik Kompilasi
 
Sistem Basis Data(PPT)
Sistem Basis Data(PPT)Sistem Basis Data(PPT)
Sistem Basis Data(PPT)
 
Part 7 - Mengenal Array di Visual Basic .Net
Part 7 - Mengenal Array di Visual Basic .NetPart 7 - Mengenal Array di Visual Basic .Net
Part 7 - Mengenal Array di Visual Basic .Net
 
Fungsi (function)
Fungsi (function)Fungsi (function)
Fungsi (function)
 
Kerangka kerja interaksi
Kerangka kerja interaksiKerangka kerja interaksi
Kerangka kerja interaksi
 
5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)
 
Implementasi queue
Implementasi queueImplementasi queue
Implementasi queue
 
Mata Kuliah Basis Data
Mata Kuliah Basis DataMata Kuliah Basis Data
Mata Kuliah Basis Data
 
Perangkat keras dan lunak komputer
Perangkat keras dan lunak komputerPerangkat keras dan lunak komputer
Perangkat keras dan lunak komputer
 
Efisiensi algoritma
Efisiensi algoritmaEfisiensi algoritma
Efisiensi algoritma
 
Pemrograman Python untuk Pemula
Pemrograman Python untuk PemulaPemrograman Python untuk Pemula
Pemrograman Python untuk Pemula
 
Laporan Laboratorium Dasar Pemrograman dengan Bahasa C by Muhammad Kennedy Gi...
Laporan Laboratorium Dasar Pemrograman dengan Bahasa C by Muhammad Kennedy Gi...Laporan Laboratorium Dasar Pemrograman dengan Bahasa C by Muhammad Kennedy Gi...
Laporan Laboratorium Dasar Pemrograman dengan Bahasa C by Muhammad Kennedy Gi...
 
Perangkat lunak presentation
Perangkat lunak presentationPerangkat lunak presentation
Perangkat lunak presentation
 
Sistem operasi
Sistem operasiSistem operasi
Sistem operasi
 
Penjelasan Program
Penjelasan ProgramPenjelasan Program
Penjelasan Program
 
praktikum Cisco Packet Tracer 5.3.
praktikum Cisco Packet Tracer 5.3.praktikum Cisco Packet Tracer 5.3.
praktikum Cisco Packet Tracer 5.3.
 
Struktur data dan algoritma
Struktur data dan algoritmaStruktur data dan algoritma
Struktur data dan algoritma
 
Ragam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerRagam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan Komputer
 
Kedudukan dan fungsi bahasa indonesia sebagai bahasa nasional dan bahasa negara
Kedudukan dan fungsi bahasa indonesia sebagai bahasa nasional dan bahasa negaraKedudukan dan fungsi bahasa indonesia sebagai bahasa nasional dan bahasa negara
Kedudukan dan fungsi bahasa indonesia sebagai bahasa nasional dan bahasa negara
 
Basis Data - Pengenalan DML dan DDL
Basis Data - Pengenalan DML dan DDLBasis Data - Pengenalan DML dan DDL
Basis Data - Pengenalan DML dan DDL
 

En vedette

Bahasa pemograman
Bahasa pemogramanBahasa pemograman
Bahasa pemogramanankg44
 
Grafika 130631100018 ainun_najib_modul1
Grafika 130631100018 ainun_najib_modul1Grafika 130631100018 ainun_najib_modul1
Grafika 130631100018 ainun_najib_modul1Ainun Najib
 
229334287 laporan-praktikum-dhani
229334287 laporan-praktikum-dhani229334287 laporan-praktikum-dhani
229334287 laporan-praktikum-dhaniDex Dun
 
Mikrokontroler pertemuan 5
Mikrokontroler pertemuan 5Mikrokontroler pertemuan 5
Mikrokontroler pertemuan 5Rumah Belajar
 

En vedette (8)

Modul Pemrograman Bahasa Assembly
Modul Pemrograman Bahasa AssemblyModul Pemrograman Bahasa Assembly
Modul Pemrograman Bahasa Assembly
 
4. bahasa-rakitan[3]
4. bahasa-rakitan[3]4. bahasa-rakitan[3]
4. bahasa-rakitan[3]
 
Bhs assembly
Bhs assemblyBhs assembly
Bhs assembly
 
Bahasa pemograman
Bahasa pemogramanBahasa pemograman
Bahasa pemograman
 
Grafika 130631100018 ainun_najib_modul1
Grafika 130631100018 ainun_najib_modul1Grafika 130631100018 ainun_najib_modul1
Grafika 130631100018 ainun_najib_modul1
 
10. bahasa rakitan
10. bahasa rakitan10. bahasa rakitan
10. bahasa rakitan
 
229334287 laporan-praktikum-dhani
229334287 laporan-praktikum-dhani229334287 laporan-praktikum-dhani
229334287 laporan-praktikum-dhani
 
Mikrokontroler pertemuan 5
Mikrokontroler pertemuan 5Mikrokontroler pertemuan 5
Mikrokontroler pertemuan 5
 

Similaire à Register

Assembler (Modul 4).pdf
Assembler (Modul 4).pdfAssembler (Modul 4).pdf
Assembler (Modul 4).pdfDesaSumbung
 
Jeni slides intro1-bab01-pengenalan
Jeni slides intro1-bab01-pengenalanJeni slides intro1-bab01-pengenalan
Jeni slides intro1-bab01-pengenalanAli Basyah
 
Pascal - Pendahuluan1.txt - Notepad.pdf
Pascal - Pendahuluan1.txt - Notepad.pdfPascal - Pendahuluan1.txt - Notepad.pdf
Pascal - Pendahuluan1.txt - Notepad.pdfJurnal IT
 
Bahasa pemograman
Bahasa pemogramanBahasa pemograman
Bahasa pemogramanYusup Palsu
 
Diktat penuntun praktikum fortran
Diktat penuntun praktikum fortranDiktat penuntun praktikum fortran
Diktat penuntun praktikum fortranradikaljakas
 
Intruksi Fundamental
Intruksi FundamentalIntruksi Fundamental
Intruksi FundamentalAkmal Fajar
 
Bab 1 Asas Pengaturcaraan (MALAYSIA) G-Vecom
Bab 1 Asas Pengaturcaraan (MALAYSIA) G-VecomBab 1 Asas Pengaturcaraan (MALAYSIA) G-Vecom
Bab 1 Asas Pengaturcaraan (MALAYSIA) G-VecomYouTuber,G-Vecom
 
Pertemuan 1 algoritma
Pertemuan 1 algoritmaPertemuan 1 algoritma
Pertemuan 1 algoritmaBraga Rezpect
 
Kegiatan belajar 1 flowchart
Kegiatan belajar 1 flowchartKegiatan belajar 1 flowchart
Kegiatan belajar 1 flowchartSyaiful Ahdan
 
1. konsep dasar pemrograman pascal
1. konsep dasar pemrograman pascal1. konsep dasar pemrograman pascal
1. konsep dasar pemrograman pascalsuhendi Harun
 

Similaire à Register (20)

07 modul bahan ajar 04 0
07 modul bahan ajar 04 007 modul bahan ajar 04 0
07 modul bahan ajar 04 0
 
Assembler (Modul 4).pdf
Assembler (Modul 4).pdfAssembler (Modul 4).pdf
Assembler (Modul 4).pdf
 
Jeni slides intro1-bab01-pengenalan
Jeni slides intro1-bab01-pengenalanJeni slides intro1-bab01-pengenalan
Jeni slides intro1-bab01-pengenalan
 
Pascal - Pendahuluan1.txt - Notepad.pdf
Pascal - Pendahuluan1.txt - Notepad.pdfPascal - Pendahuluan1.txt - Notepad.pdf
Pascal - Pendahuluan1.txt - Notepad.pdf
 
Bahasa pemograman
Bahasa pemogramanBahasa pemograman
Bahasa pemograman
 
Diktat penuntun praktikum fortran
Diktat penuntun praktikum fortranDiktat penuntun praktikum fortran
Diktat penuntun praktikum fortran
 
Assembly
AssemblyAssembly
Assembly
 
Tutor Tasm2
Tutor Tasm2Tutor Tasm2
Tutor Tasm2
 
flowchart
flowchartflowchart
flowchart
 
Bahasa assemler
Bahasa assemlerBahasa assemler
Bahasa assemler
 
Intruksi Fundamental
Intruksi FundamentalIntruksi Fundamental
Intruksi Fundamental
 
Pertemuan 1
Pertemuan 1Pertemuan 1
Pertemuan 1
 
1 ADP Algoritma
1   ADP Algoritma1   ADP Algoritma
1 ADP Algoritma
 
2.sd 13.ok
2.sd 13.ok2.sd 13.ok
2.sd 13.ok
 
2.sd 13
2.sd 132.sd 13
2.sd 13
 
Presentasi1
Presentasi1Presentasi1
Presentasi1
 
Bab 1 Asas Pengaturcaraan (MALAYSIA) G-Vecom
Bab 1 Asas Pengaturcaraan (MALAYSIA) G-VecomBab 1 Asas Pengaturcaraan (MALAYSIA) G-Vecom
Bab 1 Asas Pengaturcaraan (MALAYSIA) G-Vecom
 
Pertemuan 1 algoritma
Pertemuan 1 algoritmaPertemuan 1 algoritma
Pertemuan 1 algoritma
 
Kegiatan belajar 1 flowchart
Kegiatan belajar 1 flowchartKegiatan belajar 1 flowchart
Kegiatan belajar 1 flowchart
 
1. konsep dasar pemrograman pascal
1. konsep dasar pemrograman pascal1. konsep dasar pemrograman pascal
1. konsep dasar pemrograman pascal
 

Plus de stephan EL'wiin Shaarawy

Modul praktikum dasar dasar pemrograman java
Modul  praktikum dasar dasar pemrograman javaModul  praktikum dasar dasar pemrograman java
Modul praktikum dasar dasar pemrograman javastephan EL'wiin Shaarawy
 
Tutorial membuat user dan group pada linux
Tutorial membuat user dan group pada linuxTutorial membuat user dan group pada linux
Tutorial membuat user dan group pada linuxstephan EL'wiin Shaarawy
 
Teknik trouble shooting komponen elektronika
Teknik trouble shooting komponen elektronikaTeknik trouble shooting komponen elektronika
Teknik trouble shooting komponen elektronikastephan EL'wiin Shaarawy
 
Pelajaran tentang puasa, tarawih dan zakat
Pelajaran tentang puasa, tarawih dan zakatPelajaran tentang puasa, tarawih dan zakat
Pelajaran tentang puasa, tarawih dan zakatstephan EL'wiin Shaarawy
 
Sejarah Nabi Muhammad SAW hijrah ke yatsrib
Sejarah Nabi  Muhammad SAW hijrah ke yatsribSejarah Nabi  Muhammad SAW hijrah ke yatsrib
Sejarah Nabi Muhammad SAW hijrah ke yatsribstephan EL'wiin Shaarawy
 

Plus de stephan EL'wiin Shaarawy (20)

Simulasi Dns Server di ubuntu server
Simulasi Dns Server di ubuntu serverSimulasi Dns Server di ubuntu server
Simulasi Dns Server di ubuntu server
 
Modul belajar tentang wireless
Modul belajar tentang wirelessModul belajar tentang wireless
Modul belajar tentang wireless
 
Netbeans gui tutorial
Netbeans gui tutorialNetbeans gui tutorial
Netbeans gui tutorial
 
Tutorial membuat form dalam netbeans
Tutorial membuat form dalam netbeansTutorial membuat form dalam netbeans
Tutorial membuat form dalam netbeans
 
Modul praktikum dasar dasar pemrograman java
Modul  praktikum dasar dasar pemrograman javaModul  praktikum dasar dasar pemrograman java
Modul praktikum dasar dasar pemrograman java
 
Materi pelatihan java fundamental
Materi pelatihan java fundamentalMateri pelatihan java fundamental
Materi pelatihan java fundamental
 
Tutorial connecting access netbeans
Tutorial connecting access netbeansTutorial connecting access netbeans
Tutorial connecting access netbeans
 
Modul praktikum pbo java swing
Modul praktikum pbo java swingModul praktikum pbo java swing
Modul praktikum pbo java swing
 
ebook Java desktop application
ebook Java desktop applicationebook Java desktop application
ebook Java desktop application
 
Modul belajar java I/O (Input/Ouptut)
Modul belajar java I/O (Input/Ouptut)Modul belajar java I/O (Input/Ouptut)
Modul belajar java I/O (Input/Ouptut)
 
Full Buku sakti belajar hacker
Full Buku sakti belajar hackerFull Buku sakti belajar hacker
Full Buku sakti belajar hacker
 
Tutorial membuat user dan group pada linux
Tutorial membuat user dan group pada linuxTutorial membuat user dan group pada linux
Tutorial membuat user dan group pada linux
 
Teknik trouble shooting komponen elektronika
Teknik trouble shooting komponen elektronikaTeknik trouble shooting komponen elektronika
Teknik trouble shooting komponen elektronika
 
matriks inverse dalam kriptografi
matriks inverse dalam kriptografimatriks inverse dalam kriptografi
matriks inverse dalam kriptografi
 
Mengenal sistem Pada komputer
Mengenal sistem Pada komputer Mengenal sistem Pada komputer
Mengenal sistem Pada komputer
 
Mengenal komponen-Komponen elektronika
Mengenal komponen-Komponen elektronikaMengenal komponen-Komponen elektronika
Mengenal komponen-Komponen elektronika
 
Pelajaran tentang puasa, tarawih dan zakat
Pelajaran tentang puasa, tarawih dan zakatPelajaran tentang puasa, tarawih dan zakat
Pelajaran tentang puasa, tarawih dan zakat
 
Modul Lengkap Microsoft visual Fox Pro
Modul Lengkap Microsoft visual Fox ProModul Lengkap Microsoft visual Fox Pro
Modul Lengkap Microsoft visual Fox Pro
 
Makalah al islam
Makalah al islamMakalah al islam
Makalah al islam
 
Sejarah Nabi Muhammad SAW hijrah ke yatsrib
Sejarah Nabi  Muhammad SAW hijrah ke yatsribSejarah Nabi  Muhammad SAW hijrah ke yatsrib
Sejarah Nabi Muhammad SAW hijrah ke yatsrib
 

Register

  • 1. 1 PRAKTIKUM I REGISTER 1. REGISTER Dalam mempelajari bahasa assembly tidak lepas dari register, karena dalam pemograman bahasa assembly selalu terhubung dengan register yang digunakan dalam pemograman untuk melakukan operasi-operasi dan intruksi–intruksi yang diperintahkan pada bahasa assembly. Lalu apakah register itu ?. Register merupakan sebagian memori dari microprosesor yang dapat diakses dengan kecepatan yang sangat tinggi. Dalam melakukan pekerjaanya microprosesor selalu menggunakan register sebagai perantaranya. Pada microprosesor terdapat 5 jenis register yang dapat diakses,yaitu : 1. Segmen Register Segment Register membentuk alamat memori bagi suatu data, terdapat pada 2 operasi(Real Mode dan Protected Real), berikut register-register pada segment register ,yaitu : CS(Code Segmen),DS(Data Segmen),SS(Stack Segmen),dan ES(Ekstra Segmen) 2. Pointer Register Pointer Register adalah register yg digunakan untuk menunjukkan alamat sebuah data di lokasi memori. Penujukan pada saat operasi perpindahan data, operasi stack(PUSH dan POP), akan dieksekusi pada saat proram dijalankan. pointer register terdiri atas:SP(Stack Pointer), BP(Base Pointer), dan IP(Indeks Pointer) 3. Index Register Berfungsi sebagai “general purpose register” lebih sering digunakan untuk menunjukkan alamat sebuah data di lokasi memori pada operasi-operasi string. Register ini jg digunakan untuk menujukkan data berindek(data tipe larik) di dlm memori, regiter ini terdiri atas : SI(Source Index) dan DI(Destination Index) 4. Data Register/General Purpose Register Register yg digunakan untuk keperluan umum pemograman, keperluan umum yang dimaksud yaitu melakukan perhitungan aritmetika dan perpindahan data. Register ini terdiri atas: AX(Acumulator Register,(AH,AL), BX(Base Register(BH,BL), DX(Data Register,(DH,DL) dan CX(Counter Register(CH,CL) P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 2. 2 5. Flag Register Flag Register berfungsi untuk menunjukan status(Keadaan) sesaat dari mikroprocecor. Register ini terdiri atas : overflow,direction,overflow,zero,carry,parity,auxiliary,sign,trap dan Interrupt . 2. 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 3. Procedure Percobaan 1. Jalan Command Prompt 2. Ketikan”Debug” pada C prompt kemudian tekan Enter 3. Ketikan Huruf A 100 kemudian tekan enter P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 3. 3 4. Selanjutnya ketikan program di bawah ini : Mov ax,05 Mov ds,ax Mov si,012 Mov di,021 Mov ax,si Mov di,ax Int 20 5. Untuk melihat perubahan register terhadap intruksi yang diberiakan program diatas tekan enter, ketikan T dan kemudian tekan enter. 6. Untuk menyimpan program yang kita buat ke disk adalah dengan mengetikan huruf n nama_proram.com, misalnya :-n aksesreg.com, kemudian Ketikan w lalu tekan Enter P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 4. 4 Tugas : 1. Buatlah Analis Program diatas(dikumpulkan) 2. rubahlah program diatas untuk menukar data register DI ke Register SI, kemudian hapus data pada register AX(dikumpulkan) PRAKTIKUM II MODEL PROGRAM COM DAN INTRUPSI 1. MODEL PROGRAM COM Untuk membuat program .COM yang hanya menggunakan 1 segment,. Bentuk yang digunakan disini adalah bentuk program yang dianjurkan(Ideal). Dipilihnya bentuk program ideal dalam buku ini dikarenakan pertimbangan dari berbagai keunggulan bentuk program ideal ini seperti, prosesnya lebih cepat dan lebih mudah digunakan oleh berbagai bahasa tingkat tinggi yang terkenal(Turbo Pascal dan C). ----------------------------------------------------------- .MODEL SMALL .CODE ORG 100H Label1 : JMP Label2 +---------------------+ | TEMPAT DATA PROGRAM | +---------------------+ Label2 : +---------------------+ | TEMPAT PROGRAM | +---------------------+ INT 20H P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 5. 5 END Label1 ----------------------------------------------------------- Supaya lebih jelas bentuk dari program ideal, marilah kita telusuri lebih lanjut dari bentuk program ini. MODEL SMALL Tanda directive ini digunakan untuk memberitahukan kepada assembler bentuk memory yang digunakan oleh program kita. Supaya lebih jelas model-model yang bisa digunakan adalah : - TINY Jika program anda hanya menggunakan 1 segment seperti program COM. Model ini disediakan khusus untuk program COM. - SMALL Jika data dan code yang digunakan oleh program kurang dari ukuran 1 segment atau 64 KB. - MEDIUM Jika data yang digunakan oleh program kurang dari 64 KB tetapi code yang digunakan bisa lebih dari 64 KB. - COMPACT Jika data yang digunakan bisa lebih besar dari 64 KB tetapi codenya kurang dari 64 KB. - LARGE Jika data dan code yang dipakai o leh program bisa lebih dari 64 KB. - HUGE Jika data, code maupun array yang digunakan bisa lebih dari 64 KB. Mungkin ada yang bertanya-tanya mengapa pada program COM yang dibuat digunakan model SMALL dan bukannya TINY ? Hal ini disebabkan karena banyak dari compiler bahasa tingkat tinggi yang tidak bisa berkomunikasi dengan model TINY, sehingga kita menggunakan model SMALL sebagai pemecahannya. .CODE Tanda directive ini digunakan untuk memberitahukan kepada assembler bahwa kita akan mulai menggunakan Code Segment-nya disini. Code segment ini digunakan untuk menyimpan program yang nantinya akan dijalankan. . ORG 100h Pada program COM perintah ini akan selalu digunakan. Perintah ini digunakan untuk memberitahukan assembler supaya program pada saat dijalankan(diload ke memory) ditaruh mulai pada offset ke 100h(256) byte. Dapat dikatakan juga bahwa kita menyediakan 100h byte kosong pada saat program dijalankan. 100h byte kosong ini nantinya akan ditempati oleh PSP(Program Segment Prefix) dari program tersebut. PSP ini digunakan oleh DOS untuk mengontrol jalannya program tersebut. JMP Perintah JMP(JUMP) ini digunakan untuk melompat menuju tempat yang ditunjukkan oleh perintah JUMP. Adapun syntaxnya adalah: JUMP Tujuan . Dimana tujuannya dapat berupa label seperti yang digunakan pada bagan diatas. Mengenai perintah JUMP ini akan kita bahas lebih lanjut nantinya. Perintah JUMP yang digunakan pada bagan diatas dimaksudkan agar melewati tempat data program, karena jika tidak ada perintah JUMP ini maka data program akan ikut dieksekusi sehingga kemungkinan besar akan menyebabkan program anda menjadi Hang. INT 20h P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 6. 6 Perintah INT adalah suatu perintah untuk menghasilkan suatu interupsi INT NoInt Interupsi 20h berfungsi untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada Dos. Pada program COM cara ini bukanlah satu-satunya tetapi cara inilah yang paling efektif untuk digunakan. Bila anda lupa untuk mengakhiri sebuah program maka program anda tidak akan tahu kapan harus selesai, hal ini akan menyebabkan komputer menjadi hang. 2. PROSEDUR PERCOBAAN 1 1. Aktifkan Editor(Notepad) kemudian ketikan progam dibawah ini : .MODEL SMALL .CODE ORG 100h MULAI: jmp CETAK Hello DB 'SELAMAT DATANG ' DB 'DI BHS ASSEMBLY' DB '$' CETAK : MOV AH,09H MOV DX,OFFSET Hello INT 21H HABIS: INT 20h END MULAI 2. Simpan Program yang anda ketik diatas dengan Hello.asm 3. Gunakan perintah tasm untuk mengubah ke file objek C:/tasm>tasm Hello.asm 4. Gunakan perintah tlink untuk merubah ke file Com P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 7. 7 C:/tasm>tlink Hello.obj/t 5. Ketikan nama program untuk menjalankan program comnya C:/tasm>Hello 3. INTRUPSI (MENCETAK KARAKTER DAN KALIMAT) Intrupsi adalah permitaan khusus kepada mikroprosesor untuk melakukan sesuatu. Mikroprosesor akan menghentikan dahulu apa sedang dikerjakan dan melayani permitaan khusus tersebut, bila terjadi intrupsi.ada 2 jenis intrupsi yaitu intrupsi vector(yg dimilki mikroprosesor) dan intruksi intrupsi (dimilki PC). Ada banyak intrupsi yg dimiliki oleh mikroprosesor dan PC tapi disini kita hanya pada berfungsi intrupsi 20 dan 21. Intrupsi 21 hanya memilki 1 fungsi layanaan yaitu untuk menghetikan program, sedangkan intrupsi 21 terdiri atas 2 layanan yaitu layanan nomor 02h berfungsi mencetak karakter ASCII dan layana nomor 09h berfungsi mencetak String ASCII. Untuk memanggil layanan nomor intrupsi harus dimasukan dulu ke register AH sebelum INT. 4. PROSEDUR PERCOBAAN 2 1. Aktifkan Editor(Notepad) kemudian ketikan progam dibawah ini : .MODEL SMALL .CODE ORG 100h Proses : MOV AH,02h MOV DL,'A’ INT 21h INT 20h END Proses 2. Simpan Program yang anda ketik diatas dengan Latihan1.asm 3. Gunakan perintah tasm untuk mengubah ke file objek P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 8. 8 C:/tasm>tasm Latihan1.asm 4. Gunakan perintah tlink untuk merubah ke file Com C:/tasm>tlink Latihan1.obj/t 5. Ketikan nama program untuk menjalankan program comnya C:/tasm>Latihan1 Tugas : 1. Buatlah analisis terhadap program di atas : 2. Buatlah program untuk menampilkan karakter ‘K’ 3. Dikumpulkan 6. PROSEDUR PERCOBAAN 3 1. Aktifkan Editor(Notepad) kemudian ketikan progam dibawah ini : .model small .code org 100h Satu: JMP Dua Kal1 DB 'Gue Lagi Belajar' DB 'Bahasa Assembly $' Kal2 DB 'Ternyata...' DB 'Asik Boo...' DB '$' Dua : Mov AH,09h P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 9. 9 Lea DX,Kal1 int 21h Tiga : Mov DX,Offset Kal2 int 21h int 20h End Satu 2. Simpan Program yang anda ketik diatas dengan Latihan2.asm 3. Gunakan perintah tasm untuk mengubah ke file objek C:/tasm>tasm Latihan2.asm 4. Gunakan perintah tlink untuk merubah ke file Com C:/tasm>tlink Latihan2.obj/t 5. Ketikan nama program untuk menjalankan program comnya C:/tasm>Latihan2 Tugas : 1. Buatlah analisis terhadap program di atas : 2. Buatlah program untuk menampilkan karakter ‘ PRODI INFORMATIKA’ 3. Dikumpulkan 6. PROSEDUR PERCOBAAN 4 1. Aktifkan Editor(Notepad) kemudian ketikan progam dibawah ini : .MODEL SMALL .CODE ORG 100h P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 10. 10 Proses : MOV AH,02h MOV DL,'A' MOV CX,10h Ulang : INT 21h INC DL LOOP Ulang INT 20h END Proses 2. Simpan Program yang anda ketik diatas dengan Latihan3.asm 3. Gunakan perintah tasm untuk mengubah ke file objek C:/tasm>tasm Latihan3.asm 4. Gunakan perintah tlink untuk merubah ke file Com C:/tasm>tlink Latihan3.obj/t 5. Ketikan nama program untuk menjalankan program comnya C:/tasm>Latihan3 Tugas : 4. Buatlah analisis terhadap program di atas : 5. Buatlah program untuk menampilkan karakter ‘ FEDCBA’ 6. Dikumpulkan P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 11. 11 PRAKTIKUM III ARITMETIKA 1. OPERASI PERNAMBAHAN ADD Untuk menambah dalam bahasa assembler digunakan perintah ADD dan ADC serta INC. Perintah ADD digunakan dengan syntax : ADD Tujuan,Asal Perintah ADD ini akan menambahkan nilai pada Tujuan dan Asal. Hasil yang didapat akan ditaruh pada Tujuan, dalam bahasa pascal sama dengan instruksi Tujuan:=Tujuan + Asal. Sebagai contohnya : MOV AH,15h ; AH:=15h MOV AL,4 ; AL:=4 ADD AH,AL ; AH:=AH+AL, jadi AH=19h Perlu anda perhatikan bahwa pada perintah ADD ini antara Tujuan dan Asal harus mempunyai daya tampung yang sama, misalnya register AH(8 bit) dan AL(8 bit), AX(16 bit) dan BX(16 bit). ADC Perintah ADC digunakan dengan cara yang sama pada perintah ADD, yaitu : ADC Tujuan,Asal Perbedaannya pada perintah ADC ini Tujuan tempat menampung hasil pertambahan Tujuan dan Asal ditambah lagi dengan carry flag (Tujuan:=Tujuan+Asal+Carry). Pertambahan yang demikian bisa memecahkan masalah seperti yang pernah kita kemukakan, seperti pertambahan pada bilangan 12345678h+9ABCDEF0h. Seperti yang telah kita ketahui bahwa satu register hanya mampu menampung 16 bit, maka untuk pertambahan seperti yang diatas bisa anda gunakan perintah ADC untuk memecahkannya, Contoh: MOV AX,1234h ; AX = 1234h CF = 0 MOV BX,9ABCh ; BX = 9ABCh CF = 0 MOV CX,5678h ; BX = 5678h CF = 0 MOV DX,0DEF0h ; DX = DEF0h CF = 0 ADD CX,DX ; CX = 3568h CF = 1 ADC AX,BX ; AX = AX+BX+CF = ACF1 Hasil penjumlahan akan ditampung pada register AX:CX yaitu ACF13568h. Adapun flag-flag yang terpengaruh oleh perintah ADD dan ADC ini adalah CF,PF,AF,ZF,SF dan OF. INC Perintah INC(Increment) digunakan khusus untuk pertambahan dengan 1. Perintah INC hanya menggunakan 1 byte memory, sedangkan perintah ADD dan ADC menggunakan 3 byte. Oleh sebab itu bila anda ingin melakukan operasi pertambahan dengan 1 gunakanlah perintah INC. Syntax pemakainya adalah : P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 12. 12 INC Tujuan Nilai pada tujuan akan ditambah dengan 1, seperti perintah Tujuan:=Tujuan+1 dalam Turbo Pascal. Tujuan disini dapat berupa suatu register maupun memory. Contoh : perintah INC AL akan menambah nilai di register AL dengan 1. Adapun flag yang terpengaruh oleh perintah ini adalah OF,SF,ZF,AF dan PF. 2. OPERASI PENGURANGAN SUB Tujuan,Asal Perintah SUB akan mengurangkan nilai pada Tujuan dengan Asal. Hasil yang didapat akan ditaruh pada Tujuan, dalam bahasa pascal sama dengan instruksi Tujuan:=Tujuan-Asal. Contoh : MOV AX,15 ; AX:=15 MOV BX,12 ; BX:=12 SUB AX,BX ; AX:=15-12=3 SUB AX,AX ; AX=0 Untuk menolkan suatu register bisa anda kurangkan dengan dirinya sendiri seperti SUB AX,AX. SBB Seperti pada operasi penambahan, maka pada operasi pengurangan dengan bilangan yang besar(lebih dari 16 bit), bisa anda gunakan perintah SUB disertai dengan SBB(Substract With Carry). Perintah SBB digunakan dengan syntax: SBB Tujuan,Asal Perintah SBB akan mengurangkan nilai Tujuan dengan Asal dengan cara yang sama seperti perintah SUB, kemudian hasil yang didapat dikurangi lagi dengan Carry Flag(Tujuan:=Tujuan- Asal-CF). DEC Perintah DEC(Decrement) digunakan khusus untuk pengurangan dengan 1.Perintah DEC hanya menggunakan 1 byte memory, sedangkan perintah SUB dan SBB menggunakan 3 byte. Oleh sebab itu bila anda ingin melakukan operasi pengurangan dengan 1 gunakanlah perintah DEC. Syntax pemakaian perintah dec ini adalah: DEC Tujuan Nilai pada tujuan akan dikurangi 1, seperti perintah Tujuan:=Tujuan-1 dalam Turbo Pascal. Tujuan disini dapat berupa suatu register maupun memory. Contoh : perintah DEC AL akan mengurangi nilai di register AL dengan 1. 3. OPERASI PERKALIAN Untuk perkalian bisa digunakan perintah MUL dengan syntax: MUL Sumber Sumber disini dapat berupa suatu register 8 bit(Mis:BL,BH,..), register 16 bit(Mis:BX,DX,..) atau suatu varibel. Ada 2 kemungkinan yang akan terjadi pada perintah MUL ini sesuai dengan P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 13. 13 jenis perkalian 8 bit atau 16 bit. Bila Sumber merupakan 8 bit seperti MUL BH maka komputer akan mengambil nilai yang terdapat pada BH dan nilai pada AL untuk dikalikan. Hasil yang didapat akan selalu disimpan pada register AX. Bila sumber merupakan 16 bit seperti MUL BX maka komputer akan mengambil nilai yang terdapat pada BX dan nilai pada AX untuk dikalikan. Hasil yang didapat akan disimpan pada register DX dan AX(DX:AX), jadi register DX menyimpan Word tingginya dan AX menyimpan Word rendahnya. Sebelum Anda bisa mengalikan dua digit ASCII, Anda harus menutup 4 bit angka atas dari masing-masing digit. Hal ini menyebabkan hasil BCD (satu digit BCD per byte) pada setiap byte. Setelah dua hasil digit BCD dikalikan, instruksi AAM digunakan untuk mengatur hasil dari dua hasil digit BCD dalam AX. AAM berfungsi hanya setelah pengalian dari dua hasil byte BCD, dan AAM hanya berfungsi hanya pada suatu operand dalam AL. AAM memperbaharui PF, SF, dan ZF, tetapi AF, CF, dan OF tidak diterangkan. CONTOH: ; AL = 00000101 = hasil BCD 5 ; BH = 00001001 = hasil BCD 9 MUL BH ; AL x BH ; hasil dalam AX ; AX = 00000000 00101101 = 002DH AAM ; AX = 00000100 00000101 = 0405H, ; yang merupakan hasil BCD untuk angka 45. ; Jika menginginkan kode ASCII untuk hasilnya, gunakan instruksi berikutnya OR AX, 3030H ; Letakkan 3 pada angka atas di setiap byte. ; AX = 00110100 00110101 = 3435 H, ; yang merupakan kode ASCII untuk angka 45 4. PEMBAGIAN Operasi pada pembagian pada dasarnya sama dengan perkalian. Untuk operasi pembagian digunakan perintah DIV dengan syntax: DIV Sumber Bila sumber merupakan operand 8 bit seperti DIV BH, maka komputer akan mengambil nilai pada register AX dan membaginya dengan nilai BH. Hasil pembagian 8 bit ini akan disimpan pada register AL dan sisa dari pembagian akan disimpan pada register AH. Bila sumber merupakan operand 16 bit seperti DIV BX, maka komputer akan mengambil nilai yang terdapat pada register DX:AX dan membaginya dengan nilai BX. Hasil pembagian 16 bit ini akan disimpan pada register AX dan sisa dari pembagian akan disimpan pada register DX. AAD mengubah dua hasil digit BCD menjadi AH dan AL menjadi angka biner yang seimbang dalam AL. Pengaturan ini harus dibuat sebelum membagi dua hasil digit BCD dalam AX dengan byte hasil BCD. Setelah pembagian, AL akan berisi hasil bagi dari hasil BCD dan AH akan berisi sisa hasil BCD. PF, SF, dan ZF diperbaharui. AF, CF, dan OF tidak diterangkan setelah AAD. CONTOH: ; AX = 0607H hasil BCD untuk 67 desimal ; CH = 09H, sekarang atur menjadi biner AAD ; Hasil: AX = 0043 = 43H = 67 desimal DIV CH ; Bagi AX dengan hasil BCD pada CH ; Hasil Bagi : AL = 07 hasil BCD ; Sisa : AH = 04 hasil BCD P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 14. 14 ; Flags tidak diterangkan setelah DIV 5. PROSEDUR PERCOBAAN 1 1. Jalan Command Prompt 2. Ketikan”Debug” pada C prompt kemudian tekan Enter 3. Ketikan Huruf A 100 kemudian tekan enter 4. Selanjutnya ketikan program di bawah ini : MOV AH,15h MOV AL,4 ADD AH,AL MOV AX,1234h MOV BX,0F221h ADD AX,BX MOV AX,1234h MOV BX,9ABCh MOV CX,5678h MOV DX,0DEF0h ADD CX,DX ADC AX,BX INC AL P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 15. 15 INT 20h 5. Untuk melihat perubahan register terhadap intruksi yang diberiakan program diatas tekan enter, ketikan T dan kemudian tekan enter. 6. Untuk menyimpan program yang kita buat ke disk adalah dengan mengetikan huruf n nama_proram.com, misalnya :-n aksesreg.com, kemudian Ketikan w lalu tekan Enter Tugas : 1. Buatlah Analis Program diatas(dikumpulkan) 2. rubahlah program diatas untuk register ah 20 dan register al 10, dan berapakah hasil register AL terkahir PRAKTIKUM IV STACK DAN PROCEDUR 1. STACK Secara harfiah, stack artikan sebagai 'tumpukan'. Stack adalah bagian memory yang digunakan untuk menyimpan nilai dari suatu register untuk sementara. intruksi-intruksi pada assembler yang ekskusi data yang pada register stack yaitu intruksi PUSH, POP,PUSF dan POPF. Stack memenggunakan pasangan register SS(Stack Segmen) dan SP(Stack Pointer) untuk menunjukan lokasi dari stack. . PUSH DAN POP Stack dapat kita analogikan sebagai sebuah tabung yang panjang. Sedangkan nilai pada register dapat dibayangkan berbentuk koin yang dapat dimasukkan dalam tabung tersebut. Untuk memasukkan nilai suatu register pada stack, digunakan perintah push dengan syntax: PUSH Reg16Bit Sebagai contohnya pada perintah: MOV AX,12 MOV BX,33 MOV CX,99 sw PUSH AX ; Simpan nilai AX pada stack PUSH BX ; Simpan nilai BX pada stack PUSH CX ; Simpan nilai CX pada stack Untuk mengambil keluar koin nilai pada tabung stack, digunakan perintah pop dengan syntax: POP Reg16Bit Perintah POP akan mengambil koin nilai pada stack yang paling atas dan dimasukkan pada Reg16Bit. Dari sini dapat anda lihat bahwa data yang terakhir dimasukkan akan merupakan yang pertama dikeluarkan. Inilah sebabnya operasi stack dinamankan LIFO(Last In First Out). P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 16. 16 Sebagai contohnya, untuk mengambil nilai dari register AX, BX dan CX yang disimpan pada stack harus dilakukan pada register CX dahulu barulah BX dan AX, seperti: POP CX ; Ambil nilai pada puncak stack, masukkan ke CX POP BX ; Ambil nilai pada puncak stack, masukkan ke BX POP AX ; Ambil nilai pada puncak stack, masukkan ke AX Bila anda terbalik dalam mengambil nilai pada stack dengan POP AX kemudian POP BX dan POP CX, maka nilai yang akan anda dapatkan pada register AX, BX dan CX akan terbalik. Sehingga register AX akan bernilai 99 dan CX akan bernilai 12. Seperti yang telah kita ketahui, data tidak bisa dicopykan antar segment atau memory. Untuk mengcopykan data antar segment atau memory anda harus menggunakan register general purpose sebagai perantaranya, seperti: MOV AX,ES ; Untuk menyamakan register MOV DS,AX ; ES dan DS Dengan adanya stack, anda bisa menggunakannya sebagai perantara, sehingga akan tampak seperti: PUSH ES ; Untuk menyamakan register POP DS ; ES dan DS 2. PROCEDURE PERCOBAAN 1. Aktifkan Editor(Notepad) kemudian ketikan progam dibawah ini : .MODEL SMALL .CODE ORG 100h TData : JMP Proses kal1 db 'saya $' kal2 db 'dia $' Ganti db ,13,10,'$' Stacks DW ? Proses: LEA DX,Kal1 PUSH DX MOV AH,09 INT 21h P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 17. 17 LEA DX,Kal2 PUSH DX MOV AH,09 INT 21h LEA DX,Ganti INT 21h POP DX INT 21h POP DX INT 21h Exit: INT 20h END TData 2. Simpan Program yang anda ketik diatas dengan Latihan4.asm 3. Gunakan perintah tasm untuk mengubah ke file objek C:/tasm>tasm Latihan4.asm 4. Gunakan perintah tlink untuk merubah ke file Com C:/tasm>tlink Latihan4.obj/t 5. Ketikan nama program untuk menjalankan program comnya C:/tasm>Latihan4 Tugas : 1. Buatlah analisis terhadap program di atas : 2. Buatlah Perulangan untuk mencetak isi dari Stack 3. Dikumpulkan 3. PROSEDURE Procedure adalah sekelompok intruksi yang dibangun sedemikaian rupa(dengan cara-cara tertentu) untuk melakukan tugas-tugas tertentu dan dapat dipanggil(digunakan) secara berulang- P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 18. 18 ulang oleh sebuah program.procedure ditulis terpisah dari program utamanaya, bilamana program utama harus menjalankan fungsi yang didefenisikan oleh procedure, maka procedure harus dipanggil kedalam operasi. Dalam pemanggilan procedure mengizinkan dua tipe intruksi yaitu call intrasegment dan ret. Call di gunakan untuk memanggil subroutine dan Ret untuk kembali ke program utama. Berikut kerangka dari procedure : ;……………………………………………………; Nama_Proc PROC NEAR/FAR ;nama procedure …………. ; …………. ; …………. ; RET ; Nama_Proc ENDP ;akhir procedure ;…………………………………………………..; Keuntungan Menggunakan Procedur: 1. Dapat digunakan berulang-ulang 2. Penelusuran kesalahan lebih mudah Kelemahan Menggunakan Procedure : Waktu eksekusi program lebih lama dari pd tampa procedure krn microprocecor harus melakukan lomptan ketika memangil procedure tersebut 4. PROCEDUR PERCOBAAN 1. Aktifkan Editor(Notepad) kemudian ketikan progam dibawah ini : .Model Small .Code ORG 100h Mulai : mov cx,05h Mov dl,’A’ Ulang: Call CTK_KAR Inc dl P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 19. 19 Loop Ulang Habis : int 20h CTK_KAR PROC NEAR Mov ah,02h Int 21h RET CTK_KAR ENDP End Mulai 2. Simpan Program yang anda ketik diatas dengan Latihan5.asm 3. Gunakan perintah tasm untuk mengubah ke file objek C:/tasm>tasm Latihan5.asm 4. Gunakan perintah tlink untuk merubah ke file Com C:/tasm>tlink Latihan5.obj/t 5. Ketikan nama program untuk menjalankan program comnya C:/tasm>Latihan5 Tugas : 1. Buatlah analisis terhadap program di atas : 2. Rubahlah program Latihan2.asm ke dalam progam menggunakan procedure 3. Dikumpulkan P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 20. 20 PRAKTIKUM V MAKRO 1. MAKRO Makro adalah nama simbolik dari string teks atau satu blok kode yang akan digunakan berulang-ulang dalam program. Pada dasarnya macro sama dengan procedure, tapi pada makro tidak menggunakan perintah CALL untuk pemanggilan procedure dan RET untuk kembali ke program utama. Makro di tulis diluar dari tubuh program utama.Kerangka makro sebagai berikut : ;………………………………………………………; Nama_Makro MAC [P1,P2] ;nama makro …………. ; …………. ;tubuh macro …………. ; ENDM ;akhir makro ;………………………………………………………; Ket : Nama adalah makro banyak baris yang di defis, "P1" dan "P2" adalah parameter yang bisa anda gunakan pada macro. Parameter ini berbentuk optional, artinya bisa digunakan ataupun tidak. Keuntungan Menggunakan Macro: 1. Makro cukup dipanggil dengan mengeksekusi namanya P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 21. 21 2. Penulusuran Kesalahan lebih mudah 3. Terdapat parameter optional seperti hal bahasa pemograman tingkat tinggi 2. PROCEDURE PERCOBAAN 1. Aktifkan Editor(Notepad) kemudian ketikan progam dibawah ini : Ctk_Kar Macro Kar mov dl,kar mov ah,02h int 21h Endm .model small .code Org 100h Mulai : Ctk_Kar ‘A’ Ctk_Kar ‘B’ Ctk_Kar ‘C’ Ctk_Kar ‘D’ Ctk_Kar ‘E’ Habis : int 20h End mulai 2. Simpan Program yang anda ketik diatas dengan Latihan6.asm 3. Gunakan perintah tasm untuk mengubah ke file objek C:/tasm>tasm Latihan6.asm 4. Gunakan perintah tlink untuk merubah ke file Com C:/tasm>tlink Latihan6.obj/t P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 22. 22 5. Ketikan nama program untuk menjalankan program comnya C:/tasm>Latihan6 Tugas : 1. Buatlah analisis terhadap program di atas : 2. Rubahlah program Latihan2.asm ke dalam progam menggunakan makro 3. Dikumpulkan PRAKTIKUM VI LOMPATAN 1. Lompatan Tidak Bersyarat Lompatan tak bersyara adalah lompatan ke lokasi memori tertentu tampa ada pengecekan kondisi tertentu. perintah ini tidak menyeleksi keadaan apapun untuk melakukan suatu lompatan.Setiap ditemui perintah ini maka lompatan pasti dilakukan. sintaknya : JMP tujuan Contoh : JMP NEXT P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 23. 23 Kal db ‘Saya’ ……………………... NEXT: Mov DX,Kal ……………………… setiap menemkan perintah JMP akan melakukan lompatan ke label yang ditujuh dengan tidak mengjalankan baris di bawah JMP. Misalnya pada contoh diatas Label bernama NEXT. 2. PROCEDUR PERCOBAAN 1 1. Aktifkan Editor(Notepad) kemudian ketikan progam dibawah ini : .model small .code org 100h Satu: JMP Tiga Kal1 DB 'Lagi Belajar $' Kal2 DB ‘Belajar Lagi….!$’ Dua : Mov AH,09h Lea DX,Kal1 int 21h Tiga : Mov AH,09h Mov DX,Offset Kal2 int 21h P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 24. 24 int 20h End Satu 2. Simpan Program yang anda ketik diatas dengan Latihan7.asm 3. Gunakan perintah tasm untuk mengubah ke file objek C:/tasm>tasm Latihan7.asm 4. Gunakan perintah tlink untuk merubah ke file Com C:/tasm>tlink Latihan7.obj/t 5. Ketikan nama program untuk menjalankan program comnya C:/tasm>Latihan7 Tugas : 1. Buatlah analisis terhadap program di atas : 2. Dikumpulkan 3. Lompatan Bersyarat Lomptan ke lokasi memori tertentu dgn pengecekan nilai, bila nilainya terpenuhi maka akan melakukan lompatan dan bila tidak terpenuhi maka akan menjalankan intruksi dibaris berikutnya. Biasanya lompatan jenis ini diikuti CMP CMP Operand1,Operand2 Berikut perintah-perintah lompatan bersyarat: Perintah Lompatan Kondisi JA <Jump If Above> Lompat, jika Operand1 > Operand2 untuk bilangan tidak bertanda JG <Jump If Greater> Lompat, jika Operand1 > Operand2 untuk bilangan bertand JE <Jump If Equal> Lompat, jika Operand1 = Operand2 JNE <Jump If Not Equal> Lompat, jika Operand1 tidak sama dengan Operand2 JB <Jump If Below> Lompat, jika Operand1 < Operand2 untuk bilangan tidak bertanda JL <Jump If Less> Lompat, jika Operand1 < Operand2 untuk bilangan bertanda P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 25. 25 JBE <Jump If Below or Equal> Lompat, jika operand1 <= Operand2 untuk bilangan tidak bertanda JLE <Jump If Less or Equal> Lompat, jika Operand1 <= Operand2 untuk bilangan bertanda JAE <Jump If Above or Equal> Lompat, jika Operand1 >= Operand2 untuk bilangan tidak bertanda JGE <Jump If Greater or Equal Lompat, jika Operand1 >= Operand2 untuk bilangan tidak bertanda JC <Jump Carry> Lompat, jika Operand1 >= Operand2 Lompat, jika Carry flag=1 JCXZ <Jump If CX is Zero> Lompat, jika CX=0 JNA <Jump If Not Above> Lompat, jika Operand1 < Operand2 dengan CF=1 atau ZF=1 JNAE <Jump If Not Above nor Equal> Lompat, jika Operand1 < Operand2 dengan CX=1 JNB <Jump If Not Below> Lompat, jika Operand1 > Operand2 dengan CF=0 JNBE <Jump If Not Below nor Equal> Lompat, jika Operand1 > Operand2 dengan CF=0 dan ZF=0 JNC <Jump If No Carry> Lompat, jika CF=0 JNG <Jump If Not Greater> |Lompat, jika Operand1 <= Operand2 dengan ZF=1 atau SF tidak sama OF JNGE <Jump If Not Greater Nor Equal> | Lompat, jika Operand1 <= Operand2 dengan SF tidak sama OF JNL <Jump If Not Less> Lompat, jika Operand1 >= Operand2 dengan SF=OF 4. PROCEDURE PERCOBAAN 2 1. Aktifkan Editor(Notepad) kemudian ketikan progam dibawah ini : .MODEL SMALL .CODE ORG 100h P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 26. 26 TData: JMP Proses BilA DB 67 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 CMP AL,BilB JB AKecil JE Sama JA ABesar LEA DX,Kal0 JMP Cetak Sama: LEA DX,Kal1 JMP Cetak AKecil: LEA DX,Kal0 JMP Cetak ABesar: LEA DX,Kal2 JMP Cetak Cetak: MOV AH,09 P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 27. 27 INT 21h EXIT: INT 20h END TData 2. Simpan Program yang anda ketik diatas dengan Latihan8.asm 3. Gunakan perintah tasm untuk mengubah ke file objek C:/tasm>tasm Latihan8.asm 4. Gunakan perintah tlink untuk merubah ke file Com C:/tasm>tlink Latihan8.obj/t 5. Ketikan nama program untuk menjalankan program comnya C:/tasm>Latihan8 Tugas : 1. Buatlah analisis terhadap program di atas : 2. Rubah isi variable BilA dan BilB pada program diatas, menjadi BilA =70 dan BilB=70 dan kemudian buatlah analisis terhadap program yang anda buat 3. Dikumpulkan P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 28. 28 DAFTAR ISI PRAKTIKUM I REGISTER………………………………………..…………….………..…...1 1. Register………………………………………………………..…………………….……1 2. Perintah-Perintah Debug……………………………………………………………..…..2 3. Procedur Percobaan 1……….………………………………………………………..….2 PRAKTIKUM II MODEL PROGRAM COM DAN INTRUPSI…………………………..…..4 1. Model Program COM……………………………………………………………….……4 2. Procedur Percobaan 1…..…………………………………………………………….…..5 3. Intrupsi…………………………………………………………………………………...6 4. Procedur Percobaan 2………..……………………………………………………….…..6 PRAKTIKUM III ARITMETIKA………………………………………………………………9 1. Operasi Penambahan……………………………………………………………………..9 2. Operasi Perngurangan……………………………………………………………………10 3. Operasi Perkalian……………...…………………………………………………………11 4. Operasi Pembagian………………………………………………………………………11 5. Procedur Percobaan…………………………………………………………….………..12 PRAKTIKUM IV STACK DAN PROCEDURE………………………………………………13 1. Stack……………………………………………………………………………………..13 2. Procedur Percobaan 1…………………………………………...………………………14 3. Procedur………………………………………………………………………………….15 P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0
  • 29. 29 4. Procedur Percobaan 2……………………...…………………………………………….15 PRAKTIKUM V MACRO………….…………………………………………………………..17 1. Macro…………………………………………………………………………………….17 2. Procedur Percobaan 1…………………………………………………………...……….17 PRAKTIKUM VI LOMPATAN……………….………………………….…………………..19 1. Lompatan Tidak Bersyarat………………………………………………………………19 2. Procedur Percobaan 1……………………………………………………………………19 3. Lompatan Bersyarat……………………………………………………………………..20 4. Procedure Percobaan 2…………………………………………………………………..21 P R O D I I N F O M A T I K A U N I V E R S I T A S M U H A M M A D I Y A H M A L U K U U T A R A REV 1.0