19 Mart 2013

Mikroişlemciler Hafta 3 - 64 Bitlik iki sayının toplamı, Eldeli ve Eldesiz Toplama

Mikroişlemciler Hafta 3'de 64 Bitlik iki sayının toplamını Eldeli ve 4 adet 16 bitlik sayının ortalaması Eldesiz şekilde yazdık. ASM koduna aşağıdan bakabilirsiniz. Aynı zamanda 4 adet 16 bitlik sayının ortalamasını sonra Eldeli olarak toplamını yazdık. addc.w Eldeli Toplamada kullanılıyor, add.w komutu ise  Eldesiz Toplamada.

Ek olarak Register Etiket yapmak için başına 0 Koyun #0100h gibi, #FFFFh Şeklinde yaparsan algılamaz
;******************************************************************************
 .cdecls C,LIST,  "msp430g2231.h"

;------------------------------------------------------------------------------
            .text                           ; Progam Start
;------------------------------------------------------------------------------
RESET       mov.w   #0280h,SP               ; Initialize stackpointer
StopWDT     mov.w   #WDTPW+WDTHOLD,&WDTCTL  ; Stop WDT
            
            ; addc.w Eldeli Toplama
            ; add.w  Eldesiz Toplama
            ; Register Etiket yapmak için başına 0 Koyun #0100h gibi, #FFFFh Şeklinde yaparsan algılamaz
            
            ; 1)64 Bitlik iki sayının toplamı
            mov #0100h, r8
            mov #0200h, r9
            mov #0100h, r10
            mov #0200h, r11
            mov #0100h, r12
            mov #0200h, r13
            mov #0100h, r14
            mov #0200h, r15
            add.w r12,r8
            addc.w r13,r9
            addc.w r14,r10
            addc.w r15,r11

            ; 2-A)4 adet 16 bitlik sayının ortalaması Eldesiz
            mov #0000h, r7
            mov #0100h, r8
            mov #0100h, r9
            mov #0100h, r10
            mov #0100h, r11
            mov #0100h, r12
            mov #0100h, r13
            mov #0100h, r14
            mov #0100h, r15
            add r15,r7
            add r14,r7
            add r13,r7
            add r12 ,r7
            clrc
            rrc r7
            clrc
            rrc r7
            
            
            ; 2-B)4 adet 16 bitlik sayının ortalaması Eldeli
            mov #0000h, r8
            mov #0000h, r9
            mov #0000h, r10
            mov #0000h, r11
            mov #0100h, r12
            mov #0100h, r13
            mov #0100h, r14
            mov #0100h, r15
            add r15,r7
            addc r11,r6
            add r14,r7
            addc r10,r6
            add r13,r7
            addc r9,r6
            add r12,r7
            addc r8,r6
            clrc
            rrc r6
            rrc r7
            clrc
            rrc r6
            rrc r7


            ; Diğer Kodlar
            clrc
            rrc r6
            mov #1,r7
            cmp r5,r6
            jhs  devam
            clr r7
devam        nop
        
                                           
;------------------------------------------------------------------------------
;           Interrupt Vectors
;------------------------------------------------------------------------------
            .sect   ".reset"                ; MSP430 RESET Vector
            .short  RESET                   ;
            .end
Ders: Mikroişlemciler
Prof. Dr. Bekir Tevfik Akgün