Mencetak angka dalam bentuk desimal.
Cara yang paling banyak digunakan programer assembler, untuk mencetak angka dalam bentuk desimal adalah dengan membagi angka tersebut dengan 10. Kemudian sisa baginya 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. Karena sifat stack yang LIFO (last in first out), maka saat pengambilan angka pada stack untuk dicetak akan diambil ber urut-urut angka 345!.
Ok langsung saja prakteknya.
tuliskan source berikut pada notepad
bila program dijalankan maka akan muncul "345"
*catatan:
Test_Angka DW 345 ; angka yang akan dicetak
MOV AX,Test_Angka ; AX = angka yang akan dicetak
MOV BX,10 ; BX = penyebut
XOR CX,CX ; CX = 0
XOR DX,DX ; Cegah sisa bagi menjadi pembilang !
DIV BX ; Bagi angka yang akan dicetak dengan 10
PUSH DX ; Simpan sisa bagi dalam stack
INC CX ; CX ditambah 1
CMP AX,0 ; Apakah hasil bagi sudah habis ?
JNE Ulang ; Jika belum, ulangi lagi !
POP DX ; Ambil 1 angka yang disimpan
ADD DL,'0' ; Ubah angka tersebut dalam kode ASCII
INT 21h ; Cetak angka tersebut
:: Semoga Bermanfaat ::

0 komentar