메소드 | 설명 | |
---|---|---|
Check ( string source ) : |
||
char_to_int ( char c ) : int |
把4个8位char合并成一个32位int
|
|
int_to_bytes ( int num ) : byte[] |
辅助函数,把32位int转为4个8位byte
|
|
uint_to_bytes ( uint num ) : byte[] |
辅助函数,把32位int转为4个8位byte
|
메소드 | 설명 | |
---|---|---|
AppendContent ( ) : void | ||
AppendSpace ( string label = null, int snum = SPACENUM1 ) : string | ||
C ( ) : void | ||
DFirst ( ) : void | ||
DP ( ) : void | ||
Data ( ) : void | ||
Debug ( string msg ) : void | ||
I ( ) : void |
instruction include comment
|
|
I_ALI ( string cmd ) : void |
I-类型算术/逻辑运算,格式为Addi r1,r2,#100或addi r1,r2,lable_1或addi r1,r2,str[2]
|
|
I_ALR ( string cmd ) : void |
R-类型算术/逻辑运算,格式为Add r1,r2,r3
|
|
I_CB ( string cmd ) : void |
条件分支指令,包括BEQZ和BNEZ,格式为beqz r2,label_1
|
|
I_JMPI ( string cmd ) : void |
使用立即数的跳,包括J和JAL
|
|
I_JMPR ( string cmd ) : void |
使用寄存器的跳,包括JR和JALR
|
|
I_LHI ( string cmd ) : void |
LHI指令,格式为lhi r0,#100或lhi r0, label_1 或lhi r1,str[#2]
|
|
I_LOAD ( string cmd ) : void |
数据传送加载指令,包括lb和 lw ,格式为lw r1, #100(r2)或lw r1,num(r2)或lw r3,num[ #2](r0)
|
|
I_RET ( string cmd ) : void |
从跳转(函数)返回 ,等价于JR R31
|
|
I_RFE ( string cmd ) : void |
从异常返回
|
|
I_STORE ( string cmd ) : void |
数据传送储存指令,包括sb, sw ,格式为sw #100(r2),r1或sw num(r2),r1或sw num[ #2](r0),r3
|
|
I_TRAP ( string cmd ) : void |
TRAP指令
|
|
PAlign ( ) : void | ||
PAscii ( bool add_zero = false ) : void | ||
PAsciiEach ( ) : string | ||
PAsciiz ( ) : void | ||
PByte ( ) : void | ||
PExtern ( ) : void | ||
PGlobal ( ) : void | ||
PSpace ( ) : void | ||
PText ( ) : void | ||
PWord ( ) : void | ||
R ( ) : int | ||
TContent ( ) : void | ||
TExtern ( ) : void | ||
TGlobal ( ) : void | ||
TI ( ) : void | ||
TPseudo ( ) : void | ||
Text ( ) : void | ||
add_to_wait ( string word, int row, int colum ) : void | ||
back_src_token ( ) : void |
回退一个字符
|
|
check_symbol ( string word, int index ) : bool |
查找标记是否已经声明
|
|
check_text_symbol ( string word ) : bool |
只在text段中查找标记是否已经声明 用于跳转指令,这些指令后面跟的标记只能是程序段中声明的标记
|
|
delete_last_error ( ) : void | ||
error ( string msg ) : void | ||
error ( string msg, int row, int colum ) : void | ||
get_number_word ( ) : string |
获取数字格式的字符串, 字符串格式为#或x或b开头,分别代表十进制,十六进制和二进制 也可以直接数字,代表十进制
|
|
get_src_token ( ) : char |
读取下一个字符
|
|
get_word ( ) : string |
得到一个字符串,可能是指令操作码(Add,Lw等),也可能是label, 但不能以字母开头
|
|
get_word_index ( string word ) : int |
得到符号在操作符表中的位置
|
|
get_word_type ( string src_word ) : WORDTYPE | ||
is_validate_token ( char ch ) : bool |
是否是合法的字符 合法字符包括字母、数字、_和$
|
|
jump_to_next_line ( ) : void |
出现错误时跳转到下一行语句
|
|
parse_number_16 ( string num_word ) : int |
将字符串转换为16位整数 字符串格式为#或x或b开头,分别代表十进制,十六进制和二进制 也可以直接数字,代表十进制 字符串格式的正确由获取该字符串的函数 get_number_word保证
|
|
parse_number_32 ( string num_word ) : int |
将字符串转换为32位整数 字符串格式为#或x或b开头,分别代表十进制,十六进制和二进制 也可以直接数字,代表十进制 字符串格式的正确由获取该字符串的函数 get_number_word保证
|
|
parse_number_byte ( string num_word ) : byte | ||
remove_from_wait ( string word ) : void | ||
skip_space ( ) : void |
跳过空白符,包括空格和制表符
|