Alo!!

Ekola, tole je ena različic od lani (ni moja in
nism zighr če deluje k je nism sprobala, sam
mislm da je kr ok):

;  R1, naslov polja A
;  R2, naslov polja B
;  R3, število elementov
;
;  SUM = A[i] + B[i]
;  IF SUM > 255
;    SUM = 255
;  ELSE
;  IF SUM < 0
;    SUM = 0
;  A[i] = SUM
;++++++++++++++++++++++++++++++++++
;  R4, stevilo iz A
;  R5, stevilo iz B
;  R6, cnt
;  R7 = 255
;  R8 = 128
        .data 
        .org 0x400
A:      .byte 12,251,140
B:      .byte 15,150,230

    .text
        .org 0
        ADDUI   R1,R0,#A
        ADDUI   R2,R0,#B    
        ADDUI   R3,R0,#3    ; število el. v tabeli
        ADDUI   R7,R0,#255  ; za primerjavo
        ADDUI   R8,R0,#128
        ADDU    R6,R0,R0    ; counter
        j       prognp(R0)
        nop
        nop
;---------------------------
;-- neizpolnjen pogoj
;---------------------------
vecjinp:
        ADDUI   R4,R0,#255
        J       storenp(R0)
manjsinp: 
        ADDUI   R4,R0,#128
        j       storenp(R0)

prognp:
        LB      R4,A(R6)                        ;loada byte v R4 iz A
        LB      R5,B(R6)                        ;loada byte v R5 iz B
        
        ADDU    R4,R4,R5                ;sesteje A[i] + B[i]
        SUBI    R4,R4,#128              ;odsteje odmik 128
        
        ;preveri pogoje
        SLT     R10,R7,R4                       ; ce je R7 < R4 potem R10 = 1
        BNE     R10,vecjinp                     ; skoce ce R10 = 1
        
        ;preveri za rez < 0
        SLT R10,R4,R8
        BNE R10,manjsinp

storenp:
        ; shrani na A[i]
        SB      A(R6),R4   

        ; poveca odmik v tabeli
        ADDUI   R6,R6,#1
        
        ;ce pride do konca tabele skoci na konec
        SUBU    R10,R6,R3
        BEQ     R10,end
        
        J       prognp(R0)
;------------------------------
;-- konec neizpolnjenega pogoja
;------------------------------
;---------------------------
;-- zakasnjen skok
;---------------------------
vecjizs:
        ADDUI   R4,R0,#255
        J       storezs(R0)
        nop
        nop
manjsizs: 
        ADDUI   R4,R0,#128
        j       storezs(R0)
        nop
        nop
progzs:
        LB      R4,A(R6)                        ;loada byte v R4 iz A
        LB      R5,B(R6)                        ;loada byte v R5 iz B
        
        ADDU    R4,R4,R5                ;sesteje A[i] + B[i]
        SUBI    R4,R4,#128              ;odsteje odmik 128
        
        ;preveri pogoje
        SLT     R10,R7,R4                       ; ce je R7 < R4 potem R10 = 1
        BNE     R10,vecjizs                     ; skoce ce R10 = 1
        nop
        nop
        
        ;preveri za rez < 0
        SLT R10,R4,R8
        BNE R10,manjsizs
        nop
        nop

storezs:
        ; shrani na A[i]
        SB      A(R6),R4   

        ; poveca odmik v tabeli
        ADDUI   R6,R6,#1
        
        ;ce pride do konca tabele skoci na konec
        SUBU    R10,R6,R3
        BEQ     R10,end
        nop
        nop
        
        J       progzs(R0)
        nop
        nop
;------------------------------
;-- konec zakasnjenega skoka
;------------------------------


end:    halt


lep pozdrav&#269;ek, Anja
--- Simon Sesek <[EMAIL PROTECTED]> wrote:

> Helo!
> Ali mogoce ima kaj narejeno pri Ars1 4. seminarsko
> nalogo za HIP?
> Bom vesel kakrsnekoli pomoci.
> 
> Tle je se besedilo naloge:
> 
> Napi¹ite podprogram za HIP procesor, ki se¹teje
> elemente dveh polj, ki
> vsebujejo 8-bitna
> predznaèena ¹tevila v predstavitvi z odmikom (odmik
> je 128), po pravilu, ki
> ga podaja
> spodnja psevdo koda:
> SUM = A[i] + B[i]
> IF SUM > 255
> SUM = 255
> ELSE IF SUM < 0
> SUM = 0
> A[i] = SUM
> Dodaten namig: ¹tevila v predstavitvi z odmikom
> se¹tevamo tako, da ¹tevili
> se¹tejemo, nato
> pa en odmik od¹tejemo.
> Naslov polja A dobi podprogram v registru R1, naslov
> polja B v registru R2,
> ¹tevilo
> elementov polj pa v registru R3.
> 
> Napi¹ite:
> 1. razlièico, ki je primerna za HIP procesor, ki
> uporablja zakasnjene skoke;
> 
> 2. razlièico, ki je primerna za HIP procesor, ki pri
> skokih predpostavlja
> neizpolnjen
> pogoj.
> Na zadnji razlièici (neizpolnjen pogoj pri skokih)
> analizirajte vse
> cevovodne nevarnosti v
> primeru, èe procesor nima vgrajene logike za
> premo¹èanje podatkovnih
> cevovodnih
> nevarnosti. Posebej oznaèite (glej spodnja navodila
> za delo) tiste ukaze,
> kjer bi podatkovna
> cevovodna nevarnost obstajala, tudi èe bi procesor
> imel vgrajeno logiko za
> premo¹èanje
> podatkovnih cevovodnih nevarnosti.
> 
> Navodila za delo:
> Vsaka seminarska naloga mora vsebovati ime, priimek
> in vpisno ¹tevilko
> ¹tudenta(ke). Poleg
> zahtevanih razlièic podprograma s komentarji mora
> vsaka naloga vsebovati
> kratek glavni
> program s primerom klica ene razlièice podprograma.
> Analizo cevovodnih
> nevarnosti (tip
> nevarnosti, ¹tevilo èakalnih stanj, kaj je
> povzroèilo nevarnost) vkljuèite
> kot komentar vsakega
> ukaza, kjer se cevovodna nevarnost pojavi. Vsak
> podprogram naj bo napisan
> optimalno, tako
> da se izvede kar najhitreje.
> 
> RES HVALA TISTEMU KI KAJ POMAGA...
> 
> LP Simon
> 



                
___________________________________________________________ 
Yahoo! Photos – NEW, now offering a quality print service from just 8p a photo 
http://uk.photos.yahoo.com

Reply via email to