Praktikum 9 Mencetak Angka - 2
Praktikum 9 Mencetak Angka - 2
BAHASA ASSEMBLY
MENCETAK ANGKA
Oleh :
Nama : Isnani
NIM : 1957301025
Kelas : TI.1C
Dosen Pembimbing : Azhar, S.T,.M.T.
Nama : Isnani
NIM : 1957301025
Kelas : TI.1C
Nilai :
Azhar, S.T,.M.T.
2
TUJUAN PRAKTIKUM
1. Mahasiswa mampu melakukan pemrograman assembly menggunakan Turbo
Assembler
2. Mahasiswa mampu membuat program assembly untuk mencetak angka.
DASAR TEORI
1. MASALAH DALAM MENCETAK ANGKA
Pada assembler, untuk mencetak suatu angka tidaklah semudah mencetak angka
pada bahasa tingkat tinggi. Hal ini dikarenakan baik oleh BIOS maupun DOS tidak
disediakan fungsinya. Misalkan kita mempunyai suatu angka 7, untuk mencetaknya kita
harus menerjemahkan ke dalam kode ASCII 55 dahulu barulah mencetaknya. Demikian
halnya bila ingin mencetak angka 127, maka kita juga harus menterjemahkannya dalam
kode ASCII 49, 50 dan 55 untuk kemudian dicetak. Selanjutnya akan kita lihat,
bagaimana caranya untuk mencetak angka dalam bentuk desimal maupun hexadesimal.
Cara yang paling banyak dilakukan oleh programmer assembler, untuk mencetak
angka dalam bentuk desimal adalah dengan membagi angka tersebut dengan 10.
Kemudian sisa pembagiannya disimpan dalam stack. Pada saat pencetakan, angka-angka
yang disimpan dalam stack akan diambil satu persatu untuk dicetak.
Misalkan anda mempunyai angka 345, maka hasil pembagian dengan 10 sebanyak
3 kali akan menghasilkan sisa berturut-turut 5, 4 dan 3. Sisa pembagian ini kemudian
disimpan pada stack. Karena sifat stack yang LIFO <Last In First Out>, maka pada saat
pengambilan angka pada stack untuk dicetak akan diambil berturut-turut angka 345 !
3
DAFTAR ALAT DAN BAHAN
1. Komputer Pribadi
2. Perangkat Lunak Turbo Assembler dan DEBUG
KESELAMATAN KERJA
1. Praktikum hanya dapat dilakukan atas petunjuk dosen pengasuh atau instruktur.
2. Pastikan semua peralatan dalam keadaan baik sebelum dan sesudah melakukan
praktikum serta menjaga semua peralatan yang digunakan.
3. Perlu mematuhi semua peraturan yang berlaku dalam laboratorium yang
digunakan
4
PERCOBAAN
Hasil:
5
b. Ubah nilai Test_Angka ke 32, 50, 75,1234,33445,123456 dan amati apa yang terjadi
nilai Test_Angka ke 32
nilai Test_Angka ke 50
nilai Test_Angka ke 75
6
nilai Test_Angka ke 3345
7
Hasil
8
3. Menampilkan angka dalam bentuk heksadesimal
a. Tulis source code program berikut ini pada text editor lalu compile ,linking, dan
jalankan hasilnya serta amati hasilnya dengan seksama.
Source Code:
Hasil:
9
TUGAS DAN PERTANYAAN
1. Analisa hasil dari eksekusi program diatas, berikan maksud dari setiap baris
program yang diberikan, tinjau perubahan dari register-register yang diakibatkan
oleh instruksi program, demikian juga isi memori jika dipakai untuk menyimpan
data.
2. Dari hasil percobaan yang dilakukan, buat kesimpulan dari masing-masing program
tersebut.
----------------------------------------------------------------------------------------------------
---
1. Mencetak angka dalam bentuk desimal
10
Lalu kita lihat nilai awal dari AX=FFFF akan diisi oleh register
Temp yaitu 20.
Lalu tekan t, maka melihat register awal,lalu tekan t.Dan amati.
Lalu Nilai Register BX dari 0000 di pindahkan menjadi bernilai
000A.
Nilai CX tetap karna XOR ini berguna membuat nilai menjadi 0.
Lalu tekan t, maka melihat register awal,lalu tekan t.Dan amati
Nilai DX tetap karna XOR ini berguna membuat nilai menjadi 0.
Lalu tekan t, maka melihat register awal,lalu tekan t.Dan amati
BX di DIV dan di tolak registernya ke DX
CX mengalami kenaikan
Tekan t dan amati hasilnya
AX melakukan compare
Lompatan berlangsung jika tidak ada nilai 0 (tidak)
15.Kembali dari awal jika iya maka berhenti
11
2. Mencari dan menampilkan angka prima
12
Ketik Debug p93.com
Tekan t untuk melihat
Nilai BH dikurangi dan di move ke register BX
Kemudian BL di mov dengan nilai temp sebesar FF
Kemudian di push ke BX
Lalu mov CL sebesar 04
Lalu nilai BL dipindahkan ke CL
Kemudian di pindahkan nilai DL dengan nilai temp yakni 46
Sehingga DX bernilai 46
13