Specs ][ [DPC] rc5-72 stats ][ 7758 3D Marks 2001 compare url
Heb je zelf al geprobeerd wat het verschil is? De tweede instructie syntax ken ik niet, tenzij het een vermomde mov r0,#10 gaat.
Ik heb inmiddels een geniale optie in mn ontwikkelomgeving ontdekt: simulate
en ik ben er al uit
tnx anyway
en ik ben er al uit
tnx anyway
Specs ][ [DPC] rc5-72 stats ][ 7758 3D Marks 2001 compare url
Misschien is het handig als je nu ook nog even vertelt wat het verschil was, dan heeft dit topic tenminste in de search nog nut.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
hehe
beide sintaxis zijn fout
enige juiste bij een LDR is:
beide sintaxis zijn fout
enige juiste bij een LDR is:
- LDR R0,=10 @laad het getal 10 in r0
- ADD R0,R1,#4 @ tel 4 bij R1 op en zet her resultaat in R0
Specs ][ [DPC] rc5-72 stats ][ 7758 3D Marks 2001 compare url
Hmm, ik gebruik deze syntax nooit maar is inderdaad wel makkelijk. ldr r0,= kan je niet alleen gebruiken om een absolute getal te laden (wat gewoon een mov r0,#x is), maar ook om een pointer naar een label te creëeren (wat dan vertaalt wordt naar add/sub r0,pc,#x).
Vroeger (
) kon je voor de laatste methode alleen adr r0,label gebruiken. Ik denk dat ik hier maar toch bij blijf 
Overigens doet ldr r0,label niets anders dan de waarde at address label in r0 te laden (wordt vertaalt als ldr r0,[pc,#x].
Vroeger (
Overigens doet ldr r0,label niets anders dan de waarde at address label in r0 te laden (wordt vertaalt als ldr r0,[pc,#x].
Volgens mij moet je om een pointer naar een label te maken
ldr r0,=label
gebruiken.
ldr r(x),=(value)
is volgens mij de juiste syntax
ldr r0,=label
gebruiken.
ldr r(x),=(value)
is volgens mij de juiste syntax
Specs ][ [DPC] rc5-72 stats ][ 7758 3D Marks 2001 compare url
Laten we voorop stellen dat deze syntaxes pseudo opcodes zijn en min of meer door de assembler bepaald worden. Het zijn in ieder geval geen 'officiele' ARM opcodes, ldr r0,label and adr r0,label zijn dat bevoorbeeld wel.
Ik weet niet welke assembler je gebruikt, maar in GNU Assembler staat het volgende:
Ik weet niet welke assembler je gebruikt, maar in GNU Assembler staat het volgende:
Mijn uitleg in de vorige post was dus verkeerdldr <register> , = <expression>
If expression evaluates to a numeric constant then a MOV or MVN instruction
will be used in place of the LDR instruction, if the constant can be generated
by either of these instructions. Otherwise the constant will be placed into the
nearest literal pool (if it not already there) and a PC relative LDR instruction
will be generated.
edit:
Wat jij dus eigenlijk ook zegt, alleen kende ik de ldr r0,=(label) niet
Wat jij dus eigenlijk ook zegt, alleen kende ik de ldr r0,=(label) niet
[ Voor 8% gewijzigd door JoetjeF op 16-06-2005 10:55 ]
Pagina: 1