11: Smalamál - stýring Flashcards
CF
Geymt merki (Carry Flag)
ef geymt/lánað út úr efsta bita (yfirflæði án formerkis)
ZF
Núll merki (Zero Flag)
ef t == 0
SF
Formerkis merki (Sign Flag)
ef t < 0 (sem tvíandhverfu tala)
OF
Yfirflæðismerki (Overflow Flag)
ef tvíandhverfu (formerkis) yfirflæði
Afhverju ekki stillt af leaq skipun ?
Er ekki eiginleg reikniskipun,
þess vegna ekki settir stýrikóðar
Hvenær notum við cmp (compare) ?
Notum þessa aðferð
til að kanna mun á
tveimur gildum
Virkar eins og frádráttur nema framkvæmir ekki frádráttinn
Hvenær notum við test ?
Notum þessa aðferð
til að athuga hvort 0
eða einhver biti settur
testq b,a eins og að reikna a&b án skilagildis
testq b,a
testq b,a eins og að reikna a&b án skilagildis
cmpq b,a
cmpq b,a eins og að reikna a-b án skilagildis
Hvernig lesum við gildi stýrikóða
Lesum gildi stýrikóða með skipuninni set
Stökk (jumping)
jX skipanir
Algengari notkun á
stýrikóðum en set
Stökkva yfir í annan hluta forrits, byggt á gildum stýrikóða
Óbeinn lestur á stýrikóðum
jmp
óskilyrt hopp, alltaf hoppa
Útfærsla með skilyrtum flutningum
Þegar við erum með einfalda útreikninga, til að sleppa við hoppið því hoppið er dýrt, notum ekki ef við erum með mikla og flókna útreikninga
xorq %rax, %rax
núllstillir gistið, ódýrara en að setja 0 inn í
subq $1, %rax
Dreg 1 af rax