Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的正则表达式,用于提取各种字段_Java_Regex_Assembly_Mips - Fatal编程技术网

java中的正则表达式,用于提取各种字段

java中的正则表达式,用于提取各种字段,java,regex,assembly,mips,Java,Regex,Assembly,Mips,我正在用java编写一个程序,将MIPS代码与其二进制等价物进行匹配。我一直在写一个正则表达式来从指令中提取单独的字段。它是一个I型指令,如下所示: lw $a0, 0($t0) 我尝试使用如下拆分函数将指令拆分为数组: container[0]=lw; container[1]=$a0; cotainer[2]=0 container[3]=$t0 我已经编写了下面的代码,但无法将“0($t0)”彼此分开,就像正则表达式将两者分开一样。我的以下实施如下: String []co

我正在用java编写一个程序,将MIPS代码与其二进制等价物进行匹配。我一直在写一个正则表达式来从指令中提取单独的字段。它是一个I型指令,如下所示:

lw      $a0, 0($t0)
我尝试使用如下拆分函数将指令拆分为数组:

container[0]=lw;
container[1]=$a0;
cotainer[2]=0
container[3]=$t0
我已经编写了下面的代码,但无法将“0($t0)”彼此分开,就像正则表达式将两者分开一样。我的以下实施如下:

String  []container= inst.trim().split("[,\\s]+");
String opcode= container[0];

任何帮助都将不胜感激。谢谢

为什么第二个寄存器用零包装?请原谅,我已经15年没有使用MIPS了。另外,您能告诉我们立即数是什么样子吗?在MIPS中,每个输入都存储在4字节的间隔中,因此第二个寄存器不是用零包装的,而是存储在该寄存器中的操作数的位置。为了回答您的问题,一个immediate看起来像immediate=0x00000000另一个示例lw$s0,4($sp),所以将这4和$sp分开,如何使用regex实现这一点对于那些知道正则表达式但不知道汇编的人来说,也许您可以提供示例输入和预期输出。“操作码、REG(rs)、REG(rd)、immediate(00000000)”对我来说毫无意义。请给出一些说明,以便我们能够提供解决方案。我认为我们这些了解regex但不了解MIPS的人可能正在努力理解通用格式。它总是“lw”后跟6个空格,然后“$”后跟两个字符,然后是逗号,然后是空格,然后是“0”,然后是括号。。。我们希望看到哪些其他变化需要拆分/接受/拒绝/等等。?lw、lh、lhu命令、格式?