algoritmus

Martin Záruba swz@volny.cz
Neděle Květen 13 10:19:29 CEST 2007


Pokud tabulkou, udelal bych to takto:

Tabuka:
 db    x,x,x,x,x,x,x,x,x,x    ; hodnoty pro b=6 a a<0,90>
 db    x,x,x,x,x,x,x,x,x,x    ; hodnoty pro b=10 a a<0,90>
 db    x,x,x,x,x,x,x,x,x,x    ; hodnoty pro b=15 a a<0,90>

PROMENNAa:    db    1
PROMENNAb:    db    1


; pokud je b<8 pouzije se z tabulky hodnota pro 6, pokud b<13 pouzije se
hodnota pro 10, jinak pro 15
Program:
    mov    a,PROMENNAa
    mov    b,#10
    div    ab
    mov    r1,a
    mov    r2,#0
    mov    a,PROMENNAb
    clr    c
    subb    a,#8
    jc       okixb
    inc    r2        ; zvysit na index pro druhou radku
    subb    a,#5
    jc    okixb
    inc    r2        ; zvysit na index pro treti radku
okixb:
    mov    a,r2    ; index sloupce
    mov    b,#10    ; vynasobit delkou radky
    mul    ab            ; v a je nyni adresa radky
    add    a,r1        ; uchovany index radky
    mov    dptr,#Tabulka
    movc    a,@a+dptr    ; v a je nyni prvek z tabulky


Martin Zaruba


----- Original Message ----- 
From: "Igor Černý" <iro@xcross.cz>
To: "HW-news" <hw-list@list.hw.cz>
Sent: Sunday, May 13, 2007 8:53 AM
Subject: algoritmus


Dobry den,
poradte jak nejvhodneji implementovat nasledujici problem:
mam dve spojite na sobe nezavisle veliciny a,b z oboru celych cisel
a = <0,90>
b = <6, 15>

hodnota c je dana tabulkou v zavislosti na
a = 0, 10, 20, ... 90
pri b = 6, 10, 15

Pokud hodnota vstupu dle tabulky nedosahne c OK, pokud presahne musi
procesor
reagovat napr. vypnutim zarizeni.

Nevim zda je vhodne zapsat tabulku a nejak kontrolovat hodnoty mymo
definovane
body, nebo by bylo vhodnejsi najit funkci, ktera definuje F(a,b)=c - to ale
nevim jak :(

Jake reseni si myslite ze je vhodnejsi pripadne jake vyhody maji jednotliva
reseni.

Diky s pozdravem

Igor
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list




Další informace o konferenci Hw-list