r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[rebcode] Rebcode discussion

Steeve
23-Feb-2007
[2059]
but the instructions which operate directly in memory are rarely 
used, because they consume more time.
BrianH
23-Feb-2007
[2060]
More time than the combination of a load to a register and an add 
from that register?
Steeve
23-Feb-2007
[2061x2]
yes
depending what operations follows , but right the most time
BrianH
23-Feb-2007
[2063]
Wow. It's the same amount of work, in fewer instructions, and it 
takes more time. How does that happen? Microcode?
Steeve
23-Feb-2007
[2064x5]
the reason is that most register operations use one opcode ob one 
byte length
*of one byte length
operation into memory use an opcode of 3 to 6  byte length
so in 1 operation into memory , we can perform several operation 
with registers
*so during 1 operation
BrianH
23-Feb-2007
[2069]
How many bytes in a load from memory? I suppose on the addressing 
mode...
Steeve
23-Feb-2007
[2070]
3
BrianH
23-Feb-2007
[2071]
*it depends on the addressing mode
Steeve
23-Feb-2007
[2072x2]
yep, you're right
3 is the minimum
Steeve
24-Feb-2007
[2074x4]
one for the operation opcode and 2 for the address on 16 bits
but in fact it can be occured in one opcode of  length 1, if the 
adress is already contained in one 16 bit register .
that's mostly the case
so, the correct answer is: 1
BrianH
24-Feb-2007
[2078]
What happens if you EXT8 a value that already has data in the higher 
bytes? I'm guessing it will just overwrite that data...
Steeve
24-Feb-2007
[2079]
wrong
BrianH
24-Feb-2007
[2080x2]
What happens? I don't have rebcode here to test.
I'm going off docs and memory here.
Steeve
24-Feb-2007
[2082x4]
ext8 (128 + 65536) = -128 instead of 128
fooooollll
no it works
ext 128 = -128
BrianH
24-Feb-2007
[2086x3]
I'm thinking that you may be able to efficiently store your 8-bit 
registers in your 16-bit registers and break them out when you need 
them.
Internally, they would really be 32-bit registers, of course.
Is the accumulator internally 8 or 16-bit?
Steeve
24-Feb-2007
[2089x3]
8
it is A
_a in my source
BrianH
24-Feb-2007
[2092]
What do 16-bit arithmetic instructions use for an accumulator?
Steeve
24-Feb-2007
[2093x2]
HL
but most of instructions act on A
BrianH
24-Feb-2007
[2095]
Is 8-bit or 16-bit code more common?
Steeve
24-Feb-2007
[2096x6]
8 bit
because it's more compact and faster
and many operations occur only on 8 bit registers
like rotation operations
and bit manipulations
but the first reason is that 8bit register operations are faster
BrianH
24-Feb-2007
[2102x2]
Well, there is no reason to change that balance - the code expects 
it. 16-bit operations can be sped up using a few tricks if necessary, 
like temporary registers that are used internally. You can even name 
those registers _bc, _de and _hl if you like :)
Do the rotation instructions affect the carry flag?
Steeve
24-Feb-2007
[2104x5]
some of them, it's an option
the carry flag can be injected to the left or to the right
or not
there are 12 different rotations
Z80 is good with rotation