コントロール・レジスタの書き込み コントロール・レジスタの書き込み コントロール・レジスタの書き込み コントロール・レジスタの書き込み
処理 処理 処理
処理: CTLk← RA アセンブラの構文
アセンブラの構文 アセンブラの構文
アセンブラの構文: WRCTL %rA 例例
例例: 前に前に前に前に PFX がないがないがないがない:
WRCTL %g7 ; STATUS レジスタに %g7 を書き込み NOP ;必須
前に 前に 前に
前に PFX があるがあるがあるがある: PFX 1
WRCTL %g7 ; ISTATUS レジスタに %g7 を書き込み 説明
説明 説明
説明: 前に前に前に前に PFX がないがないがないがない:
RA の値を STATUS レジスタにロードします。 STATUS へ WRCTL を行なった 場合は、次の命令をNOP にする必要があります。
前に前に
前に前に PFX があるがあるがあるがある:
K で指定するマシン・コントロール・レジスタに RA の値を書き込みます。マ シン・コントロール・レジスタとそのインデックスについては、プログラマの モデルを参照してください。
条件コード 条件コード 条件コード
条件コード: WRCTL のターゲットが STATUS レジスタである場合、条件コード・フラグは、
ビット RA [3..0] からの WRCTL 処理によって直接的に設定されます。他の WRCTL ターゲット・レジスタの場合、条件コードに影響がありません。
命令のフォーマット 命令のフォーマット 命令のフォーマット
命令のフォーマット: Rw 命令フィールド
命令フィールド 命令フィールド
命令フィールド: A = オペランド RA のレジスタ・インデックス
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 1 1 1 1 1 1 1 0 0 0 A
2
命命命命令 令令令 セセセセッ ッッット トトト
XOR
ビットごとの排他的論理和
ビットごとの排他的論理和 ビットごとの排他的論理和 ビットごとの排他的論理和
処理 処理 処理
処理: 前に前に前に前に PFX がないがないがないがない: RA← RA⊕ ΡΒ 前に
前に 前に
前に PFX があるがあるがあるがある:
RA← RA⊕ (0x00.00 : K : IMM5) アセンブラの構文
アセンブラの構文 アセンブラの構文
アセンブラの構文: 前に前に前に前に PFX がないがないがないがない: XOR %rA,%rB 前に前に
前に前に PFX があるがあるがあるがある: PFX %hi(const) XOR %rA,%lo(const) 例
例 例
例: 前に前に前に前に PFX がないがないがないがない:
XOR %g0,%g1 ; %g1 と %g0 の XOR 前に
前に 前に
前に PFX があるがあるがあるがある: PFX %hi(16383)
XOR %o0,%lo(16383) ; %o0 と 16383 の XOR 説明
説明 説明
説明: 前に前に前に前に PFX がないがないがないがない:
RA の個々のビットと RB の対応するビットで排他的な論理和を行ない、結果を RA に格納します。
前に前に
前に前に PFX があるがあるがあるがある:
プリフィックスがあった場合、K レジスタ (11 ビット) の内容と IMM5 (5 ビッ
ト) を連結した即値の定数で、RB オペランドが置換されます。 この 16 ビット
値は 32 ビットにゼロ拡張され、ビットごとに RA との排他的論理和が行なわれ ます。この結果は RA に書き込まれます。
条件コード 条件コード 条件コード
条件コード: フラグ:
N: 結果ビット 31
Z: 結果がゼロの場合に設定、それ以外の場合はクリア 命令のフォーマット
命令のフォーマット 命令のフォーマット
命令のフォーマット: RR、Ri5 命令フィールド
命令フィールド 命令フィールド
命令フィールド: A = オペランド RA のレジスタ・インデックス B = オペランド RB のレジスタ・インデックス IMM5 = 5 ビットの即値
PFX (RR) が前にない場合
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 1 0 0 0 1 B A
PFX (Ri5) が前にある場合
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 1 0 0 0 1 IMM5 A
N V Z C
∆ - ∆
-索引 索引 索引 索引
®
索索索索引 引引引
3
Numerics
16 ビット値の符号拡張 77
16 ビット・データをメモリに格納 (
算出した
ハーフ・ワード・ポインタ・アドレス
) 8516 ビット・データをメモリに格納 (
スタック・
アドレッシング・モード
) 9116 ビット・データをメモリに格納 (
静的ハー
フ・ワード・オフセット・アドレス
) 86 32 ビット・データをメモリに格納 8432 ビット・データをメモリに格納 (
スタック・
アドレッシング・モード
) 9032 ビット・データをメモリに格納 (
ポインタ・
アドレッシング・モード
) 89 5/16 ビットの即値 128 ビット値の符号拡張 78
8 ビット・データをメモリに格納 (
算出したバ
イト・ポインタ・アドレス
) 878 ビット・データをメモリに格納 (
スタック・
アドレッシング・モード
) 928 ビット・データをメモリに格納 (
静的バイ
ト・オフセット・アドレス
) 88 AABS 命令 36 ADD 命令 37 ADDI 命令 38 AND 命令 39 ANDN 命令 40 ASR 命令 41 ASRI 命令 42 B
BGEN 命令 43 BR 命令 44 BSR 命令 45 C
CALL 命令 46 CLR_IE(%ctl8) 8 CMP 命令 47
CMPI 命令 48 CWP 操作の命令 26 E
EXT16D 命令 49 EXT16S 命令 50 EXT8D 命令 51 EXT8S 命令 52 F
FILL16 命令 53 FILL8 命令 54 G
GNU コンパイラ/
アセンブラ擬似命令 34
I
ISTATUS (%ctl1) 7 J
JMP 命令 55 K
K レジスタ 5 L
LD 命令 56 LDP 命令 57 LDS 命令 58 LSL 命令 59 LSLI 命令 60 LSR 命令 61 LSRI 命令 62 M
MOV 命令 63 MOVHI 命令 64 MOVI 命令 65 MSTEP 命令 66 MULL 命令 67
N
NEG 命令 68 Nios CPU の概要 1 Nios CPU ブロック図 25 NOT 命令 69
O
OR 命令 70 P
PFX 命令 71 R
RDCTL 命令 72 RESTORE 命令 73 RLC 命令 74 RRC 命令 75 S
SAVE 命令 76 SET_IE (%ctl9) 8 SEXT16 命令 77 SEXT8 命令 78 SKP0 命令 79 SKP1 命令 80 SKPRnz 命令 81 SKPRz 命令 82 SKPS 命令 83 ST 命令 84 ST16d 命令 85 ST16s 命令 86 ST8d 命令 87 ST8s 命令 88 STP 命令 89 STS 命令 90 STS16s 命令 91 STS8s 命令 92 SUB 命令 93 SUBI 命令 94 SWAP 命令 95 T
TRAP 命令 96 TRET 命令 97 W
WRCTL 命令 98 WVALID (%ctl2) 7
X
XOR 命令 99