EasyManua.ls Logo

Rabbit 2000 - How to Do It in Assembly Language-Tips and Tricks; Zero HL in 4 Clocks; Exchanges Not Directly Implemented; Manipulation of Boolean Variables

Rabbit 2000
230 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
User’s Manual 31
3.4 How to Do It in Assembly Language—Tips and Tricks
3.4.1 Zero HL in 4 Clocks
BOOL HL ; 2 clocks, clears carry, HL is 1 or 0
RR HL ; 2 clocks, 4 total - get rid of possible 1
This sequence requires four clocks compared to six clocks for LD HL,0.
3.4.2 Exchanges Not Directly Implemented
HL<->HL' - eight clocks
EX DE',HL ; 2 clocks
EX DE',HL' ; 4 clocks
EX DE',HL ; 2 clocks, 8 total
DE<->DE' - six clocks
EX DE',HL ; 2 clocks
EX DE,HL ; 2 clocks
EX DE',HL ; 2 clocks, 6 total
BC<->BC' - 12 clocks
EX DE',HL ; 2 clocks
EX DE,HL' ; 4
EX DE,HL ; 2
EXX ; 2
EX DE,HL ; 2
Move between IX, IY and DE, DE'
IX/IY->DE / DE->IX/IY
;IX, IX --> DE
EX DE,HL
LD HL,IX/IY / LD IX/IY,HL
EX DE,HL ; 8 clocks total
; DE --> IX/ IY
EX DE,HL
LD IX/IY,HL
EX DE,HL ; 8 clocks total
3.4.3 Manipulation of Boolean Variables
Logical operations involving HL when HL is a logical variable with a value of 1 or 0—
this is important for the C language where the least bit of a 16-bit integer is used to repre-
sent a logical result
Logical not operator—invert bit 0 of HL in four clocks (also works for IX, IY in eight
clocks)
DEC HL ; 1 goes to zero, zero goes to -1
BOOL HL ; -1 to 1, zero to zero. 4 clocks total
Logical xor operator—xor HL,DE when HL/DE are 1 or 0.
ADD HL,DE
RES 1,l ; 6 clocks total, clear bit 1 result of if 1+1=2

Table of Contents

Other manuals for Rabbit 2000