Partyflock
 
Forumonderwerp · 645520
Opdracht 10 lookup table
Schrijf en test een assembly programma dat de waarde voor y berekent. Voor y geldt:
y = x2 + 2x + 9. Verder geldt:
· 0 <= x <= 9
· de waarden van x2 bevinden zich in een lookup table vanaf adres 0x200 in codememory
· R0 bevat de actuele waarde van x
· R2 bevat na executie de waarde van y.
Gebruik de simulator om de waarde van x te veranderen
Single-step door je programma en verifieer de juiste werking.


ik kom er echt niet uit gewoon..vrij pittig dat assembler programmeren :/
 
whoei dat is nog eens een idee !!

ik ga me huiswerk er ook opzetten
Alles laten maken door fanatieke gastjes
is alleen de laatste en moeilijkste opgave van de 10 :yes:

wie weet loopt er hier wel een slimmerik rond :)
Artiest {SHOWLIST artist 45822, 30830}
je moet alleen ff op een papiertje ofzo de formule uitvogelen... het programmeren is dan 5 minuten werk
de formule staat toch al gegeven ? y = x2 + 2x + 9 waarbij 0 <= x <= 9
nou, kun je t dus intypen :9
%r0, %r2 ? sparc asm ofzo?
Ik ben niet zo'n ASM guru, moet nog steeds mijn practicum maken (eerstejaars :S), maar heb wel wat tips, want zo moeilijk is dit volgens mij toch echt niet.

ADD ed. kan je geowon voor het optellen gebruiken. Om maal 2 te vermenigvuldigen is het het makkelijkste een left bit shift (1 positie) te doen (makkelijk he, binair werken :)). Die waarde sla je gewoon tijdelijk in een register op, vervolgens tel je de andere 2 waarden er bij op.

Details kan ik je echter niet vertellen, misschien over 3 maand.
ok : het antwoord met wat hulp van klasgenoten :)
using 0
cseg at 0

Start: MOV R0,#9
MOV A,R0
ADD A,R0
ADD A,#9
MOV R1,A

MOV A,R0
CALL Look_up
ADD A,R1
MOV R2,A

Ready:
AJMP Ready

Look_up:
INC A
MOVC A, @A + PC
RET
DB 0
DB 1
DB 4
DB 9
DB 16
DB 25
DB 36
DB 49
DB 64
DB 81
end
waar is dit eigelijk voor?

Dit lijkt me geen intel assembly. (of het is een of andere hele rare syntax :)
8051 processor, is al een oud beestje maar wel een intel volgens mij ;) is voor een klein pc-bord op school hier, wat LED-jes aansturen enzo
ah ok :)

indd wel van intel, maar ik bedoelde met 'intel assembly', de standaard intel x86 asm :)
 
op de universiteit twente deden we toen assembler onder linux, veel handiger om te leren... veel meer mogelijkheden, en niet zo beperkt...
Wat heeft linux er mee te maken hoe jij je assembly leert? :S
nahjah opzich verschillende de instructies dan wel niet, er zijn natuurlijk wel verschillen. (manier van syscalls, memory layout, etc.)

afaik kan je onder windows alleen maar gebruik maken van functies die in je shared memory (of text segment) zitten en kan je dus geen directe syscalls doen (dat protected mode), zoals dat wel onder andere operation systemen kan. (wat imho veel makkelijker is.)