A83: Just Curious...


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

A83: Just Curious...




I was playing around the other day and I was thinking about how a byte
is added to another byte, and I wrote some z80 code that used bit-level
commands to add a byte to another (Basically, doesn't use add). I got to
trying to figure out subtracting and I got stumped... This really as no
point, but I was just wondering how a subtraction is performed. And,
don't bother telling me how "unoptimized" it is and I don't need some
smart-ass to say, "Why don't you just say 'add a,b'?"!

 ld a,1
 ld b,1
AddAtoB:
 push bc
 push af
 xor b		;XOR A and B
 pop de
 pop bc
 push af
 push de
 pop af
 and b		;AND A and B
 rs		;RS (AND A and B)
 pop bc		;    |
 or b		;OR -/ and B
 ret		;A = A + B

-- 
Scott "_Wrath_" Dial
homosapian@geocities.com
ICQ#3608935
http://www.geocities.com/~homosapian/


Follow-Ups: