Difference between revisions of "PM Opc ADD16"

From SublabWiki
Jump to: navigation, search
m (Sortable list)
m (Examples)
Line 118: Line 118:
 
  ADD BA, $1337
 
  ADD BA, $1337
 
  ; BA = 0x2227 (0x0EF0 + 0x1337 = 0x(0)2227)
 
  ; BA = 0x2227 (0x0EF0 + 0x1337 = 0x(0)2227)
  ; F = (Zero = 0):(Carry = 0):(Overflow=0):(Sign=0)
+
  ; F = (Zero=0):(Carry=0):(Overflow=0):(Sign=0)
  
 
  ; HL = 0xBB7E
 
  ; HL = 0xBB7E
Line 125: Line 125:
 
  ; HL = 0xBB7E
 
  ; HL = 0xBB7E
 
  ; BA = 0x8A90 (0xCF12 + 0xBB7E = 0x(1)8A90)
 
  ; BA = 0x8A90 (0xCF12 + 0xBB7E = 0x(1)8A90)
  ; F = (Zero = 0):(Carry = 1):(Overflow=0):(Sign=1)
+
  ; F = (Zero=0):(Carry=1):(Overflow=0):(Sign=1)
  
 
  ; X = 0xBEEF
 
  ; X = 0xBEEF
Line 132: Line 132:
 
  ; X = 0xBEEF
 
  ; X = 0xBEEF
 
  ; BA = 0x9D9C (0xDEAD + 0xBEEF = 0x(1)9D9C)
 
  ; BA = 0x9D9C (0xDEAD + 0xBEEF = 0x(1)9D9C)
  ; F = (Zero = 0):(Carry = 1):(Overflow=1):(Sign=0)
+
  ; F = (Zero=0):(Carry=1):(Overflow=1):(Sign=0)
  
 
[[PM_InstructionList|'''« Back to Instruction set''']]
 
[[PM_InstructionList|'''« Back to Instruction set''']]

Revision as of 02:54, 19 April 2009

ADD = Addition (16-Bits)

Hex Mnemonic Cycles
C0 nn nn ADD BA, #nnnn 12
C1 nn nn ADD HL, #nnnn 12
C2 nn nn ADD X, #nnnn 12
C3 nn nn ADD Y, #nnnn 12
CF 68 nn nn ADD SP, #nnnn 16
CF 00 ADD BA, BA 16
CF 01 ADD BA, HL 16
CF 02 ADD BA, X 16
CF 03 ADD BA, Y 16
CF 20 ADD HL, BA 16
CF 21 ADD HL, HL 16
CF 22 ADD HL, X 16
CF 23 ADD HL, Y 16
CF 40 ADD X, BA 16
CF 41 ADD X, HL 16
CF 42 ADD Y, BA 16
CF 43 ADD Y, HL 16
CF 44 ADD SP, BA 16
CF 45 ADD SP, HL 16

Execute

#nnnn    = Immediate unsigned 16-Bits
BA       = Register BA: (B shl 8) or A
HL       = Register HL: (H shl 8) or L
X        = Register X
Y        = Register Y
SP       = Register SP (Stack Pointer)
; ADD Ds, Sc
;
; Ds = Destination
; Sc = Source

Ds = Ds + Sc

Description

16-Bits Source adds to the 16-Bits Destination.

Conditions

Zero: Set when result is 0

Carry: Set when result is >= 65536

Overflow: Set when result overflow 16-bits signed range (< -32768 OR > 32767)

Sign: Set when bit 15 of the result is 1

Examples

; BA = 0x0EF0
ADD BA, $1337
; BA = 0x2227 (0x0EF0 + 0x1337 = 0x(0)2227)
; F = (Zero=0):(Carry=0):(Overflow=0):(Sign=0)
; HL = 0xBB7E
; BA = 0xCF12
ADD BA, HL
; HL = 0xBB7E
; BA = 0x8A90 (0xCF12 + 0xBB7E = 0x(1)8A90)
; F = (Zero=0):(Carry=1):(Overflow=0):(Sign=1)
; X = 0xBEEF
; BA = 0xDEAD
ADD BA, X
; X = 0xBEEF
; BA = 0x9D9C (0xDEAD + 0xBEEF = 0x(1)9D9C)
; F = (Zero=0):(Carry=1):(Overflow=1):(Sign=0)

« Back to Instruction set