![Epson S1C17 Series Скачать руководство пользователя страница 77](http://html.mh-extra.com/html/epson/s1c17-series/s1c17-series_manual_107781077.webp)
7-18
Seiko Epson Corporation
S1C17 CORE MANUAL
(REV. 1.2)
cmc
%rd, %rs
cmc/c %rd, %rs
cmc/nc %rd, %rs
Function
16-bit comparison with carry
Standard)
rd
(15:0) -
rs
(15:0) - C
Extension 1)
rs
(15:0) -
imm13
(zero extended) - C
Extension 2)
rs
(15:0) -
imm16
- C
Code
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 1 1 1 1
r d
1 0 0 1
r s
cmc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 0 1 1 1 1
r d
0 0 0 1
r s
cmc/c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 0 1 1 1 1
r d
0 1 0 1
r s
cmc/nc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Flag
IL IE C V Z N
– –
↔
↔
↔
↔
cmc
|
|
|
| |
– – –
↔
↔
↔
cmc/c
,
cmc/nc
|
|
|
| |
Mode
Src: Register direct
%rs
=
%r0
to
%r7
Dst: Register direct
%rd
=
%r0
to
%r7
CLK
One cycle
Description
(1) Standard
cmc %rd,%rs
; rd - rs - C
Subtracts the contents of the
rs
register and C (carry) flag from the contents of the
rd
register,
and sets or resets the flags (C, V, Z and N) according to the results. The operation is performed
in 16-bit size. It does not change the contents of the
rd
register.
(2) Extension 1
ext imm13
cmc %rd,%rs
; rs - imm13 - C
Subtracts the contents of the 13-bit immediate
imm13
and C (carry) flag from the contents of
the
rs
register, and sets or resets the flags (C, V, Z and N) according to the results. The
imm13
is zero-extended into 16 bits prior to the operation. The operation is performed in 16-bit size. It
does not change the contents of the
rd
and
rs
registers.
*
This combination does not use the
rd
register value for comparison.
(3) Extension 2
ext imm3
;
imm3(2:0) = imm16(15:13)
ext imm13
; = imm16(12:0)
cmc %rd,%rs
; rs - imm16 - C
Subtracts the contents of the 16-bit immediate
imm16
and C (carry) flag from the contents of
the
rs
register, and sets or resets the flags (C, V, Z and N) according to the results. The operation
is performed in 16-bit size. It does not change the contents of the
rd
and
rs
registers.
*
This combination does not use the
rd
register value for comparison.
(4) Conditional execution
The
/c
or
/nc
suffix on the opcode specifies conditional execution.
cmc/c
Executed as
cmc
when the C flag is 1 or executed as
nop
when the flag is 0
cmc/nc
Executed as
cmc
when the C flag is 0 or executed as
nop
when the flag is 1
In this case, the
ext
instruction can be used to extend the operand.
The conditional execution instruction above sets/resets the flags (V, Z and N) according to the
results if it is executed.