Difference between revisions of "PM Opc ADD16"
From SublabWiki
m |
m (→Examples) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== ADD = Addition (16-Bits) == | == ADD = Addition (16-Bits) == | ||
− | {| border="1" style="text-align:left" | + | {| border="1" style="text-align:left" class="sortable" |
!Hex | !Hex | ||
!Mnemonic | !Mnemonic | ||
Line 111: | Line 111: | ||
Overflow: Set when result overflow 16-bits signed range (< -32768 OR > 32767) | Overflow: Set when result overflow 16-bits signed range (< -32768 OR > 32767) | ||
− | Sign: Set when | + | Sign: Set when bit 15 of the result is 1 |
=== Examples === | === Examples === | ||
; BA = 0x0EF0 | ; BA = 0x0EF0 | ||
− | 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 | ||
; BA = 0xCF12 | ; BA = 0xCF12 | ||
− | ADD BA, HL | + | '''ADD BA, HL''' |
; 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 | ||
; BA = 0xDEAD | ; BA = 0xDEAD | ||
− | ADD BA, X | + | '''ADD BA, X''' |
; 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''']] |
Latest revision as of 00:14, 21 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)