-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <assert.h>
-#include <errno.h>
-
#include "assemble.h"
-#include "cerr.h"
/**
* @brief ファイルストリームの現在行を番号付きで表示する
WORD getadr(const char *prog, const char *str, PASS pass);
/**
- * @brief 汎用レジスタを表す文字列 からレジスタ番号を返す
+ * @brief 汎用レジスタを表す文字列からレジスタ番号を返す
*
* @brief 文字列が汎用レジスタを表さない場合は、0xFFFFを返す
*
* @param *str 汎用レジスタを表す文字列。「GR0」「GR1」・・・「GR7」のいずれか
* @param is_x trueの場合は指標レジスタ
*/
-WORD getgr(const char *str, bool is_x);
+WORD grword(const char *str, bool is_x);
/**
* @brief リテラルを返す
return adr;
}
-WORD getgr(const char *str, bool is_x)
+WORD grword(const char *str, bool is_x)
{
WORD r;
writememory(cmd, (asptr->ptr)++, pass);
}
/* 第1オペランドは汎用レジスタ */
- else if((r_r1 = getgr(cmdl->opd->opdv[0], false)) != 0xFFFF) {
+ else if((r_r1 = grword(cmdl->opd->opdv[0], false)) != 0xFFFF) {
/* オペランド数1 */
if(cmdl->opd->opdc == 1) {
if((cmd = getcmdcode(cmdl->cmd, R_)) == 0xFFFF) {
writememory(cmd, (asptr->ptr)++, pass);
}
/* オペランド数2。第2オペランドは汎用レジスタ */
- else if(cmdl->opd->opdc == 2 && (x_r2 = getgr(cmdl->opd->opdv[1], false)) != 0xFFFF) {
+ else if(cmdl->opd->opdc == 2 && (x_r2 = grword(cmdl->opd->opdv[1], false)) != 0xFFFF) {
if((cmd = getcmdcode(cmdl->cmd, R1_R2)) == 0xFFFF) {
setcerr(109, cmdl->cmd); /* not command of operand "r1,r2" */
return false;
cmd |= (r_r1 << 4); /* 第1オペランドは汎用レジスタ */
/* オペランド数3の場合 */
if(cmdl->opd->opdc == 3) { /* 第3オペランドは指標レジスタとして用いる汎用レジスタ */
- if((x_r2 = getgr(cmdl->opd->opdv[2], true)) == 0xFFFF) {
+ if((x_r2 = grword(cmdl->opd->opdv[2], true)) == 0xFFFF) {
setcerr(125, cmdl->cmd); /* not GR in operand x */
return false;
}
}
/* オペランド数2の場合 */
if(cmdl->opd->opdc == 2) { /* 第2オペランドは指標レジスタとして用いる汎用レジスタ */
- x_r2 = getgr(cmdl->opd->opdv[1], true);
+ x_r2 = grword(cmdl->opd->opdv[1], true);
if(cerr->num > 0) {
return false;
}