Tabeller

 

Tabeller blir ofte brukt når man skal oversette en tallverdi til en annen og når man skal hoppe til forskjellige

steder i programmet avhengig av en tallverdi i et register, disse kalles oppslagstabell og hopptabell.

Prinsippet med tabeller er at man øker programtelleren med en tallverdi, prosessoren vil hoppe det antall linjer

ned i programmet som tallverdien er.

Det er viktig å legge tabellen i begynnelsen av programmet ( etter initialiseringen ), fordi programtelleren er

delt opp i 2 deler, hvis tabellen ligger i overgangen mellom disse, så vil det skje uforklarlige ting som er vanskelig

å finne årsaken til.

Når programmet startes så går man forbi tabellen med en goto kommando.

Det er også viktig at tallet i w registeret ikke overstiger antall linjer i tabellen.

 

Oppslagstabell

Dette eksemplet gjør om verdien i w registeret til ascii verdi, ascii verdien returneres i w registeret.

Denne tabellen kalles opp med CALL kommandoen ( call tabell )

tabell

addwf

2,1

;adderer verdien i w med programtelleren og legger resultatet i programtelleren

 

retlw

.48

;ascii verdien for 0

 

retlw

.49

;ascii verdien for 1

 

retlw

.50

;ascii verdien for 2

 

retlw

.51

;ascii verdien for 3

 

retlw

.52

;ascii verdien for 4

 

retlw

.53

;ascii verdien for 5

 

retlw

.54

;ascii verdien for 6

 

retlw

.55

;ascii verdien for 7

 

retlw

.56

;ascii verdien for 8

 

retlw

.57

;ascii verdien for 9

 

retlw

.65

;ascii verdien for A

 

retlw

.66

;ascii verdien for B

 

retlw

.67

;ascii verdien for C

 

retlw

.68

;ascii verdien for D

 

retlw

.69

;ascii verdien for E

 

retlw

.70

;ascii verdien for F

 

Hopptabell

Hopptabell brukes hvis man vil hoppe til forskjellige steder i programmet avhengig av hva tallet i w registeret er.

tabell

addwf

2,1

;adderer verdien i w med programtelleren og legger resultatet i programtelleren

 

goto

adder

;går til adder hvis w er 0

 

goto

subtraher

;går til subtraher hvis w er 1

 

goto

divider

;går til divider hvis w er 2

 

goto

multipliser

;går til multipilser hvis w er 3

 

Tilbake