projects
/
YACASL2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
exec.cの実行ルーチンを関数ポインタでの記述に変更し、整理
[YACASL2.git]
/
include
/
exec.h
diff --git
a/include/exec.h
b/include/exec.h
index
575f73e
..
171b188
100644
(file)
--- a/
include/exec.h
+++ b/
include/exec.h
@@
-44,145
+44,207
@@
bool loadassemble(char *file);
void reset();
/**
void reset();
/**
- * NOP命令
+ * NOP命令
。語長1(OPのみ)
*/
*/
-void nop(
const WORD r, const WORD adr
);
+void nop();
/**
/**
- * LD命令
+ * LD命令
- オペランドr,adr,x。語長2
*/
*/
-void ld
(const WORD r, const WORD adr
);
+void ld
_r_adr_x(
);
/**
/**
- *
ST命令
+ *
LD命令 - オペランドr1,r2。語長1
*/
*/
-void
st(const WORD r, const WORD adr
);
+void
ld_r1_r2(
);
/**
/**
- *
LAD命令
+ *
ST命令。語長2
*/
*/
-void
lad(const WORD r, const WORD adr
);
+void
st(
);
/**
/**
- *
ADDA命令
+ *
LAD命令。語長2
*/
*/
-void
adda(const WORD r, const WORD adr
);
+void
lad(
);
/**
/**
- *
SUBA命令
+ *
ADDA命令 - オペランドr,adr,x。語長2
*/
*/
-void
suba(const WORD r, const WORD adr
);
+void
adda_r_adr_x(
);
/**
/**
- * ADD
L命令
+ * ADD
A命令 - オペランドr1,r2。語長1
*/
*/
-void add
l(const WORD r, const WORD adr
);
+void add
a_r1_r2(
);
/**
/**
- * SUB
L命令
+ * SUB
A命令 - オペランドr,adr,x。語長2
*/
*/
-void sub
l(const WORD r, const WORD adr
);
+void sub
a_r_adr_x(
);
/**
/**
- *
AND命令
+ *
SUBA命令 - オペランドr1,r2。語長1
*/
*/
-void
and(const WORD r, const WORD adr
);
+void
suba_r1_r2(
);
/**
/**
- *
OR命令
+ *
ADDL命令のテンプレート
*/
*/
-void
or(const WORD r, const WORD adr
);
+void
addl(const WORD r, const WORD val
);
/**
/**
- *
XOR命令
+ *
ADDL命令 - オペランドr,adr,x。語長2
*/
*/
-void
xor(const WORD r, const WORD adr
);
+void
addl_r_adr_x(
);
/**
/**
- *
CPA命令
+ *
ADDL命令 - オペランドr1,r2。語長1
*/
*/
-void
cpa(const WORD r, const WORD adr
);
+void
addl_r1_r2(
);
/**
/**
- *
CPL命令
+ *
SUBL命令 - オペランドr,adr,x。語長2
*/
*/
-void
cpl(const WORD r, const WORD adr
);
+void
subl_r_adr_x(
);
/**
/**
- * S
LA命令
+ * S
UBL命令 - オペランドr1,r2。語長1
*/
*/
-void s
la(const WORD r, const WORD adr
);
+void s
ubl_r1_r2(
);
/**
/**
- *
SRA命令
+ *
AND命令 - オペランドr,adr,x。語長2
*/
*/
-void
sra(const WORD r, const WORD adr
);
+void
and_r_adr_x(
);
/**
/**
- *
SLL命令
+ *
AND命令 - オペランドr1,r2。語長1
*/
*/
-void
sll(const WORD r, const WORD adr
);
+void
and_r1_r2(
);
/**
/**
- *
SRL命令
+ *
OR命令 - オペランドr,adr,x。語長2
*/
*/
-void
srl(const WORD r, const WORD adr
);
+void
or_r_adr_x(
);
/**
/**
- *
JMI命令
+ *
OR命令 - オペランドr1,r2。語長1
*/
*/
-void
jmi(const WORD r, const WORD adr
);
+void
or_r1_r2(
);
/**
/**
- *
JNZ命令
+ *
XOR命令 - オペランドr,adr,x。語長2
*/
*/
-void
jnz(const WORD r, const WORD adr
);
+void
xor_r_adr_x(
);
/**
/**
- *
JZE命令
+ *
XOR命令 - オペランドr1,r2。語長1
*/
*/
-void
jze(const WORD r, const WORD adr
);
+void
xor_r1_r2(
);
/**
/**
- *
JUMP命令
+ *
CPA命令 - オペランドr,adr,x。語長2
*/
*/
-void
jump(const WORD r, const WORD adr
);
+void
cpa_r_adr_x(
);
/**
/**
- *
JPL命令
+ *
CPA命令 - オペランドr1,r2。語長1
*/
*/
-void
jpl(const WORD r, const WORD adr
);
+void
cpa_r1_r2(
);
/**
/**
- *
JOV命令
+ *
CPL命令のテンプレート
*/
*/
-void
jov(const WORD r, const WORD adr
);
+void
cpl(const WORD r, const WORD val
);
/**
/**
- *
PUSH命令
+ *
CPL命令 - オペランドr,adr,x。語長2
*/
*/
-void
push(const WORD r, const WORD adr
);
+void
cpl_r_adr_x(
);
/**
/**
- *
POP命令
+ *
CPL命令 - オペランドr1,r2。語長1
*/
*/
-void
pop(const WORD r, const WORD adr
);
+void
cpl_r1_r2(
);
/**
/**
- * CALL命令
+ * SLA命令 - オペランドr,adr,x。語長2
+ * 算術演算なので、第15ビットは送り出されない
*/
*/
-void
call(const WORD r, const WORD adr
);
+void
sla(
);
/**
/**
- * RET命令
+ * SRA命令 - オペランドr,adr,x。語長2
+ * 算術演算なので、第15ビットは送り出されない
+ * 空いたビット位置には符号と同じものが入る
*/
*/
-void
ret(const WORD r, const WORD adr
);
+void
sra(
);
/**
/**
- * S
VC命令
+ * S
LL命令 - オペランドr,adr,x。語長2
*/
*/
-void s
vc(const WORD r, const WORD adr
);
+void s
ll(
);
+/**
+ * SRL命令 - オペランドr,adr,x。語長2
+ */
+void srl();
+
+/**
+ * JPL命令。語長2
+ */
+void jpl();
+
+/**
+ * JMI命令。語長2
+ */
+void jmi();
+
+/**
+ * JNZ命令。語長2
+ */
+void jnz();
+
+/**
+ * JZE命令。語長2
+ */
+void jze();
+
+/**
+ * JOV命令。語長2
+ */
+void jov();
+
+/**
+ * JUMP命令。語長2
+ */
+void jump();
+
+/**
+ * PUSH命令。語長2
+ */
+void push();
+
+/**
+ * POP命令。語長1
+ */
+void pop();
+
+/**
+ * CALL命令。語長2
+ */
+void call();
+
+/**
+ * RET命令。語長1(OPのみ)
+ */
+void ret();
+
+/**
+ * SVC命令。語長2
+ */
+void svc();
/**
* COMET II仮想マシンの実行
/**
* COMET II仮想マシンの実行