Sbc %Rd, %Rs; Sbc/C %Rd, %Rs; Sbc/Nc %Rd, %Rs - Epson S1C17 Series Manual

Cmos 16-bit single chip microcontroller
Hide thumbs Also See for S1C17 Series:
Table of Contents

Advertisement

sbc
%rd, %rs
sbc/c
%rd, %rs

sbc/nc %rd, %rs

Function
16-bit subtraction with borrow
Standard)
Extension 1) rd(15:0) ← rs(15:0) - imm13(zero extended) - C, rd(23:16) ← 0
Extension 2) rd(15:0) ← rs(15:0) - imm16 - C, rd(23:16) ← 0
15 14 13 12 11 10
Code
0
0
1
|
|
0
0
1
|
|
0
0
1
|
|
IL
IE
C
Flag
|
|
– ↔ ↔ ↔ ↔
|
|
– ↔ ↔ ↔
Mode
Src: Register direct %rs = %r0 to %r7
Dst: Register direct %rd = %r0 to %r7
CLK
One cycle
Description
(1) Standard
sbc
The content of the rs register and C (carry) flag are subtracted from the rd register. The
operation is performed in 16-bit size, and bits 23–16 of the rd register are set to 0.
(2) Extension 1
ext
sbc
The 13-bit immediate imm13 and C (carry) flag are subtracted from the rs register after being
zero-extended, and the result is loaded into the rd register. The operation is performed in 16-bit
size, and bits 23–16 of the rd register are set to 0. The content of the rs register is not altered.
(3) Extension 2
ext
ext
sbc
The 16-bit immediate imm16 and C (carry) flag are subtracted from the rs register, and the
result is loaded into the rd register. The operation is performed in 16-bit size, and bits 23–16 of
the rd register are set to 0. The content of the rs register is not altered.
(4) Conditional execution
The /c or /nc suffix on the opcode specifies conditional execution.
sbc/c
sbc/nc Executed as sbc 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.
(5) Delayed slot instruction
This instruction may be executed as a delayed slot instruction by writing it directly after
a branch instruction with the "d" bit. In this case, extension of the immediate by the ext
instruction cannot be performed.
Example
(1) sbc
(2) Subtraction of 32-bit data
data 1 = {r2, r1}, data2 = {r4, r3}, result = {r2, r1}
sub
sbc
S1C17 CORE MANUAL
(Rev. 1.2)
rd(15:0) ← rd(15:0) - rs(15:0) - C, rd(23:16) ← 0
9
8
7
6
|
|
1
1
0
r d
1
|
|
|
|
|
|
|
1
1
0
0
r d
|
|
|
|
|
|
|
1
1
0
r d
0
|
|
|
|
|
V
Z
N
|
|
|
sbc
|
|
|
sbc/c, sbc/nc
; rd ← rd - rs - C
%rd,%rs
imm13
; rd ← rs - imm13 - C
%rd,%rs
imm3
; imm3(2:0) = imm16(15:13)
imm13
; = imm16(12:0)
; rd ← rs - imm16 - C
%rd,%rs
Executed as sbc when the C flag is 1 or executed as nop when the flag is 0
%r0,%r1
; r0 = r0 - r1 - C
%r1,%r3
; Subtraction of the low-order word
%r2,%r4
; Subtraction of the high-order word
Seiko Epson Corporation
5
4
3
2
1
0
|
0
1
1
r s
|
|
|
|
|
|
0
1
1
r s
|
|
|
|
|
|
1
1
1
r s
|
|
|
|
|
7 DETAILS OF INSTRUCTIONS
sbc
sbc/c
sbc/nc
7-119

Advertisement

Table of Contents
loading

Table of Contents