Condition Code flags of 68000
•N(Negative):Set to 1 if the result is negative;
otherwise , cleared to 0
•Z(Zero): Set to 1 if the result is zero;
otherwise , cleared to 0
•V(Overflow): Set to 1 if arithmetic overflow occurs ;
otherwise , cleared to 0
•C(Carry): Set to 1 if a carryout results from the
operation; otherwise , cleared to 0
•X(Extend): It is set in the same way as the C flag,
but is not affected by as many instructions.
Mnemonic
Name

Displacement Size

Operation
Performed

BRA(BranchAlways)

8
16

PC [PC]+disp

Bcc(Branch Conditionally)

8
16

If cc is true, then
PC [PC]+disp

BSR(Branch to subroutine)

8
16

SP
[SP]4;
[SP] [PC];
PC
[PC]+disp

DBcc(Decrement
& Branch Conditionally)

16

If cc is false, then
Dn [Dn]1;
If [dn]=! 1, then
PC [PC]+disp

Logic Instructions:
• The
68000 has several logic instructions that performs logical AND, OR, and XOR
operations as well as instructions that shift and rotate operands in several
different ways.
• Consider
an example, suppose that register D1 contains some 32bit binary pattern, and
we want to determine if the pattern in bit positions b18 through b14 is 11001.
This can be done using the instruction
AND.L #$7C000, D1
CMPI.L
#$64000, D1
BEQ
YES
• The first
instruction performs the logical AND of individual bits of the source and
destination operands, leaving the result in registers D1. The hex number 7C000
has ones in bit positions b18 through b14 and zeros elsewhere. Thus, as a
result of the AND operation, the five bits in position b18 through b14in
register D1 retain their original values and the remaining bits are cleared to
0. The subsequent Compare instruction tests whether these five bits correspond
to the desired pattern.
No comments