LAPORAN PRAKTIKUM ASSEMBLY Membuat Layou

LAPORAN PRAKTIKUM ASSEMBLY
“Membuat Layout Game Pacman“

Disusun oleh :
Meyla Yan Sari
3.34.13.1.10
IK-2B

PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
2014

JOBSHEET 2
Membuat Layout Game Pacman

I.

Tujuan Intruksional Khusus
Mahasiswa mengerti dan memahami konsep dasar arsitektur sistem komputer dan
mampu melakukan pemrograman dalam bahasa assembly.


II.

Dasar Teori
Untuk mengakses memori kita dapat menggunakan empat register: BX, SI, DI,
BP.
Menggabungkan register ini dalam [ ] simbol, kita bisa mendapatkan
lokasi memori yang berbeda. Kombinasi ini didukung (mode pengalamatan):

d8 - untuk 8 bit perpindahan.
D16 - untuk 16 bit perpindahan.
Pemindahan bisa menjadi nilai langsung atau offset variabel, atau
bahkan keduanya. Terserah compiler untuk menghitung langsung tunggal
nilai.
Pemindahan bisa berada di dalam atau di luar [ ] simbol, compiler
menghasilkan kode mesin yang sama untuk kedua-duanya. Pemindahan adalah nilai
ditandatangani, sehingga dapat menjadi positif atau
negatif. Umumnya compiler mengambil peduli tentang perbedaan antara d8
dan D16, dan menghasilkan kode mesin yang diperlukan.
Sebagai contoh, mari kita asumsikan bahwa DS = 100, BX = 30, SI = 70.


Berikut mode pengalamatan: [BX + SI] + 25
dihitung dengan prosesor ke alamat fisik ini: 100 * 16 +
30 + 70 + 25 = 1725.
Secara default DS segmen register digunakan untuk semua mode kecuali
mereka dengan BP mendaftar, untuk ini segmen SS register digunakan.
Ada cara mudah untuk mengingat semua orang mungkin
kombinasi menggunakan tabel ini:

Anda dapat membentuk semua kombinasi yang valid dengan mengambil hanya satu
item dari setiap kolom atau melompat-lompat kolom dengan tidak mengambil apa-apa
dari itu. Seperti yang Anda lihat BX dan BP tidak pernah bersama. SI dan DI juga
tidak bersama. Berikut adalah contoh yang valid menangani
Cara: [BX + 5].
Nilai dalam register segmen (CS, DS, SS, ES) disebut "segmen",
dan nilai dalam register tujuan (BX, SI, DI, BP) disebut "offset".
Ketika DS berisi nilai 1234h dan SI berisi nilai 7890h dapat juga tercatat sebagai
1234:7890. Alamat fisik akan 1234h * 10h + 7890h = 19BD0h.
Untuk mengatakan compiler tentang tipe data, awalan ini harus digunakan:
BYTE PTR - untuk byte.

WORD PTR - demi kata (dua byte).
Sebagai contoh :

BYTE PTR [BX] ; byte access.
or
WORD PTR [BX] ; word access.
Emu8086 mendukung prefiks lebih pendek juga:
b. - Untuk BYTE PTR
w. - Untuk WORD PTR

kadang-kadang compiler dapat menghitung tipe data secara otomatis,
tetapi Anda tidak mungkin dan tidak harus bergantung pada bahwa ketika salah satu
operan adalah nilai langsung.
instruksi MOV
-

Salinan operan kedua (source) ke operan pertama (tujuan).

-


Sumber operan bisa menjadi nilai langsung, tujuan umum register atau lokasi
memori.

-

register tujuan dapat menjadi daftar tujuan umum, atau memori lokasi.

-

Kedua operan harus menjadi ukuran yang sama, yang dapat menjadi byte atau
kata.

Instruksi MOV tidak dapat digunakan untuk mengatur nilai register CS dan IP.

Anda dapat copy & paste program di atas untuk Emu8086 code editor, dan tekan
tombol [Compile and Emulate] (atau tekan tombol F5 pada keyboard Anda).
Jendela Emulator harus terbuka dengan program ini dimuat, klik [Single Step]
tombol dan menonton nilai-nilai mendaftar. Bagaimana melakukan copy & paste :
1. Pilih teks di atas menggunakan mouse, klik sebelum teks dan tarik ke bawah
sampai semuanya dipilih

2. Tekan Ctrl + C kombinasi untuk menyalin
3. Ke Emu8086 source editor dan tekan Ctrl + V kombinasi untuk paste
Seperti Anda mungkin bisa menebak, ";" digunakan untuk komentar, apapun
setelah ";" simbol diabaikan oleh kompilator. Anda harus melihat sesuatu seperti
ketika program selesai:

III.

Alat dan Bahan
1. Emulator 8086
2. PC Processor minimal pentium IV

IV.

Langkah Kerja
1. Hidupkan komputer
2. Buka emulator 8086 yang telah dinstal pada laptop anda
3. Setelah terbuka, klik new untuk lembar kerja baru

4. Akan muncul form seperti berikut, klik COM Template > OK


5. Lembar kerja yang sudah siap untuk digunakan seperti pada gambar berikut

6. Mulai ketikan code berikut untuk membuat karakter ‘A’ > klik emulate

7. Muncul form seperti berikut. Kemudian klik run.

8. Karakter ‘A’ berhasil anda buat

9. Untuk mengetahui RAM saat proses setelah emulate, klik view > memory

10. Setelah muncul form, tuliskan B800:0000 pada text box > klik update. Sehingga
muncul seperti berikut.

V.

Analisis
org 100h
JMP Mulai:
;add your code here

mulai:
MOV AX,0B800H
MOV DS,AX
MOV AL,’A’
MOV AH,0FH
MOV BX,0
MOV [BX],AX
Ret
 Setelah mengikuti langkah kerja diatas, mengetahui bagamana cara kerja prosessor
dalam pemrosessan untuk membentuk sebuah karakter dengan cara klik emulate.

 0B800H adalah merupakan alamat fisik, dimana karakter A itu akan ditempatkan
dalam layar. Kita bisa mengaturnya sesuai yang kita inginkan.
 Jenis intruksi yang digunakan adalah MOV. Jenis intruksi ini digunakan untuk
mengopy nilai atau angka menuju suatu register, variabel atau memori.
 Alamat yang digunakan adalah :
a. Register AX
b. Register DS
c. Register AL
d. Register AH

e. Register BX
 Penjelasan program
o Org 100h berfungsi sebagai pemberitahu bahwa pada saat program
dijalankan diletakkan mulai pada offset ke 100h.
o MOV AX,0B800H berfungsi menampilkan karakter pada layar.
o MOV AL ,’A’ maksudnya adalah kita meletakkan karakter “A” pada
regidter AL
MOV AX,0B800H
Operand A dari perintah diatas adalah register AX
Operand B dari perintah diatas adalah bilangan 0B800H
Hal yang dilakukan dari perintah diatas adalah memasukkan 0B800H ke register AX
MOV DS, AX
Operand A dari perintah diatas adalah register DS
Operand B dari perintah diatas adalah register AX
Hal yang dilakukan dari perintah diatas adalah menduplikatkan isi register AX ke
register DS
0FH adalah warna dari karakter yang kita tampilkan, kita bisa mengubahnya sesuai
yang kita inginkan.
VI.


Tugas
Membuat layout game pacman dengan assembler :
Koding

Mengetikkan koding berikut pada emu8086

org 100h
JMP mulai
mulai:
MOV AX,0B800H
MOV DS,AX
MOV AL,178
MOV AH,00100100b
mov
mov
mov
mov
mov
mov
mov

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*0)+(160*0),ax
(2*1)+(160*0),ax
(2*2)+(160*0),ax
(2*3)+(160*0),ax
(2*4)+(160*0),ax
(2*5)+(160*0),ax
(2*6)+(160*0),ax
(2*7)+(160*0),ax
(2*8)+(160*0),ax
(2*9)+(160*0),ax
(2*10)+(160*0),ax
(2*11)+(160*0),ax
(2*12)+(160*0),ax
(2*13)+(160*0),ax
(2*14)+(160*0),ax
(2*15)+(160*0),ax
(2*16)+(160*0),ax
(2*17)+(160*0),ax
(2*18)+(160*0),ax
(2*19)+(160*0),ax
(2*20)+(160*0),ax
(2*21)+(160*0),ax
(2*22)+(160*0),ax
(2*23)+(160*0),ax
(2*24)+(160*0),ax
(2*25)+(160*0),ax
(2*26)+(160*0),ax
(2*27)+(160*0),ax
(2*28)+(160*0),ax
(2*29)+(160*0),ax
(2*30)+(160*0),ax
(2*31)+(160*0),ax
(2*32)+(160*0),ax
(2*33)+(160*0),ax
(2*34)+(160*0),ax
(2*35)+(160*0),ax
(2*36)+(160*0),ax
(2*37)+(160*0),ax
(2*41)+(160*0),ax
(2*42)+(160*0),ax
(2*43)+(160*0),ax
(2*44)+(160*0),ax
(2*45)+(160*0),ax
(2*46)+(160*0),ax
(2*47)+(160*0),ax
(2*48)+(160*0),ax
(2*49)+(160*0),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*50)+(160*0),ax
(2*51)+(160*0),ax
(2*52)+(160*0),ax
(2*53)+(160*0),ax
(2*54)+(160*0),ax
(2*55)+(160*0),ax
(2*56)+(160*0),ax
(2*57)+(160*0),ax
(2*58)+(160*0),ax
(2*59)+(160*0),ax
(2*60)+(160*0),ax
(2*61)+(160*0),ax
(2*62)+(160*0),ax
(2*63)+(160*0),ax
(2*64)+(160*0),ax
(2*65)+(160*0),ax
(2*66)+(160*0),ax
(2*67)+(160*0),ax
(2*68)+(160*0),ax
(2*69)+(160*0),ax
(2*70)+(160*0),ax
(2*71)+(160*0),ax
(2*72)+(160*0),ax
(2*73)+(160*0),ax
(2*74)+(160*0),ax
(2*75)+(160*0),ax
(2*76)+(160*0),ax
(2*77)+(160*0),ax
(2*78)+(160*0),ax
(2*79)+(160*0),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*0)+(160*0),ax
(2*0)+(160*1),ax
(2*0)+(160*2),ax
(2*0)+(160*3),ax
(2*0)+(160*4),ax
(2*0)+(160*5),ax
(2*0)+(160*6),ax
(2*0)+(160*7),ax
(2*0)+(160*8),ax
(2*0)+(160*9),ax
(2*0)+(160*10),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*0)+(160*14),ax
(2*0)+(160*15),ax
(2*0)+(160*16),ax
(2*0)+(160*17),ax
(2*0)+(160*18),ax
(2*0)+(160*19),ax
(2*0)+(160*20),ax
(2*0)+(160*21),ax
(2*0)+(160*22),ax
(2*0)+(160*23),ax
(2*0)+(160*24),ax

mov
mov
mov
mov
mov
mov

(2*0)+(160*10),ax
(2*1)+(160*10),ax
(2*2)+(160*10),ax
(2*3)+(160*10),ax
(2*3)+(160*9),ax
(2*3)+(160*8),ax

mov
mov
mov
mov
mov
mov

(2*0)+(160*14),ax
(2*1)+(160*14),ax
(2*2)+(160*14),ax
(2*3)+(160*14),ax
(2*3)+(160*15),ax
(2*3)+(160*16),ax

mov
mov
mov
mov
mov
mov

(2*4)+(160*4),ax
(2*5)+(160*4),ax
(2*6)+(160*4),ax
(2*7)+(160*4),ax
(2*8)+(160*4),ax
(2*9)+(160*4),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*7)+(160*4),ax
(2*7)+(160*5),ax
(2*7)+(160*6),ax
(2*7)+(160*7),ax
(2*7)+(160*8),ax
(2*7)+(160*9),ax
(2*7)+(160*10),ax
(2*7)+(160*11),ax
(2*7)+(160*12),ax
(2*7)+(160*13),ax
(2*7)+(160*14),ax
(2*7)+(160*15),ax
(2*7)+(160*16),ax
(2*7)+(160*17),ax
(2*7)+(160*18),ax
(2*7)+(160*19),ax
(2*7)+(160*20),ax

mov
mov
mov
mov
mov
mov

(2*4)+(160*20),ax
(2*5)+(160*20),ax
(2*6)+(160*20),ax
(2*7)+(160*20),ax
(2*8)+(160*20),ax
(2*9)+(160*20),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*13)+(160*1),ax
(2*13)+(160*2),ax
(2*13)+(160*3),ax
(2*13)+(160*4),ax
(2*13)+(160*5),ax
(2*13)+(160*6),ax
(2*13)+(160*7),ax
(2*13)+(160*8),ax
(2*12)+(160*8),ax
(2*11)+(160*8),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*13)+(160*16),ax
(2*13)+(160*17),ax
(2*13)+(160*18),ax
(2*13)+(160*19),ax
(2*13)+(160*20),ax
(2*13)+(160*21),ax
(2*13)+(160*22),ax
(2*13)+(160*23),ax
(2*12)+(160*16),ax

mov (2*11)+(160*16),ax
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*11)+(160*12),ax
(2*12)+(160*12),ax
(2*13)+(160*12),ax
(2*14)+(160*12),ax
(2*15)+(160*12),ax
(2*16)+(160*12),ax
(2*17)+(160*12),ax
(2*18)+(160*12),ax
(2*19)+(160*12),ax

mov
mov
mov
mov
mov
mov
mov
mov

(2*17)+(160*4),ax
(2*17)+(160*5),ax
(2*17)+(160*6),ax
(2*17)+(160*7),ax
(2*17)+(160*8),ax
(2*18)+(160*8),ax
(2*19)+(160*8),ax
(2*20)+(160*8),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*20)+(160*8),ax
(2*20)+(160*9),ax
(2*20)+(160*10),ax
(2*20)+(160*11),ax
(2*20)+(160*12),ax
(2*20)+(160*13),ax
(2*20)+(160*14),ax
(2*20)+(160*15),ax
(2*20)+(160*16),ax

mov
mov
mov
mov
mov
mov
mov
mov

(2*17)+(160*16),ax
(2*17)+(160*17),ax
(2*17)+(160*18),ax
(2*17)+(160*19),ax
(2*17)+(160*20),ax
(2*18)+(160*16),ax
(2*19)+(160*16),ax
(2*20)+(160*16),ax

mov
mov
mov
mov

(2*21)+(160*0),ax
(2*21)+(160*1),ax
(2*21)+(160*2),ax
(2*21)+(160*3),ax

mov
mov
mov
mov

(2*21)+(160*20),ax
(2*21)+(160*22),ax
(2*21)+(160*23),ax
(2*21)+(160*21),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*26)+(160*1),ax
(2*26)+(160*2),ax
(2*26)+(160*3),ax
(2*26)+(160*4),ax
(2*26)+(160*5),ax
(2*26)+(160*6),ax
(2*26)+(160*7),ax
(2*26)+(160*8),ax
(2*24)+(160*8),ax
(2*25)+(160*8),ax

mov (2*24)+(160*8),ax
mov (2*27)+(160*8),ax
mov (2*28)+(160*8),ax
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*26)+(160*23),ax
(2*26)+(160*22),ax
(2*26)+(160*21),ax
(2*26)+(160*20),ax
(2*26)+(160*19),ax
(2*26)+(160*18),ax
(2*26)+(160*17),ax
(2*26)+(160*16),ax
(2*24)+(160*16),ax
(2*25)+(160*16),ax
(2*24)+(160*16),ax
(2*27)+(160*16),ax
(2*28)+(160*16),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*24)+(160*12),ax
(2*25)+(160*12),ax
(2*26)+(160*12),ax
(2*27)+(160*12),ax
(2*28)+(160*12),ax
(2*29)+(160*12),ax
(2*30)+(160*12),ax
(2*31)+(160*12),ax
(2*31)+(160*12),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*32)+(160*5),ax
(2*32)+(160*6),ax
(2*32)+(160*7),ax
(2*32)+(160*8),ax
(2*32)+(160*9),ax
(2*32)+(160*10),ax
(2*32)+(160*11),ax
(2*32)+(160*12),ax
(2*32)+(160*13),ax
(2*32)+(160*14),ax
(2*32)+(160*15),ax
(2*32)+(160*16),ax
(2*32)+(160*17),ax
(2*32)+(160*18),ax
(2*32)+(160*19),ax
(2*32)+(160*29),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*33)+(160*4),ax
(2*33)+(160*20),ax
(2*34)+(160*4),ax
(2*34)+(160*20),ax
(2*35)+(160*4),ax
(2*35)+(160*20),ax
(2*36)+(160*5),ax
(2*36)+(160*19),ax
(2*37)+(160*19),ax
(2*37)+(160*5),ax

;mov (2*38)+(160*19),ax
;mov (2*39)+(160*19),ax
;mov (2*40)+(160*19),ax

;mov
;mov
;mov
;mov
;mov
;mov
;mov

(2*41)+(160*19),ax
(2*42)+(160*19),ax
(2*43)+(160*19),ax
(2*44)+(160*20),ax
(2*45)+(160*20),ax
(2*46)+(160*20),ax
(2*47)+(160*20),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*0)+(160*24),ax
(2*1)+(160*24),ax
(2*2)+(160*24),ax
(2*3)+(160*24),ax
(2*0)+(160*24),ax
(2*1)+(160*24),ax
(2*2)+(160*24),ax
(2*3)+(160*24),ax
(2*4)+(160*24),ax
(2*5)+(160*24),ax
(2*6)+(160*24),ax
(2*7)+(160*24),ax
(2*8)+(160*24),ax
(2*9)+(160*24),ax
(2*10)+(160*24),ax
(2*11)+(160*24),ax
(2*12)+(160*24),ax
(2*13)+(160*24),ax
(2*14)+(160*24),ax
(2*15)+(160*24),ax
(2*16)+(160*24),ax
(2*17)+(160*24),ax
(2*18)+(160*24),ax
(2*19)+(160*24),ax
(2*20)+(160*24),ax
(2*21)+(160*24),ax
(2*22)+(160*24),ax
(2*23)+(160*24),ax
(2*24)+(160*24),ax
(2*25)+(160*24),ax
(2*26)+(160*24),ax
(2*27)+(160*24),ax
(2*28)+(160*24),ax
(2*29)+(160*24),ax
(2*30)+(160*24),ax
(2*31)+(160*24),ax
(2*32)+(160*24),ax
(2*33)+(160*24),ax
(2*34)+(160*24),ax
(2*35)+(160*24),ax
(2*36)+(160*24),ax
(2*37)+(160*24),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*41)+(160*24),ax
(2*42)+(160*24),ax
(2*43)+(160*24),ax
(2*44)+(160*24),ax
(2*45)+(160*24),ax
(2*46)+(160*24),ax
(2*47)+(160*24),ax
(2*48)+(160*24),ax
(2*49)+(160*24),ax
(2*50)+(160*24),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*51)+(160*24),ax
(2*52)+(160*24),ax
(2*53)+(160*24),ax
(2*54)+(160*24),ax
(2*55)+(160*24),ax
(2*56)+(160*24),ax
(2*57)+(160*24),ax
(2*58)+(160*24),ax
(2*59)+(160*24),ax
(2*60)+(160*24),ax
(2*61)+(160*24),ax
(2*62)+(160*24),ax
(2*63)+(160*24),ax
(2*64)+(160*24),ax
(2*65)+(160*24),ax
(2*66)+(160*24),ax
(2*67)+(160*24),ax
(2*68)+(160*24),ax
(2*69)+(160*24),ax
(2*70)+(160*24),ax
(2*71)+(160*24),ax
(2*72)+(160*24),ax
(2*73)+(160*24),ax
(2*74)+(160*24),ax
(2*75)+(160*24),ax
(2*76)+(160*24),ax
(2*77)+(160*24),ax
(2*78)+(160*24),ax
(2*79)+(160*24),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*79)+(160*0),ax
(2*79)+(160*1),ax
(2*79)+(160*2),ax
(2*79)+(160*3),ax
(2*79)+(160*4),ax
(2*79)+(160*5),ax
(2*79)+(160*6),ax
(2*79)+(160*7),ax
(2*79)+(160*8),ax
(2*79)+(160*9),ax
(2*79)+(160*10),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*79)+(160*14),ax
(2*79)+(160*15),ax
(2*79)+(160*16),ax
(2*79)+(160*17),ax
(2*79)+(160*18),ax
(2*79)+(160*19),ax
(2*79)+(160*20),ax
(2*79)+(160*21),ax
(2*79)+(160*22),ax
(2*79)+(160*23),ax
(2*79)+(160*24),ax

mov
mov
mov
mov
mov
mov
mov

(2*53)+(160*1),ax
(2*53)+(160*2),ax
(2*53)+(160*3),ax
(2*53)+(160*4),ax
(2*53)+(160*5),ax
(2*53)+(160*6),ax
(2*53)+(160*7),ax

mov
mov
mov
mov
mov

(2*53)+(160*8),ax
(2*52)+(160*8),ax
(2*51)+(160*8),ax
(2*54)+(160*8),ax
(2*55)+(160*8),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*53)+(160*16),ax
(2*53)+(160*17),ax
(2*53)+(160*18),ax
(2*53)+(160*19),ax
(2*53)+(160*20),ax
(2*53)+(160*21),ax
(2*53)+(160*22),ax
(2*53)+(160*23),ax
(2*52)+(160*16),ax
(2*51)+(160*16),ax
(2*54)+(160*16),ax
(2*55)+(160*16),ax

mov
mov
mov
mov
mov
mov
mov
mov

(2*58)+(160*1),ax
(2*58)+(160*2),ax
(2*58)+(160*3),ax
(2*58)+(160*4),ax
(2*58)+(160*20),ax
(2*58)+(160*21),ax
(2*58)+(160*22),ax
(2*58)+(160*23),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*60)+(160*12),ax
(2*61)+(160*12),ax
(2*62)+(160*12),ax
(2*63)+(160*12),ax
(2*64)+(160*12),ax
(2*65)+(160*12),ax
(2*66)+(160*12),ax
(2*67)+(160*12),ax
(2*68)+(160*12),ax
(2*59)+(160*12),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*60)+(160*8),ax
(2*61)+(160*8),ax
(2*62)+(160*8),ax
(2*60)+(160*16),ax
(2*61)+(160*16),ax
(2*62)+(160*16),ax
(2*62)+(160*4),ax
(2*62)+(160*5),ax
(2*62)+(160*6),ax
(2*62)+(160*7),ax
(2*62)+(160*17),ax
(2*62)+(160*18),ax
(2*62)+(160*19),ax
(2*62)+(160*20),ax

mov
mov
mov
mov
mov
mov

(2*59)+(160*8),ax
(2*59)+(160*9),ax
(2*59)+(160*10),ax
(2*59)+(160*11),ax
(2*59)+(160*12),ax
(2*59)+(160*13),ax

mov (2*59)+(160*14),ax
mov (2*59)+(160*15),ax
mov (2*59)+(160*16),ax
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*66)+(160*1),ax
(2*66)+(160*2),ax
(2*66)+(160*3),ax
(2*66)+(160*4),ax
(2*66)+(160*5),ax
(2*66)+(160*6),ax
(2*66)+(160*7),ax
(2*66)+(160*8),ax
(2*67)+(160*8),ax
(2*68)+(160*8),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*66)+(160*23),ax
(2*66)+(160*22),ax
(2*66)+(160*21),ax
(2*66)+(160*20),ax
(2*66)+(160*19),ax
(2*66)+(160*18),ax
(2*66)+(160*17),ax
(2*66)+(160*16),ax
(2*67)+(160*16),ax
(2*68)+(160*16),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*72)+(160*4),ax
(2*72)+(160*5),ax
(2*72)+(160*6),ax
(2*72)+(160*7),ax
(2*72)+(160*8),ax
(2*72)+(160*9),ax
(2*72)+(160*10),ax
(2*72)+(160*11),ax
(2*72)+(160*12),ax
(2*72)+(160*13),ax
(2*72)+(160*14),ax
(2*72)+(160*15),ax
(2*72)+(160*16),ax
(2*72)+(160*17),ax
(2*72)+(160*18),ax
(2*72)+(160*19),ax
(2*72)+(160*20),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*70)+(160*4),ax
(2*71)+(160*4),ax
(2*73)+(160*4),ax
(2*74)+(160*4),ax
(2*75)+(160*4),ax
(2*70)+(160*20),ax
(2*71)+(160*20),ax
(2*73)+(160*20),ax
(2*74)+(160*20),ax
(2*75)+(160*20),ax

mov
mov
mov
mov
mov

(2*76)+(160*8),ax
(2*76)+(160*9),ax
(2*76)+(160*10),ax
(2*77)+(160*10),ax
(2*78)+(160*10),ax

mov
mov
mov
mov
mov

(2*76)+(160*14),ax
(2*76)+(160*15),ax
(2*76)+(160*16),ax
(2*77)+(160*14),ax
(2*78)+(160*14),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*36)+(160*9),ax
(2*36)+(160*10),ax
(2*36)+(160*11),ax
(2*36)+(160*12),ax
(2*36)+(160*13),ax
(2*36)+(160*14),ax
(2*36)+(160*15),ax
(2*37)+(160*9),ax
(2*38)+(160*9),ax
(2*39)+(160*9),ax
(2*40)+(160*9),ax
(2*41)+(160*9),ax
(2*42)+(160*8),ax
(2*43)+(160*8),ax
(2*44)+(160*8),ax
(2*45)+(160*8),ax
(2*46)+(160*9),ax
(2*46)+(160*10),ax
(2*47)+(160*10),ax

mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov

(2*37)+(160*15),ax
(2*38)+(160*15),ax
(2*39)+(160*15),ax
(2*40)+(160*15),ax
(2*41)+(160*15),ax
(2*42)+(160*16),ax
(2*43)+(160*16),ax
(2*44)+(160*16),ax
(2*45)+(160*16),ax
(2*46)+(160*15),ax
(2*46)+(160*14),ax
(2*47)+(160*14),ax

Program yang telah diketikkan

klik emulate > run :

Analisis Program
org 100h = direktif diperlukan untuk program COM.
JMP Mulai
Mulai : = memulai program.

MOV AX, 0B800H = merupakan kumpulan AX untuk nilai hexadesimal 0B800H.
MOV DS, AX = merupakan nilai salinan dari AX ke DS (alamat).
MOV AL, 178 = menunjukkan karakter yang akan dimunculkan. Merupakan code
ascii dari karakter yang akan ditampilkan.
MOV AH, 02H = menunjukkan attribute warna yang akan digunakan.
MOV (2*0) + (160*0), AX = menunjukkan karakter muncul pada kolom 0 dan baris
0.
ret = kembali ke sistem operasi.

VII.

Kesimpulan
Untuk mengakses memori kita dapat menggunakan empat register: BX, SI, DI,
BP.
Menggabungkan register ini dalam [ ] simbol, kita bisa mendapatkan lokasi memori
yang berbeda.
Pemindahan bisa menjadi nilai langsung atau offset variabel, atau
bahkan keduanya. Terserah compiler untuk menghitung langsung tunggal
nilai.
Pemindahan bisa berada di dalam atau di luar [ ] simbol, compiler
menghasilkan kode mesin yang sama untuk kedua-duanya. Pemindahan adalah nilai
ditandatangani, sehingga dapat menjadi positif atau
negatif. Umumnya compiler mengambil peduli tentang perbedaan antara d8
dan D16, dan menghasilkan kode mesin yang diperlukan.