Tugas Praktikum XII
.model small ;data dan code yang digunakan program kurang
dari 1 segmen atau 64KB
.code ;code segmen digunakan untuk menyimpan program yang
nantinya akan dijalankan
org 100h ;program pada saat dijalankan ditaruh pada offset
100h (255) byte
TData: JMP Proses ;Lompat ke Proses
Kal DB 'LANG LING LUNG' ;Kalimat yang akan dicetak
Ganti DB 13,10,'$' ;Perintah ganti baris/break row
Stacks DW ? ; menyimpan nilai dari
suatu register untuk sementara sebesar 2 Byte (DW=define word)
Proses:
LEA DX,Kal ;Load effective Address, register DX akan
mencatat isi/nilai Kal
PUSH DX ;menyimpan data 1 word dari DX ke stack (SS:SP)
MOV AH,09 ;servis untuk mencetak kalimat
INT 21h ;cetak kalimat
LEA DX,Ganti ; ambil offset Ganti
INT 21h ;cetak kalimat
POP DX ;mengambil data dai stack dan disimpan ke DX
INT 21h ;cetak kalimat
Exit: INT 20h ;selesai, kembali ke DOS
END TData
Hasilnya kalimat LANG LING LUNG akan dicetak 2x dengan ganti bais
Penjelasan dari koding diatas sebagai berikut: Kita menggunakan perintah PUSH, kita
menyimpan nilai register DX pada stack, kemudian pada perintah POP kita mengambil keluar
nilai yang disimpan tersebut dari stack. Pada program ini kita bisa lihat peran stack
menggantikan variable untuk menyimpan nilai.


0 Response to "Tugas Praktikum XII"
Posting Komentar