ORGANISASI KOMPUTER
PENGGUNAAN POINTER
Bahasa assembly adalah sebuah program yang terdiri dari instruksi -instruksi yang
menggantikan kode-kode biner dari bahasa mesin. Bahasa Assembly sering juga disebut kode
sumber atau kode simbolik yang tidak dapat dijalankan oleh prosesor, sedangkan assembler
adalah suatu programyang dapat menerjemahkan program bahasa assembly ke program
Bahasa mesin. bahasa mesin adalah kumpulan kode biner yang merupakan instruksi yang
bisa dijalankan oleh komputer. Program bahasa mesin sering disebut sebagai kode objek.
Untuk menjalankan bahasa Assembly harus ada aplikasi untuk menjalankannya. Salah
satunya adalah emu8068. Di dalam aplikasi tersebut,bisa melakukan berbagai aktivitas,
diantaranya adalah melakukan pengulangan dengan loop dan mencetak kalimat dengan fungsi
DOS. Maka dari itu dengan adanya pembuatan laporan praktikum ini agar para pembaca
mengetahui langkah-langkah untuk melakukan pengulangan dengan loop dan mencetak
kalimat dengan fungsi DOS di emu 8086 dengan menggunakan bahasa Assembly.
Tujuan Praktikkum
1. Mengetahui dan memahami syntax yang dalam pembuatan program operasi
aritmatika yang lebih banyak menggunakan pointer.
2. Memahami penggunaan operasi-operasi logika dalam pembuatan
program beroperasi aritmatika.
3. Mahasiswa diharapkan mampu memahami penjelasan dari operasi Aritmatika
menggunakan Pointer.
4. Mahasiswa mampu membuat kode program operasi aritmatika pointer dalam
Bahasa Assembler.
5. Mengetahui cara kerja dan cara menggunakan pointer pada operasi aritmatika.
Manfaat Praktikum
BAB II
TEORI SINGKAT
Pointer
Pointer merupakan salah satu alat penunjuk alamat. Pointer dalam assembler
digunakan sebagai alat penggabung dari sebuah operand yang sama dan terpisah akibat
kurangnya daya tamping sebuah register. Pointer digunakan sesuai dengan tipe data yang
dipilih, pada assembler terdapat beberapa tipe data diantaranya sebagai berikut:
NAMA UKURAN
DB (Define Byte) 1 BYTE
DW (Define Word) 2 BYTE
DD (Define DoubleWord) 4 BYTE
DF (Define FarWords) 6 BYTE
DQ (Define QuardWord) 8 BYTE
DT (Define TenBytes) 10 BYTE
BAB III
ANALISA PROGRAM
LATIHAN
JAWABAN
1. MODEL SMALL
Tanda directive ini digunakan untuk memberitahukan kepada assembler
bentuk
memory yang digunakan oleh program kita. Supaya lebih jelas model-model yang
bias
digunakan adalah :
- SMALL
Jika data dan code yang digunakan oleh program kurang dari ukuran 1 segment
atau 64 KB.
2. .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.
3. . 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.
4. INT 20h
Perintah INT adalah suatu perintah untuk menghasilkan suatu interupsi
Latihan 1
Debug :
Output :
Pada awalnya user mendefinisikan variabel "A" dan "B" dengan tipe data word
(16 bit) yang mempunyai nilai awal 01EF dan 02FE, serta variabel "C" dengan tipe
Pada kedua perintah tersebut, kita memindahkan data dari variabel "A" ke
register AX dengan byte per byte. Perhatikanlah bahwa kita harus menyesuaikan
pemindahan data yang dilakukan dengan kemampuan daya tampungnya. Oleh sebab
itu digunakan "BYTE" PTR untuk memindahkan data 1 byte menuju register 8 bit,
dengan demikian untuk memindahkan data 16 bit harus digunakan "WORD" PTR.
Pada baris pertama kita memindahkan byte rendah dari variabel "A" (EF) menuju
register AL, kemudian pada baris kedua kita memindahkan byte tingginya (01)
menuju register AH. Lihatlah kita menggunakan "BYTE PTR A" untuk nilai byte
rendah dan "BYTE PTR+1" untuk byte tinggi dari variabel "A" dikarenakan
penyimpanan data dalam memori komputer yang menyimpan byte tinggi terlebih
dahulu .
MOV AX, A
Pada bagian ini akan kita coba untuk memindahkan data dari 2 register 16 bit
menuju 1 variabel 32 bit. Pada baris pertama "MOV AX,A" tentunya tidak ada
masalah karena kedua operand mempunyai daya tampung yang sama. Pada baris
kedua "MOV WORD PTR Hsl ,AX" kita memindahkan nilai pada register AX
untuk disimpan pada variabel "Hsl" sebagai word rendahnya. Kemudian pada baris
ketiga "MOV WORD PTR Hsl 1+2,BX" kita masukkan nilai dari register BX
pada variabel "Hsl" untuk word tingginya sehingga nilainya sekarang adalah
PTR+2) dari variabel "Hsl" untuk menyimpan word tingginya. Kini dengan
menggunakan pointer ini kita bisa menyimpan hasil perkalian 16 bit didalam 1
variabel 32 bit.
Latihan 2
BAB IV
PENUTUP
Kesimpulan
DAFTAR PUSTAKA
Dr. Inna Novianty., M.Si. 2021. MODUL PRAKTIKUM ORGANISASI KOMPUTER & BAHASA
ASSEMBLY. [Bogor]: Program Diploma Institut Pertanian Bogor [IPB].