CMP op1, op2
其中:
op1 |
包含第一個運算元的暫存器 (R0..R15) |
op2 |
包含第二個運算元的暫存器 (R0..R15) |
此格式的 CMP 指令從 op1 減去 op2,並更新條件標誌。至少一個運算元必須包含在高位暫存器中。這樣便能有效比較 op1 與 op2 包含的值。根據產生的條件標誌值,會執行一些後續的指令。
如果 H1 ^ H2 == 0,則結果將會無法預知
無運算元。
N |
Z |
C |
V |
Q |
S |
I |
F |
T |
M |
M |
M |
M |
|
|
|
|
|
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
|
3 |
2 |
|
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
H1 |
H2 |
op2 |
op1 |
1 ;@.text
2 ;@.globl funcmp
3 ;@.align 0
4 ;
5 AREA example,CODE,READONLY
6 CODE16
7
8 label1
9 ; Compare contents of R11 and R9
10 ; Does R11-R9, and ignores result
11 ; Set Condition Codes
12 ; Branch to new label if equal
13 00000000 F7C1 MOV R1, #Ox7B
14 00000002 468B MOV R11, R1
15 00000004 4689 MOV R9, R1
16 00000006 42CB CMP R11, R9
17 00000008 D000 BEQ label2