YACASL2
Functions | Variables
exec.c File Reference
#include "exec.h"
Include dependency graph for exec.c:

Go to the source code of this file.

Functions

char * pr2str (WORD pr)
 プログラムレジスタ(PR)を表すWORD値を文字列に変換 More...
 
void svcin ()
 標準入力から文字データを読込(SVC 1) More...
 
void svcout ()
 標準出力へ文字データを書出(SVC 2) More...
 
void setfr (WORD adr)
 ロード/論理積/論理和/排他的論理和のフラグ設定。OFは常に0 More...
 
WORD get_r_r1 (WORD oprx)
 WORD値からr/r1を取得 More...
 
WORD get_x_r2 (WORD oprx)
 WORD値からx/r2を取得 More...
 
WORD get_adr_x (WORD adr, WORD oprx)
 2つのWORD値からadr[,x]を取得 More...
 
WORD get_val_adr_x (WORD adr, WORD oprx)
 2つのWORD値からadr[,x]のアドレスに格納されている値を取得 More...
 
void addcerrlist_exec ()
 実行エラーをエラーリストに追加する More...
 
void nop ()
 NOP命令。語長1(OPのみ) More...
 
void ld_r_adr_x ()
 LD命令 - オペランドr,adr,x。語長2. More...
 
void ld_r1_r2 ()
 LD命令 - オペランドr1,r2。語長1. More...
 
void st ()
 ST命令。語長2. More...
 
void lad ()
 LAD命令。語長2. More...
 
void adda (WORD r, WORD val)
 
void adda_r_adr_x ()
 ADDA命令 - オペランドr,adr,x。語長2. More...
 
void adda_r1_r2 ()
 ADDA命令 - オペランドr1,r2。語長1. More...
 
void suba_r_adr_x ()
 SUBA命令 - オペランドr,adr,x。語長2. More...
 
void suba_r1_r2 ()
 SUBA命令 - オペランドr1,r2。語長1. More...
 
void addl_gr (WORD r, WORD val, bool add)
 
void addl_r_adr_x ()
 ADDL命令 - オペランドr,adr,x。語長2. More...
 
void addl_r1_r2 ()
 ADDL命令 - オペランドr1,r2。語長1. More...
 
void subl_r_adr_x ()
 SUBL命令 - オペランドr,adr,x。語長2. More...
 
void subl_r1_r2 ()
 SUBL命令 - オペランドr1,r2。語長1. More...
 
void and_r_adr_x ()
 AND命令 - オペランドr,adr,x。語長2. More...
 
void and_r1_r2 ()
 AND命令 - オペランドr1,r2。語長1. More...
 
void or_r_adr_x ()
 OR命令 - オペランドr,adr,x。語長2. More...
 
void or_r1_r2 ()
 OR命令 - オペランドr1,r2。語長1. More...
 
void xor_r_adr_x ()
 XOR命令 - オペランドr,adr,x。語長2. More...
 
void xor_r1_r2 ()
 XOR命令 - オペランドr1,r2。語長1. More...
 
void cpa (WORD r, WORD val)
 
void cpa_r_adr_x ()
 CPA命令 - オペランドr,adr,x。語長2. More...
 
void cpa_r1_r2 ()
 CPA命令 - オペランドr1,r2。語長1. More...
 
void cpl (WORD r, WORD val)
 
void cpl_r_adr_x ()
 CPL命令 - オペランドr,adr,x。語長2. More...
 
void cpl_r1_r2 ()
 CPL命令 - オペランドr1,r2。語長1. More...
 
void sla ()
 SLA命令 - オペランドr,adr,x。語長2. More...
 
void sra ()
 SRA命令 - オペランドr,adr,x。語長2. More...
 
void sll ()
 SLL命令 - オペランドr,adr,x。語長2. More...
 
void srl ()
 SRL命令 - オペランドr,adr,x。語長2. More...
 
void jpl ()
 JPL命令。語長2. More...
 
void jmi ()
 JMI命令。語長2. More...
 
void jnz ()
 JNZ命令。語長2. More...
 
void jze ()
 JZE命令。語長2. More...
 
void jov ()
 JOV命令。語長2. More...
 
void jump ()
 JUMP命令。語長2. More...
 
void push ()
 PUSH命令。語長2. More...
 
void pop ()
 POP命令。語長1. More...
 
void call ()
 CALL命令。語長2. More...
 
void ret ()
 RET命令。語長1(OPのみ) More...
 
void svc ()
 SVC命令。語長2. More...
 
void exec ()
 COMET II仮想マシンを実行する More...
 

Variables

static CERR cerr_exec []
 実行エラーの定義 More...
 
EXECMODE execmode = {false, false, false, 0, 0xFFFF, false, false}
 実行モード: trace, logical, dump, dump_start, dump_end, monitor, step More...
 

Function Documentation

◆ adda()

void adda ( WORD  r,
WORD  val 
)

Definition at line 251 of file exec.c.

Here is the caller graph for this function:

◆ adda_r1_r2()

void adda_r1_r2 ( )

ADDA命令 - オペランドr1,r2。語長1.

Returns
なし

Definition at line 277 of file exec.c.

Here is the call graph for this function:

◆ adda_r_adr_x()

void adda_r_adr_x ( )

ADDA命令 - オペランドr,adr,x。語長2.

Returns
なし

Definition at line 270 of file exec.c.

Here is the call graph for this function:

◆ addcerrlist_exec()

void addcerrlist_exec ( )

実行エラーをエラーリストに追加する

Definition at line 213 of file exec.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addl_gr()

void addl_gr ( WORD  r,
WORD  val,
bool  add 
)

Definition at line 298 of file exec.c.

Here is the caller graph for this function:

◆ addl_r1_r2()

void addl_r1_r2 ( )

ADDL命令 - オペランドr1,r2。語長1.

Returns
なし

Definition at line 337 of file exec.c.

Here is the call graph for this function:

◆ addl_r_adr_x()

void addl_r_adr_x ( )

ADDL命令 - オペランドr,adr,x。語長2.

Returns
なし

Definition at line 330 of file exec.c.

Here is the call graph for this function:

◆ and_r1_r2()

void and_r1_r2 ( )

AND命令 - オペランドr1,r2。語長1.

Returns
なし

Definition at line 365 of file exec.c.

Here is the call graph for this function:

◆ and_r_adr_x()

void and_r_adr_x ( )

AND命令 - オペランドr,adr,x。語長2.

Returns
なし

Definition at line 358 of file exec.c.

Here is the call graph for this function:

◆ call()

void call ( )

CALL命令。語長2.

Returns
なし

Definition at line 640 of file exec.c.

Here is the call graph for this function:

◆ cpa()

void cpa ( WORD  r,
WORD  val 
)

Definition at line 400 of file exec.c.

Here is the caller graph for this function:

◆ cpa_r1_r2()

void cpa_r1_r2 ( )

CPA命令 - オペランドr1,r2。語長1.

Returns
なし

Definition at line 417 of file exec.c.

Here is the call graph for this function:

◆ cpa_r_adr_x()

void cpa_r_adr_x ( )

CPA命令 - オペランドr,adr,x。語長2.

Returns
なし

Definition at line 410 of file exec.c.

Here is the call graph for this function:

◆ cpl()

void cpl ( WORD  r,
WORD  val 
)

Definition at line 424 of file exec.c.

Here is the caller graph for this function:

◆ cpl_r1_r2()

void cpl_r1_r2 ( )

CPL命令 - オペランドr1,r2。語長1.

Returns
なし

Definition at line 441 of file exec.c.

Here is the call graph for this function:

◆ cpl_r_adr_x()

void cpl_r_adr_x ( )

CPL命令 - オペランドr,adr,x。語長2.

Returns
なし

Definition at line 434 of file exec.c.

Here is the call graph for this function:

◆ exec()

void exec ( )

COMET II仮想マシンを実行する

Returns
なし

Definition at line 676 of file exec.c.

Here is the call graph for this function:

◆ get_adr_x()

WORD get_adr_x ( WORD  adr,
WORD  oprx 
)

2つのWORD値からadr[,x]を取得

Returns
adr[,x]を表すWORD値
Parameters
adrアドレスを表すWORD値
oprxオペランドを表すWORD値

Definition at line 188 of file exec.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_r_r1()

WORD get_r_r1 ( WORD  oprx)

WORD値からr/r1を取得

Returns
r/r1を表すWORD値
Parameters
oprxオペランドを表すWORD値

Definition at line 162 of file exec.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_val_adr_x()

WORD get_val_adr_x ( WORD  adr,
WORD  oprx 
)

2つのWORD値からadr[,x]のアドレスに格納されている値を取得

Returns
adr[,x]のアドレスに格納されている値を表すWORD値
Parameters
adrアドレスを表すWORD値
oprxオペランドを表すWORD値

Definition at line 199 of file exec.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_x_r2()

WORD get_x_r2 ( WORD  oprx)

WORD値からx/r2を取得

Returns
x/r2を表すWORD値
Parameters
oprxオペランドを表すWORD値

Definition at line 175 of file exec.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ jmi()

void jmi ( )

JMI命令。語長2.

Returns
なし

Definition at line 571 of file exec.c.

Here is the call graph for this function:

◆ jnz()

void jnz ( )

JNZ命令。語長2.

Returns
なし

Definition at line 581 of file exec.c.

Here is the call graph for this function:

◆ jov()

void jov ( )

JOV命令。語長2.

Returns
なし

Definition at line 601 of file exec.c.

Here is the call graph for this function:

◆ jpl()

void jpl ( )

JPL命令。語長2.

Returns
なし

Definition at line 561 of file exec.c.

Here is the call graph for this function:

◆ jump()

void jump ( )

JUMP命令。語長2.

Returns
なし

Definition at line 611 of file exec.c.

Here is the call graph for this function:

◆ jze()

void jze ( )

JZE命令。語長2.

Returns
なし

Definition at line 591 of file exec.c.

Here is the call graph for this function:

◆ lad()

void lad ( )

LAD命令。語長2.

Returns
なし

Definition at line 244 of file exec.c.

Here is the call graph for this function:

◆ ld_r1_r2()

void ld_r1_r2 ( )

LD命令 - オペランドr1,r2。語長1.

Returns
なし

Definition at line 230 of file exec.c.

Here is the call graph for this function:

◆ ld_r_adr_x()

void ld_r_adr_x ( )

LD命令 - オペランドr,adr,x。語長2.

Returns
なし

Definition at line 223 of file exec.c.

Here is the call graph for this function:

◆ nop()

void nop ( )

NOP命令。語長1(OPのみ)

Returns
なし

Definition at line 218 of file exec.c.

◆ or_r1_r2()

void or_r1_r2 ( )

OR命令 - オペランドr1,r2。語長1.

Returns
なし

Definition at line 379 of file exec.c.

Here is the call graph for this function:

◆ or_r_adr_x()

void or_r_adr_x ( )

OR命令 - オペランドr,adr,x。語長2.

Returns
なし

Definition at line 372 of file exec.c.

Here is the call graph for this function:

◆ pop()

void pop ( )

POP命令。語長1.

Returns
なし

Definition at line 625 of file exec.c.

Here is the call graph for this function:

◆ pr2str()

char * pr2str ( WORD  pr)

プログラムレジスタ(PR)を表すWORD値を文字列に変換

Returns
文字列「PR:XXXX」(Xは16進数の数字)
Parameters
prプログラムレジスタ(PR)を表すWORD値

Definition at line 93 of file exec.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ push()

void push ( )

PUSH命令。語長2.

Returns
なし

Definition at line 617 of file exec.c.

Here is the call graph for this function:

◆ ret()

void ret ( )

RET命令。語長1(OPのみ)

Returns
なし

Definition at line 648 of file exec.c.

◆ setfr()

void setfr ( WORD  adr)

ロード/論理積/論理和/排他的論理和のフラグ設定。OFは常に0

Returns
なし
Parameters
adrアドレス

Definition at line 149 of file exec.c.

Here is the caller graph for this function:

◆ sla()

void sla ( )

SLA命令 - オペランドr,adr,x。語長2.

算術演算なので、第15ビットは送り出されない

Returns
なし

Definition at line 448 of file exec.c.

Here is the call graph for this function:

◆ sll()

void sll ( )

SLL命令 - オペランドr,adr,x。語長2.

Returns
なし

Definition at line 509 of file exec.c.

Here is the call graph for this function:

◆ sra()

void sra ( )

SRA命令 - オペランドr,adr,x。語長2.

算術演算なので、第15ビットは送り出されない 空いたビット位置には符号と同じものが入る

Returns
なし

Definition at line 477 of file exec.c.

Here is the call graph for this function:

◆ srl()

void srl ( )

SRL命令 - オペランドr,adr,x。語長2.

Returns
なし

Definition at line 535 of file exec.c.

Here is the call graph for this function:

◆ st()

void st ( )

ST命令。語長2.

Returns
なし

Definition at line 237 of file exec.c.

Here is the call graph for this function:

◆ suba_r1_r2()

void suba_r1_r2 ( )

SUBA命令 - オペランドr1,r2。語長1.

Returns
なし

Definition at line 291 of file exec.c.

Here is the call graph for this function:

◆ suba_r_adr_x()

void suba_r_adr_x ( )

SUBA命令 - オペランドr,adr,x。語長2.

Returns
なし

Definition at line 284 of file exec.c.

Here is the call graph for this function:

◆ subl_r1_r2()

void subl_r1_r2 ( )

SUBL命令 - オペランドr1,r2。語長1.

Returns
なし

Definition at line 351 of file exec.c.

Here is the call graph for this function:

◆ subl_r_adr_x()

void subl_r_adr_x ( )

SUBL命令 - オペランドr,adr,x。語長2.

Returns
なし

Definition at line 344 of file exec.c.

Here is the call graph for this function:

◆ svc()

void svc ( )

SVC命令。語長2.

Returns
なし

Definition at line 658 of file exec.c.

Here is the call graph for this function:

◆ svcin()

void svcin ( )

標準入力から文字データを読込(SVC 1)

Returns
なし

Definition at line 101 of file exec.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ svcout()

void svcout ( )

標準出力へ文字データを書出(SVC 2)

Returns
なし

Definition at line 125 of file exec.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ xor_r1_r2()

void xor_r1_r2 ( )

XOR命令 - オペランドr1,r2。語長1.

Returns
なし

Definition at line 393 of file exec.c.

Here is the call graph for this function:

◆ xor_r_adr_x()

void xor_r_adr_x ( )

XOR命令 - オペランドr,adr,x。語長2.

Returns
なし

Definition at line 386 of file exec.c.

Here is the call graph for this function:

Variable Documentation

◆ cerr_exec

CERR cerr_exec[]
static
Initial value:
= {
{ 201, "Program Register (PR) - memory overflow" },
{ 202, "Stack Pointer (SP) - stack overflow" },
{ 203, "Stack Pointer (SP) - stack underflow" },
{ 204, "OP in word #1 - not command code" },
{ 205, "r/r1 in word #1 - not GR" },
{ 206, "x/r2 in word #1 - not GR" },
{ 207, "address in word #2 - out of memory" },
{ 208, "SVC input - memory overflow" },
{ 209, "SVC output - memory overflow" },
}

実行エラーの定義

Definition at line 76 of file exec.c.

◆ execmode

EXECMODE execmode = {false, false, false, 0, 0xFFFF, false, false}

実行モード: trace, logical, dump, dump_start, dump_end, monitor, step

実行モード: trace, logical, dump, monitor, step

Definition at line 91 of file exec.c.