hejhejhe 3
Postad: 20 maj 15:06

Assamblerkod

Hej vi har en labb om några dagar där vi ska följa ett flödesschema och utgå från en källkodsfil i vilken de funktioner vi behöver för att skriva till LCDn redan finns färdiga.  Vi har lagt till Main-funktion i assemblerkoden men det är något som är fel i vår kod. Vi har försökt hitta felet men lyckas inte. Här är vår kod: 

Laguna Online 29599
Postad: 20 maj 15:14

Vad är det som blir fel?

hejhejhe 3
Postad: 20 maj 15:20

Detta är flödesschemat: 

vi använder oss av två kort som ser ut som bilden nedan:

image0.jpeg

här ska vi enligt instruktionerna skriva ett "a" och detta ska visas på båda korten som är kopplade till varandra. Vi kan inte skriva något alls på raden så det är nog något fel i vår kod. 

Laguna Online 29599
Postad: 20 maj 15:38

De senaste bilderna syns inte.

Kan ni se var programmet exekverar, och värden på register och så? Har ni en simulator eller riktig hårdvara?

hejhejhe 3
Postad: 20 maj 15:41

Här är bilderna. Vi använder oss av command prompt

Laguna Online 29599
Postad: 20 maj 17:05

Jag föreslår att du gör ett minimalt program, som bara skriver ut ett a.

Först behöver du hand om felen som din assembler skriver ut. Så länge den gnäller är det knappt någon idé att testköra. Därför är Lagunas förslag om ett minimalt program utmärkt. Sedan kan man bygga vidare när man har någonting över huvud taget som fungerar.

"Unknown register 97" får mig direkt att höja på ögonbrynen. 97 ser inte ut som ett register och är dessutom ASCII-värdet för 'a'.

Eftersom din kod är en stor bild är det inte så lätt att räkna rader, men jag hittar den här som ser mycket misstänkt ut:

mov r4,'a'

Jag gissar du vill stoppa in ett 'a' i register r4. Det är dock inte var instruktionen gör enligt dokumentationen:

mov - move register to register

mov rC, rA
Moves the contents of rA to rC.

Du får leta upp en annan instruktion som petar in 'a' i r4. Jag kan inte den här arkitekturen med en load-instruktion eller en variant av mov måste finnas.

Svara Avbryt
Close