Aritmetiske Operatorer

Thu 31 December 2009

Aritmetiske Operatorer.

Increment/Decrement (Også kjent som ++ og -- i t.d java):


{codecitation class="brush: plain; gutter: true;"}
inc ax ; Legg til ein til innholdet i ax registeret
dec ax ; Trekk frå ein frå innholdet i ax registeret
inc variabel_navn ; Legg til ein til verdien av varabel_navn
dec b[bx] ; Trekk frå ein frå den byte som bx registeret peikar på

Merk at inc/dec er tar kortare tid en evt plus/minus 1 operasjon

Basis aritmetik operatorar:


{codecitation class="brush: plain; gutter: true;"}
add ax, bx ; Legg sammen bx med ax og lagrar i ax
sub bx, ax ; Trekk ax frå bx og lagrar i bx

mul bl ; Gangar dl og al, resultatet havnar i ax
mul ch ; Gangar ch og al, resultat havnar i ax
mul num ; Gangar variablen num og al, resultat havnar i ax


div bl ; Delar ax med verdien i bl. Resultat i al, rest i ah
div ch ; Delar ax med verdien i ch. Resultat i al, rest i ah
div num ; Delar ax med variablen num. Resultat i al, rest i ah


Bit skifte operatorar:

Dette er operatorar som teke den binære representasjonen av en verdi og flyttar bitane
til venstre eller høgre.
Ved et venstre skift vert en 0 lagt til på høgre sida av verdien og talet
lengst til venstre vert fjerna. Dette er en effektiv måte å gange talet med 2 på, og er en veldig
rask operasjon.
Et høgre skift vert gjennomført omvendt og delar talet på 2.
Skift operatorane tek to parametera, dataene som skal skiftast og mengden/antallet dataene
skal skiftast. Den andre parameteren er enten et literært nummer/tall eller cl registeret.


{codecitation class="brush: plain; gutter: true;"}
shl ax, 2 ; Gangar ax med 4 (2^2)
shr bl, 1 ; Delar bl med 2 (2^1)
shl ch, 3 ; Gangar ch med 8 (2^3)
shr dx, cl ; Delar dx med 2^verdien_som_er_i_cl_registeret

shr dl, 4 ; "Resettar" dei nederste...
shl dl, 4 ; ...4 bitane i dl registeret

Tagged as : prolog assembler