Kodningsproblem if/else(selektionsatser)

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Markus
Inlägg: 105
Blev medlem: 4 november 2005, 02:35:06
Kontakt:

Kodningsproblem if/else(selektionsatser)

Inlägg av Markus »

Hej programmerings eliten. Nu har rockyen problem i gen. Problemet är följande :

Om man vill ha följande c++ kod i lågnivå hur går man till väga då:

c++ kod

if(a='00001111' & b='00110011)
{
nop



}
else if (a='11100011 &='11100000')
{

nop

}

else
{


nop

}


lågnivå

?????????????????


Det som är problemet är när jag ska ha mer än ett vilkor i en if sats.

om man skulle koda en if sats en if sats med ett vilkor gör jag på föjande sätt antar jag.

if(a=00001111)
{


nop




}

lågnivå





Movf PORTA,W
Sublw B'00001111'
bz
gvs
EF Sponsor
Inlägg: 1688
Blev medlem: 18 oktober 2003, 14:20:34
Ort: Göteborg
Kontakt:

Inlägg av gvs »

Skulle inte något liknande fungera:

Movf PORTA,W
Sublw B'00001111'
bnz , (hoppa till else)
Movf PORTB,W
Sublw B='00110011'
bnz , (hoppa till else)
.
.
.
else......

Ja du fattar säkert. Tanken är att göra två kollar efter och om det inte stämmer efter första så hoppar man ur då.

Reserverar mig för totalt katastrofala fel i min pseudokod.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Helt omöjligt att svara på utan att veta vilken målmiljö det skall vara för !!
Du har med lite PIC assembler, men är det PIC16 eller PIC18 ?
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Sen är det också beroende av hur många val som kan vara aktuella som avgör hur man väljer att göra det.

Är det få val är det enklare o snabbare på 1 sätt, är det många val är overheaden en del större men själva valet blir enklare.
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Det beror också lite på hur värdena ligger fördelade. Ligger alla värden "nära" varandra så kan det vara lättast med en hopptabell. Ligger värdena däremot utspridda så kan isåfall tabellen bli gigantiskt stor.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

När vi ändå är inte på "beror på" frågor... :-)

Den faktiska lösning kan även bero på hur vanliga de olika alternativen är. Man kanske vill optimera det vanligaste valet så att den tar "kortast väg".
Skriv svar