+/**
+ * ADDL命令 - オペランドr,adr,x。語長2
+ */
+void addl_r_adr_x()
+{
+ WORD w[2];
+ w[0] = sys->memory[sys->cpu->pr];
+ w[1] = sys->memory[sys->cpu->pr + 1];
+ addl(r_r1(w[0]), val_adrx(w[1], w[0]));
+ sys->cpu->pr += 2;
+}
+
+/**
+ * ADDL命令 - オペランドr1,r2。語長1
+ */
+void addl_r1_r2()
+{
+ WORD w[1];
+ w[0] = sys->memory[sys->cpu->pr];
+ addl(r_r1(w[0]), sys->cpu->gr[x_r2(w[0])]);
+ sys->cpu->pr += 1;
+}
+
+/**
+ * SUBL命令 - オペランドr,adr,x。語長2
+ */
+void subl_r_adr_x()
+{
+ WORD w[2];
+ w[0] = sys->memory[sys->cpu->pr];
+ w[1] = sys->memory[sys->cpu->pr + 1];
+ addl(r_r1(w[0]), ~(val_adrx(w[1], w[0])) + 1);
+ sys->cpu->pr += 2;
+}
+
+/**
+ * SUBL命令 - オペランドr1,r2。語長1
+ */
+void subl_r1_r2()
+{
+ WORD w[1];
+ w[0] = sys->memory[sys->cpu->pr];
+ addl(r_r1(w[0]), ~(sys->cpu->gr[x_r2(w[0])]) + 1);
+ sys->cpu->pr += 1;
+}
+
+/**
+ * AND命令 - オペランドr,adr,x。語長2
+ */
+void and_r_adr_x()
+{
+ WORD w[2];
+ w[0] = sys->memory[sys->cpu->pr];
+ w[1] = sys->memory[sys->cpu->pr + 1];
+ setfr(sys->cpu->gr[r_r1(w[0])] &= val_adrx(w[1], w[0]));
+ sys->cpu->pr += 2;
+}
+
+/**
+ * AND命令 - オペランドr1,r2。語長1
+ */
+void and_r1_r2()
+{
+ WORD w[1];
+ w[0] = sys->memory[sys->cpu->pr];
+ setfr(sys->cpu->gr[r_r1(w[0])] &= sys->cpu->gr[x_r2(w[0])]);
+ sys->cpu->pr += 1;
+}
+
+/**
+ * OR命令 - オペランドr,adr,x。語長2
+ */
+void or_r_adr_x()