Professional Documents
Culture Documents
Latihan 13 FS Sign Nbyte
Latihan 13 FS Sign Nbyte
DOC_SPM_PNJ_2015 (Materi 1_AVR32 Instruksi Aritmatik dan Logik_FS Dengan Sign bt nbyte ) 1/4
; Contoh:
; .exit
; .end
;
; 8. Output file dari hasil Buliding atau dicompile (default)
; a. *.HEX
; b. *.LST
; c. *.MAP
; d. *.OBJ
; e. *.BAT
;
;==========================================================================
; B. Penyusunan program
;==========================================================================
;Langkah_1 Pendefinisian tipe uC yang digunakan
.include "m32def.inc"
;-------------------------------------------------------------------------
;Langkah_2 Pendefinisian nama-nama label
.def PSW_1=r14
.def PSW=r15
.def RegA=r16
.def RTMP_1=r17
.def RTMP_2=r18
.def RTMP_3=r19
.def RTMP_4=r20
.def RTMP_5=r21
;-------------------------------------------------------------------------
;Langkah_3 Insialisasi alamat segment program
.cseg
.org 0000
;-------------------------------------------------------------------------
;Langkah_4 Inisialisasi alamat program utama
rjmp MAIN
;-------------------------------------------------------------------------
;Langkah_5 Inisialisasi alamat stack pointer di alamat RAM akhir
MAIN:
ldi r22,high(RAMEND)
out SPH,r22
ldi r22,low(RAMEND)
out SPL,r22
;==========================================================================
;-------------------------------------------------------------------------
;Langkah_6 Penyusunnan program materi
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;==========================================================================
; B. Penyusunan Prg Pengurangan dengan sign bit Hexa n byte (Full Subtractor)
;==========================================================================
;Langkah_1 inisialisasi register yang akan dipakai
;register X Y Z sebagai pointer alamat
;-------------------------------------------------
DOC_SPM_PNJ_2015 (Materi 1_AVR32 Instruksi Aritmatik dan Logik_FS Dengan Sign bt nbyte ) 2/4
; reg X
ldi r26,0x6f
ldi r27,0x00
;----------------
; reg y
ldi r28,0x7f
ldi r29,0x00
;----------------
; reg Z
ldi r30,0x8f
ldi r31,0x00
;-----------------
;inisialisasi counter byte reg. r16=3 untuk 3 byte
ldi r16,0x3
;-------------------------------------------------
;Langkah_2 Proses operasi pengurangan Z = X-Y
;-------------------------------------------------
;dimulai dari byte LSB
;----------------------
;CLEAR CARRY
;untuk proses half subtractor
CLC
;-------------
KURHEX:
ld r0,x
ld r1,y
sbc r0,r1
st z,r0
;------------
;amankan sementara SREG di R10
IN R10,SREG
;------------
;perbarui alamat X,Y,Z
sbiw X,1
sbiw Y,1
sbiw Z,1
;-----------
;kembalikan SREG dari R10
OUT SREG,R10
;------------
;lakukan ulang sampai n byte
dec r16
brne KURHEX
;--------------------------
;Proses pengurangan selesai
;--------------------------
;Cek Cy bila ='0' ---> positive ----> langsung STOP
; bila ='1' ---> Negative = K2 ---> perlu konversi ke TMF
; dan simpan di alamat z
;Alamat MSB+ menunjukkan sign bit
; bila 2B Menunjukan nilai positip (+) atau kode ASCII 2Bh= '+ '
; bila 2D Menunjukan nilai negatip (-) atau kode ASCII 2Dh= '- '
;--------------------------
;branch clear carray byte
BRCC HASIL_POSITIP
;--------------------------
DOC_SPM_PNJ_2015 (Materi 1_AVR32 Instruksi Aritmatik dan Logik_FS Dengan Sign bt nbyte ) 3/4
HASIL_NEGATIP:
;Simpan kode ASCII negatip ke alamat MSB+1
ldi r16,0x2d
st z,r16
; Proses konversi K2 ke TMF
; inisialisasi alamat Z
; reg Z
ldi r30,0x8f
ldi r31,0x00
;ambil LSB dan konversi ke TMF
ld r0,z
;NEG = K2 (Negative)
neg r0
st z,r0
; byte brikutnya
ld r0,-z
;COM = K1 (Complement)
com r0
st z,r0
; byte brikutnya
ld r0,-z
;COM = K1 (Complement)
com r0
st z,r0
; konversi selesai
rjmp STOP
;--------------------------
HASIL_POSITIP:
;Simpan kode ASCII positip ke alamat MSB+1
ldi r16,0x2B
st z,r16
;selesai
;-------------------------------------------------
;Langkah_3 Proses selesai stop mesin
;-------------------------------------------------
stop: rjmp stop
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;-------------------------------------------------------------------------
;Langkah_4 Penutup program
;=========================================================================
.exit
.end
;=========================================================================
DOC_SPM_PNJ_2015 (Materi 1_AVR32 Instruksi Aritmatik dan Logik_FS Dengan Sign bt nbyte ) 4/4