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...
 
char * grstr (WORD word)
 汎用レジスタの番号からレジスタを表す文字列を返す More...
 
void addcerrlist_load ()
 アセンブル結果読み込みエラーをエラーリストに追加する More...
 
void addcerrlist_exec ()
 実行エラーをエラーリストに追加する More...
 
bool loadassemble (const char *file)
 指定されたファイルからアセンブル結果を読み込む 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...
 
bool disassemble_file (const char *file)
 CASL IIのオブジェクトファイルを逆アセンブルし、標準出力へ出力する More...
 

Variables

static CERR cerr_exec []
 実行エラーの定義 More...
 
static CERR cerr_load []
 アセンブル結果読み込みエラーの定義 More...
 
EXECMODE execmode = {false, false, false, false}
 実行モード: trace, logical, dump, step More...
 

Function Documentation

◆ adda()

void adda ( WORD  r,
WORD  val 
)

Definition at line 300 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 328 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 319 of file exec.c.

Here is the call graph for this function:

◆ addcerrlist_exec()

void addcerrlist_exec ( )

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

Definition at line 234 of file exec.c.

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

◆ addcerrlist_load()

void addcerrlist_load ( )

アセンブル結果読み込みエラーをエラーリストに追加する

Definition at line 229 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 353 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 393 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 384 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 427 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 418 of file exec.c.

Here is the call graph for this function:

◆ call()

void call ( )

CALL命令。語長2.

Returns
なし

Definition at line 736 of file exec.c.

Here is the call graph for this function:

◆ cpa()

void cpa ( WORD  r,
WORD  val 
)

Definition at line 469 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 488 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 479 of file exec.c.

Here is the call graph for this function:

◆ cpl()

void cpl ( WORD  r,
WORD  val 
)

Definition at line 496 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 515 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 506 of file exec.c.

Here is the call graph for this function:

◆ disassemble_file()

bool disassemble_file ( const char *  file)

CASL IIのオブジェクトファイルを逆アセンブルし、標準出力へ出力する

Returns
正常終了時は0、異常終了時は0以外
Parameters
*fileオブジェクトファイルのファイル名

Definition at line 854 of file exec.c.

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

◆ exec()

void exec ( )

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

Returns
なし

Definition at line 784 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 206 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 180 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 215 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 193 of file exec.c.

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

◆ grstr()

char * grstr ( WORD  word)

汎用レジスタの番号からレジスタを表す文字列を返す

Returns
汎用レジスタを表す文字列。「GR0」「GR1」・・・「GR7」のいずれか
Parameters
wordレジスタ番号[0-7]を表すWORD値

Definition at line 776 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 653 of file exec.c.

Here is the call graph for this function:

◆ jnz()

void jnz ( )

JNZ命令。語長2.

Returns
なし

Definition at line 665 of file exec.c.

Here is the call graph for this function:

◆ jov()

void jov ( )

JOV命令。語長2.

Returns
なし

Definition at line 689 of file exec.c.

Here is the call graph for this function:

◆ jpl()

void jpl ( )

JPL命令。語長2.

Returns
なし

Definition at line 641 of file exec.c.

Here is the call graph for this function:

◆ jump()

void jump ( )

JUMP命令。語長2.

Returns
なし

Definition at line 701 of file exec.c.

Here is the call graph for this function:

◆ jze()

void jze ( )

JZE命令。語長2.

Returns
なし

Definition at line 677 of file exec.c.

Here is the call graph for this function:

◆ lad()

void lad ( )

LAD命令。語長2.

Returns
なし

Definition at line 291 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 274 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 265 of file exec.c.

Here is the call graph for this function:

◆ loadassemble()

bool loadassemble ( const char *  file)

指定されたファイルからアセンブル結果を読み込む

Definition at line 239 of file exec.c.

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

◆ nop()

void nop ( )

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

Returns
なし

Definition at line 260 of file exec.c.

◆ or_r1_r2()

void or_r1_r2 ( )

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

Returns
なし

Definition at line 444 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 435 of file exec.c.

Here is the call graph for this function:

◆ pop()

void pop ( )

POP命令。語長1.

Returns
なし

Definition at line 720 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 111 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 709 of file exec.c.

Here is the call graph for this function:

◆ ret()

void ret ( )

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

Returns
なし

Definition at line 746 of file exec.c.

◆ setfr()

void setfr ( WORD  adr)

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

Returns
なし
Parameters
adrアドレス

Definition at line 167 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 523 of file exec.c.

Here is the call graph for this function:

◆ sll()

void sll ( )

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

Returns
なし

Definition at line 586 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 553 of file exec.c.

Here is the call graph for this function:

◆ srl()

void srl ( )

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

Returns
なし

Definition at line 613 of file exec.c.

Here is the call graph for this function:

◆ st()

void st ( )

ST命令。語長2.

Returns
なし

Definition at line 282 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 345 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 336 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 410 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 401 of file exec.c.

Here is the call graph for this function:

◆ svc()

void svc ( )

SVC命令。語長2.

Returns
なし

Definition at line 756 of file exec.c.

Here is the call graph for this function:

◆ svcin()

void svcin ( )

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

Returns
なし

Definition at line 119 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 143 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 461 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 452 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 86 of file exec.c.

◆ cerr_load

CERR cerr_load[]
static
Initial value:
= {
{ 210, "load - memory overflow" },
{ 211, "object file not specified" },
}

アセンブル結果読み込みエラーの定義

Definition at line 101 of file exec.c.

◆ execmode

EXECMODE execmode = {false, false, false, false}

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

Definition at line 109 of file exec.c.