Re: A89: Line 1111 Emulator


[Prev][Next][Index][Thread]

Re: A89: Line 1111 Emulator




I have no idea whether it's faster, but it is, I think, at least two bytes
shorter since <lea 10(a7),a7> uses relative addressing over absolute.
Also, <lea 10(a7),a7> _isn't_ reading any memory; a7 is in parenthesis, but
the lea makes the operand an address register and then ten is added to that
(a7+10, not (a7)+10).



>
>Wouldn't add.l 10, a7 be faster then doing it with lea?
>Generally, (at least on the Intel processors),  adding an immediate to a
>register is faster than setting a memory address to a register.
>
>Daniel Imfeld
>
>In a message dated 12/28/1998 8:54:16 PM Pacific Standard Time,
>oh@hem.passagen.se writes:
>
>> 10(a7) points to the address stored in a7 added with 10. that is what a
>>  number outside a parthesis means..
>>  so
>>
>>  lea 10(a7),a7
>>
>>  is calculating this address and stores it in a7, in this case it is
>>  identical to add.l #10,a7
>>  another example...
>>  lets say you have an address stored in a0.. the address is $4c00.
>>  you want to access a byte stored 12 bytes away from a0, then you write
>this:
>>
>>  move.b 12(a0),d0
>>
>>  this will put the byte stored at $4c0c into d0..
>>  you can also do like this,
>>
>>  move.b 2(a0,d1),d0
>>
>>  if you have 10 in d1, you will access the same byte again..
>>  hope this helps..
>>
>>  //Olle
>>  btw..  get yourself a Programmers Reference from Motorola, and look
stuff
>>  like this up by yourself..   or read Jimmy Mårdells file..
>>
>


Follow-Ups: