<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
<HTML>
|
<HTML>
|
<HEAD>
|
<HEAD>
|
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
<META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 9.0.2.0 for Windows">
|
<META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 9.0.2.0 for Windows">
|
<META http-equiv="Content-Style-Type" content="text/css">
|
<META http-equiv="Content-Style-Type" content="text/css">
|
<TITLE></TITLE>
|
<TITLE></TITLE>
|
</HEAD>
|
</HEAD>
|
<BODY>
|
<BODY>
|
<P><B>2.3 Supported Instructions</B><BR>
|
<P><B>2.3 Supported Instructions</B><BR>
|
<BR>
|
<BR>
|
Not supported item is displayed as <FONT color="#ff0000">red characters</FONT>.<BR>
|
Not supported item is displayed as <FONT color="#ff0000">red characters</FONT>.<BR>
|
Unaligned load and store operations (LWL,SWL,LWR,SWR) are not supported.<BR>
|
Unaligned load and store operations (LWL,SWL,LWR,SWR) are not supported.<BR>
|
</P>
|
</P>
|
<H3>ADD -- <I>Add</I></H3>
|
<H3>ADD -- <I>Add</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Adds two registers and stores the result in a register<FONT color="#ff0000">(Exception by Overflow)</FONT>
|
<TD>Adds two registers and stores the result in a register<FONT color="#ff0000">(Exception by Overflow)</FONT>
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$d = $s + $t;
|
<TD>$d = $s + $t;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>add $d, $s, $t
|
<TD>add $d, $s, $t
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="476">
|
<TABLE border="1" width="476">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="62" height="35">Destination</TD>
|
<TD width="62" height="35">Destination</TD>
|
<TD width="134" height="35">Shift</TD>
|
<TD width="134" height="35">Shift</TD>
|
<TD height="35">Function</TD>
|
<TD height="35">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30">6fbOOOOOO</TD>
|
<TD width="93" height="30">6fbOOOOOO</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD width="62" height="30">5bit</TD>
|
<TD width="62" height="30">5bit</TD>
|
<TD width="134" height="30">5bit</TD>
|
<TD width="134" height="30">5bit</TD>
|
<TD height="30">6'b100_000</TD>
|
<TD height="30">6'b100_000</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>ADDI -- <I>Add immediate</I></H3>
|
<H3>ADDI -- <I>Add immediate</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Adds a register and a signed immediate value and stores the result in a
|
<TD>Adds a register and a signed immediate value and stores the result in a
|
register
|
register
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$t = $s + imm;
|
<TD>$t = $s + imm;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>addi $t, $s, imm
|
<TD>addi $t, $s, imm
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="507">
|
<TABLE border="1" width="507">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b001000</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b001000</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>ADDIU -- <I>Add immediate unsigned</I></H3>
|
<H3>ADDIU -- <I>Add immediate unsigned</I></H3>
|
<TABLE border="1" width="595" height="152">
|
<TABLE border="1" width="595" height="152">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Adds a register and an unsigned immediate value and stores the result in a
|
<TD>Adds a register and an unsigned immediate value and stores the result in a
|
register
|
register
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$t = $s + imm;
|
<TD>$t = $s + imm;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>addiu $t, $s, imm
|
<TD>addiu $t, $s, imm
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="507">
|
<TABLE border="1" width="507">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b001001</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b001001</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>ADDU -- <I>Add unsigned</I></H3>
|
<H3>ADDU -- <I>Add unsigned</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Adds two registers and stores the result in a register
|
<TD>Adds two registers and stores the result in a register
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$d = $s + $t;
|
<TD>$d = $s + $t;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>addu $d, $s, $t
|
<TD>addu $d, $s, $t
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="476">
|
<TABLE border="1" width="476">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="62" height="35">Destination</TD>
|
<TD width="62" height="35">Destination</TD>
|
<TD width="134" height="35">Shift</TD>
|
<TD width="134" height="35">Shift</TD>
|
<TD height="35">Function</TD>
|
<TD height="35">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30">6fbOOOOOO</TD>
|
<TD width="93" height="30">6fbOOOOOO</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD width="62" height="30">5bit</TD>
|
<TD width="62" height="30">5bit</TD>
|
<TD width="134" height="30">5'h0</TD>
|
<TD width="134" height="30">5'h0</TD>
|
<TD height="30">6'b100_001</TD>
|
<TD height="30">6'b100_001</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>AND -- <I>Bitwise and</I></H3>
|
<H3>AND -- <I>Bitwise and</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Bitwise ands two registers and stores the result in a register
|
<TD>Bitwise ands two registers and stores the result in a register
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$d = $s & $t;
|
<TD>$d = $s & $t;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>and $d, $s, $t
|
<TD>and $d, $s, $t
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="476">
|
<TABLE border="1" width="476">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD height="42">Function</TD>
|
<TD height="42">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="134" height="25">5'h0</TD>
|
<TD width="134" height="25">5'h0</TD>
|
<TD height="25">6'b100100</TD>
|
<TD height="25">6'b100100</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>ANDI -- <I>Bitwise and immediate</I></H3>
|
<H3>ANDI -- <I>Bitwise and immediate</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Bitwise ands a register and an immediate value and stores the result in a
|
<TD>Bitwise ands a register and an immediate value and stores the result in a
|
register
|
register
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$t = $s & imm;
|
<TD>$t = $s & imm;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>andi $t, $s, imm
|
<TD>andi $t, $s, imm
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="519">
|
<TABLE border="1" width="519">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="37">OPCODE</TD>
|
<TD width="93" height="37">OPCODE</TD>
|
<TD width="25" height="37">Source</TD>
|
<TD width="25" height="37">Source</TD>
|
<TD width="82" height="37">Target</TD>
|
<TD width="82" height="37">Target</TD>
|
<TD colspan="4" width="286" height="37">Immediate</TD>
|
<TD colspan="4" width="286" height="37">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="28"><CODE>6'b001100</CODE></TD>
|
<TD width="93" height="28"><CODE>6'b001100</CODE></TD>
|
<TD width="25" height="28">5bit</TD>
|
<TD width="25" height="28">5bit</TD>
|
<TD width="82" height="28">5bit</TD>
|
<TD width="82" height="28">5bit</TD>
|
<TD colspan="4" width="286" height="28">16bit</TD>
|
<TD colspan="4" width="286" height="28">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>BEQ -- <I>Branch on equal</I></H3>
|
<H3>BEQ -- <I>Branch on equal</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Branches if the two registers are equal
|
<TD>Branches if the two registers are equal
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>if $s == $t PC +=imm << 2;
|
<TD>if $s == $t PC +=imm << 2;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>beq $s, $t, imm
|
<TD>beq $s, $t, imm
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="507">
|
<TABLE border="1" width="507">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b000100</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b000100</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5'h0</TD>
|
<TD width="82" height="30">5'h0</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>BGEZ -- <I>Branch on greater than or equal to zero</I></H3>
|
<H3>BGEZ -- <I>Branch on greater than or equal to zero</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Branches if the register is greater than or equal to zero
|
<TD>Branches if the register is greater than or equal to zero
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>if $s >= 0 PC +=offset << 2;
|
<TD>if $s >= 0 PC +=offset << 2;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>bgez $s, offset
|
<TD>bgez $s, offset
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="507">
|
<TABLE border="1" width="507">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b000001</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b000001</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5'b00001</TD>
|
<TD width="82" height="30">5'b00001</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3><FONT color="#ff0000">BGEZAL -- Branch on greater than or equal to zero and link</FONT></H3>
|
<H3><FONT color="#ff0000">BGEZAL -- Branch on greater than or equal to zero and link</FONT></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Branches if the register is greater than or equal to zero and saves the
|
<TD>Branches if the register is greater than or equal to zero and saves the
|
return address in $31
|
return address in $31
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>if $s >= 0 $31 = PC + 8 ; PC +=imm << 2;
|
<TD>if $s >= 0 $31 = PC + 8 ; PC +=imm << 2;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>bgezal $s, imm
|
<TD>bgezal $s, imm
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="595">
|
<TABLE border="1" width="595">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b000001</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b000001</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5'h10001</TD>
|
<TD width="82" height="30">5'h10001</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>BGTZ -- <I>Branch on greater than zero</I></H3>
|
<H3>BGTZ -- <I>Branch on greater than zero</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Branches if the register is greater than zero
|
<TD>Branches if the register is greater than zero
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>if $s > 0 PC +=imm << 2;
|
<TD>if $s > 0 PC +=imm << 2;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>bgtz $s, imm
|
<TD>bgtz $s, imm
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="507">
|
<TABLE border="1" width="507">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b000111</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b000111</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5'h0</TD>
|
<TD width="82" height="30">5'h0</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>BLEZ -- <I>Branch on less than or equal to zero</I></H3>
|
<H3>BLEZ -- <I>Branch on less than or equal to zero</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Branches if the register is less than or equal to zero
|
<TD>Branches if the register is less than or equal to zero
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>if $s <= 0 PC +=imm << 2;
|
<TD>if $s <= 0 PC +=imm << 2;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>blez $s, imm
|
<TD>blez $s, imm
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="507">
|
<TABLE border="1" width="507">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b000110</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b000110</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5'h0</TD>
|
<TD width="82" height="30">5'h0</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>BLTZ -- <I>Branch on less than zero</I></H3>
|
<H3>BLTZ -- <I>Branch on less than zero</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Branches if the register is less than zero
|
<TD>Branches if the register is less than zero
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>if $s < 0 PC+=imm << 2;
|
<TD>if $s < 0 PC+=imm << 2;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>bltz $s, imm
|
<TD>bltz $s, imm
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="507">
|
<TABLE border="1" width="507">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b00001</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b00001</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5'b00000</TD>
|
<TD width="82" height="30">5'b00000</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3><FONT color="#ff0000">BLTZAL -- Branch on less than zero and link</FONT></H3>
|
<H3><FONT color="#ff0000">BLTZAL -- Branch on less than zero and link</FONT></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Branches if the register is less than zero and saves the return address in
|
<TD>Branches if the register is less than zero and saves the return address in
|
$31
|
$31
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>if $s < 0 $31 = PC + 8 ; PC+=imm << 2;
|
<TD>if $s < 0 $31 = PC + 8 ; PC+=imm << 2;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>bltzal $s, imm
|
<TD>bltzal $s, imm
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="507">
|
<TABLE border="1" width="507">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b000001</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b000001</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5'b10000</TD>
|
<TD width="82" height="30">5'b10000</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>BNE -- <I>Branch on not equal</I></H3>
|
<H3>BNE -- <I>Branch on not equal</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Branches if the two registers are not equal
|
<TD>Branches if the two registers are not equal
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>if $s != $t PC+=imm << 2;
|
<TD>if $s != $t PC+=imm << 2;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>bne $s, $t, imm
|
<TD>bne $s, $t, imm
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="507">
|
<TABLE border="1" width="507">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b000101</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b000101</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5'h0</TD>
|
<TD width="82" height="30">5'h0</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3><FONT color="#ff0000">Break -- Break</FONT> </H3>
|
<H3><FONT color="#ff0000">Break -- Break</FONT> </H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
|
|
<TD>Generates break point.
|
<TD>Generates break point.
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
|
|
<TD>
|
<TD>
|
|
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
|
|
<TD>break
|
<TD>break
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="476">
|
<TABLE border="1" width="476">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD height="42">Function</TD>
|
<TD height="42">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="32" height="25">?????</TD>
|
<TD width="32" height="25">?????</TD>
|
<TD width="82" height="25">?????</TD>
|
<TD width="82" height="25">?????</TD>
|
<TD width="62" height="25">?????</TD>
|
<TD width="62" height="25">?????</TD>
|
<TD width="134" height="25">?????</TD>
|
<TD width="134" height="25">?????</TD>
|
<TD height="25">6'b001101</TD>
|
<TD height="25">6'b001101</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<P><BR>
|
<P><BR>
|
<BR>
|
<BR>
|
</P>
|
</P>
|
<H3>DIV -- <I>Divide</I></H3>
|
<H3>DIV -- <I>Divide</I></H3>
|
<TABLE border="1" width="597" height="167">
|
<TABLE border="1" width="597" height="167">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Divides $s by $t and stores the quotient in $LO and the remainder in $HI
|
<TD>Divides $s by $t and stores the quotient in $LO and the remainder in $HI
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$LO = $s / $t; $HI = $s % $t;
|
<TD>$LO = $s / $t; $HI = $s % $t;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>div $s, $t
|
<TD>div $s, $t
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="515">
|
<TABLE border="1" width="515">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="99" height="25">OPCODE</TD>
|
<TD width="99" height="25">OPCODE</TD>
|
<TD width="30" height="25">Source</TD>
|
<TD width="30" height="25">Source</TD>
|
<TD width="82" height="25">Target</TD>
|
<TD width="82" height="25">Target</TD>
|
<TD width="62" height="25">Destination</TD>
|
<TD width="62" height="25">Destination</TD>
|
<TD width="134" height="25">Shift</TD>
|
<TD width="134" height="25">Shift</TD>
|
<TD width="115" height="25">Function</TD>
|
<TD width="115" height="25">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="99" height="42">6fbOOOOOO</TD>
|
<TD width="99" height="42">6fbOOOOOO</TD>
|
<TD width="30" height="42">5bit</TD>
|
<TD width="30" height="42">5bit</TD>
|
<TD width="82" height="42">5bit</TD>
|
<TD width="82" height="42">5bit</TD>
|
<TD width="62" height="42">5'h0</TD>
|
<TD width="62" height="42">5'h0</TD>
|
<TD width="134" height="42">5'h0</TD>
|
<TD width="134" height="42">5'h0</TD>
|
<TD width="115" height="42">6'b011010</TD>
|
<TD width="115" height="42">6'b011010</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>DIVU -- <I>Divide unsigned</I></H3>
|
<H3>DIVU -- <I>Divide unsigned</I></H3>
|
<TABLE border="1" width="615">
|
<TABLE border="1" width="615">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Divides $s by $t and stores the quotient in $LO and the remainder in $HI
|
<TD>Divides $s by $t and stores the quotient in $LO and the remainder in $HI
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$LO = $s / $t; $HI = $s % $t;
|
<TD>$LO = $s / $t; $HI = $s % $t;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>divu $s, $t
|
<TD>divu $s, $t
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="524">
|
<TABLE border="1" width="524">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="100" height="39">OPCODE</TD>
|
<TD width="100" height="39">OPCODE</TD>
|
<TD width="31" height="39">Source</TD>
|
<TD width="31" height="39">Source</TD>
|
<TD width="52" height="39">Target</TD>
|
<TD width="52" height="39">Target</TD>
|
<TD width="62" height="39">Destination</TD>
|
<TD width="62" height="39">Destination</TD>
|
<TD width="134" height="39">Shift</TD>
|
<TD width="134" height="39">Shift</TD>
|
<TD width="94" height="39">Function</TD>
|
<TD width="94" height="39">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="100" height="32">6fbOOOOOO</TD>
|
<TD width="100" height="32">6fbOOOOOO</TD>
|
<TD width="31" height="32">5bit</TD>
|
<TD width="31" height="32">5bit</TD>
|
<TD width="52" height="32">5bit</TD>
|
<TD width="52" height="32">5bit</TD>
|
<TD width="62" height="32">5'h0</TD>
|
<TD width="62" height="32">5'h0</TD>
|
<TD width="134" height="32">5'h0</TD>
|
<TD width="134" height="32">5'h0</TD>
|
<TD width="94" height="32">6'b011011</TD>
|
<TD width="94" height="32">6'b011011</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>J -- <I>Jump</I></H3>
|
<H3>J -- <I>Jump</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Jumps to the calculated address
|
<TD>Jumps to the calculated address
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>PC = nPC; nPC = (PC & 0xf0000000) | (imm26 << 2);
|
<TD>PC = nPC; nPC = (PC & 0xf0000000) | (imm26 << 2);
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>j imm26
|
<TD>j imm26
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="476">
|
<TABLE border="1" width="476">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD height="35" colspan="5">Immediate</TD>
|
<TD height="35" colspan="5">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30">6'b000010</TD>
|
<TD width="93" height="30">6'b000010</TD>
|
<TD height="30" width="31" colspan="5">26bit</TD>
|
<TD height="30" width="31" colspan="5">26bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>JAL -- <I>Jump and link</I></H3>
|
<H3>JAL -- <I>Jump and link</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Jumps to the calculated address and stores the return address in $31
|
<TD>Jumps to the calculated address and stores the return address in $31
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$31 = PC + 8 ; PC = nPC; nPC = (PC & 0xf0000000) | (imm26 <<
|
<TD>$31 = PC + 8 ; PC = nPC; nPC = (PC & 0xf0000000) | (imm26 <<
|
2);
|
2);
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>jal imm26
|
<TD>jal imm26
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="476">
|
<TABLE border="1" width="476">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD height="35" colspan="5">Immediate</TD>
|
<TD height="35" colspan="5">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30">6'b000011</TD>
|
<TD width="93" height="30">6'b000011</TD>
|
<TD height="30" width="31" colspan="5">26bit</TD>
|
<TD height="30" width="31" colspan="5">26bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>JALR -- <I>Jump and link Register</I></H3>
|
<H3>JALR -- <I>Jump and link Register</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
|
|
<TD>Jump to the address contained in register $s and stores the return address
|
<TD>Jump to the address contained in register $s and stores the return address
|
in $d
|
in $d
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
|
|
<TD>$d = PC + 8 ; PC = $s
|
<TD>$d = PC + 8 ; PC = $s
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
|
|
<TD>jalr $d,$s
|
<TD>jalr $d,$s
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="524">
|
<TABLE border="1" width="524">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="100" height="39">OPCODE</TD>
|
<TD width="100" height="39">OPCODE</TD>
|
<TD width="31" height="39">Source</TD>
|
<TD width="31" height="39">Source</TD>
|
<TD width="52" height="39">Target</TD>
|
<TD width="52" height="39">Target</TD>
|
<TD width="62" height="39">Destination</TD>
|
<TD width="62" height="39">Destination</TD>
|
<TD width="134" height="39">Shift</TD>
|
<TD width="134" height="39">Shift</TD>
|
<TD width="94" height="39">Function</TD>
|
<TD width="94" height="39">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="100" height="32">6fbOOOOOO</TD>
|
<TD width="100" height="32">6fbOOOOOO</TD>
|
<TD width="31" height="32">5bit</TD>
|
<TD width="31" height="32">5bit</TD>
|
<TD width="52" height="32">5'h0</TD>
|
<TD width="52" height="32">5'h0</TD>
|
<TD width="62" height="32">5bit</TD>
|
<TD width="62" height="32">5bit</TD>
|
<TD width="134" height="32">5'h0</TD>
|
<TD width="134" height="32">5'h0</TD>
|
<TD width="94" height="32">6'b001001</TD>
|
<TD width="94" height="32">6'b001001</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>JR -- <I>Jump register</I></H3>
|
<H3>JR -- <I>Jump register</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Jump to the address contained in register $s
|
<TD>Jump to the address contained in register $s
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>PC = nPC; nPC = $s;
|
<TD>PC = nPC; nPC = $s;
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>jr $s
|
<TD>jr $s
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="524">
|
<TABLE border="1" width="524">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="100" height="39">OPCODE</TD>
|
<TD width="100" height="39">OPCODE</TD>
|
<TD width="31" height="39">Source</TD>
|
<TD width="31" height="39">Source</TD>
|
<TD width="52" height="39">Target</TD>
|
<TD width="52" height="39">Target</TD>
|
<TD width="62" height="39">Destination</TD>
|
<TD width="62" height="39">Destination</TD>
|
<TD width="134" height="39">Shift</TD>
|
<TD width="134" height="39">Shift</TD>
|
<TD width="94" height="39">Function</TD>
|
<TD width="94" height="39">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="100" height="32">6fbOOOOOO</TD>
|
<TD width="100" height="32">6fbOOOOOO</TD>
|
<TD width="31" height="32">5bit</TD>
|
<TD width="31" height="32">5bit</TD>
|
<TD width="52" height="32">5'h0</TD>
|
<TD width="52" height="32">5'h0</TD>
|
<TD width="62" height="32">5'h0</TD>
|
<TD width="62" height="32">5'h0</TD>
|
<TD width="134" height="32">5'h0</TD>
|
<TD width="134" height="32">5'h0</TD>
|
<TD width="94" height="32">6'b001000</TD>
|
<TD width="94" height="32">6'b001000</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>LB -- <I>Load byte</I></H3>
|
<H3>LB -- <I>Load byte</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>A signed extented byte is loaded into a register from the specified address.
|
<TD>A signed extented byte is loaded into a register from the specified address.
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$t = MEM[$s + imm]; ;
|
<TD>$t = MEM[$s + imm]; ;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>lb $t, imm($s)
|
<TD>lb $t, imm($s)
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="507">
|
<TABLE border="1" width="507">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b100000</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b100000</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>LBU -- <I>Load byte unsigned</I></H3>
|
<H3>LBU -- <I>Load byte unsigned</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
|
|
<TD>A unsigned extented byte is loaded into a register from the specified address.
|
<TD>A unsigned extented byte is loaded into a register from the specified address.
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
|
|
<TD>$t = MEM[$s + imm]; ;
|
<TD>$t = MEM[$s + imm]; ;
|
|
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
|
|
<TD>lbu $t, imm($s)
|
<TD>lbu $t, imm($s)
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="507">
|
<TABLE border="1" width="507">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b100100</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b100100</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<P><BR>
|
<P><BR>
|
</P>
|
</P>
|
<H3>LH -- <I>Load Half</I></H3>
|
<H3>LH -- <I>Load Half</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
|
|
<TD>A signed extented half word is loaded into a register from the specified
|
<TD>A signed extented half word is loaded into a register from the specified
|
address.
|
address.
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
|
|
<TD>$t = MEM[$s + imm]; ;
|
<TD>$t = MEM[$s + imm]; ;
|
|
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
|
|
<TD>lh $t, imm($s)
|
<TD>lh $t, imm($s)
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="507">
|
<TABLE border="1" width="507">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b100001</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b100001</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<P><BR>
|
<P><BR>
|
</P>
|
</P>
|
<H3>LHU -- <I>Load Half unsigned</I></H3>
|
<H3>LHU -- <I>Load Half unsigned</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
|
|
|
|
<TD>A byte is loaded into a register from the specified address.
|
<TD>A byte is loaded into a register from the specified address.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
|
|
|
|
<TD>$t = MEM[$s + imm]; ;
|
<TD>$t = MEM[$s + imm]; ;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
|
|
|
|
<TD>lhu $t, imm($s)
|
<TD>lhu $t, imm($s)
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="507">
|
<TABLE border="1" width="507">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b100101</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b100101</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<P><BR>
|
<P><BR>
|
</P>
|
</P>
|
<H3>LUI -- <I>Load upper immediate</I></H3>
|
<H3>LUI -- <I>Load upper immediate</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>The immediate value is shifted left 16 bits and stored in the register. The
|
<TD>The immediate value is shifted left 16 bits and stored in the register. The
|
lower 16 bits are zeroes.
|
lower 16 bits are zeroes.
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$t = (imm << 16);
|
<TD>$t = (imm << 16);
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>lui $t, imm
|
<TD>lui $t, imm
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="634">
|
<TABLE border="1" width="634">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b001111</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b001111</CODE></TD>
|
<TD width="25" height="30">?????</TD>
|
<TD width="25" height="30">?????</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>LW -- <I>Load word</I></H3>
|
<H3>LW -- <I>Load word</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>A word is loaded into a register from the specified address.
|
<TD>A word is loaded into a register from the specified address.
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$t = MEM[$s + imm];
|
<TD>$t = MEM[$s + imm];
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>lw $t, imm($s)
|
<TD>lw $t, imm($s)
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="507">
|
<TABLE border="1" width="507">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b100011</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b100011</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>MFHI -- <I>Move from HI</I></H3>
|
<H3>MFHI -- <I>Move from HI</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>The contents of register HI are moved to the specified register.
|
<TD>The contents of register HI are moved to the specified register.
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$d = $HI;
|
<TD>$d = $HI;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>mfhi $d
|
<TD>mfhi $d
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="524">
|
<TABLE border="1" width="524">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="100" height="39">OPCODE</TD>
|
<TD width="100" height="39">OPCODE</TD>
|
<TD width="31" height="39">Source</TD>
|
<TD width="31" height="39">Source</TD>
|
<TD width="52" height="39">Target</TD>
|
<TD width="52" height="39">Target</TD>
|
<TD width="62" height="39">Destination</TD>
|
<TD width="62" height="39">Destination</TD>
|
<TD width="134" height="39">Shift</TD>
|
<TD width="134" height="39">Shift</TD>
|
<TD width="94" height="39">Function</TD>
|
<TD width="94" height="39">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="100" height="32">6fbOOOOOO</TD>
|
<TD width="100" height="32">6fbOOOOOO</TD>
|
<TD width="31" height="32">5'h0</TD>
|
<TD width="31" height="32">5'h0</TD>
|
<TD width="52" height="32">5'h0</TD>
|
<TD width="52" height="32">5'h0</TD>
|
<TD width="62" height="32">5bit</TD>
|
<TD width="62" height="32">5bit</TD>
|
<TD width="134" height="32">5'h0</TD>
|
<TD width="134" height="32">5'h0</TD>
|
<TD width="94" height="32">6'b010000</TD>
|
<TD width="94" height="32">6'b010000</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>MFLO -- <I>Move from LO</I></H3>
|
<H3>MFLO -- <I>Move from LO</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>The contents of register LO are moved to the specified register.
|
<TD>The contents of register LO are moved to the specified register.
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$d = $LO;
|
<TD>$d = $LO;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>mflo $d
|
<TD>mflo $d
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="524">
|
<TABLE border="1" width="524">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="100" height="39">OPCODE</TD>
|
<TD width="100" height="39">OPCODE</TD>
|
<TD width="31" height="39">Source</TD>
|
<TD width="31" height="39">Source</TD>
|
<TD width="52" height="39">Target</TD>
|
<TD width="52" height="39">Target</TD>
|
<TD width="62" height="39">Destination</TD>
|
<TD width="62" height="39">Destination</TD>
|
<TD width="134" height="39">Shift</TD>
|
<TD width="134" height="39">Shift</TD>
|
<TD width="94" height="39">Function</TD>
|
<TD width="94" height="39">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="100" height="32">6fbOOOOOO</TD>
|
<TD width="100" height="32">6fbOOOOOO</TD>
|
<TD width="31" height="32">5'h0</TD>
|
<TD width="31" height="32">5'h0</TD>
|
<TD width="52" height="32">5'h0</TD>
|
<TD width="52" height="32">5'h0</TD>
|
<TD width="62" height="32">5bit</TD>
|
<TD width="62" height="32">5bit</TD>
|
<TD width="134" height="32">5'h0</TD>
|
<TD width="134" height="32">5'h0</TD>
|
<TD width="94" height="32">6'b010010</TD>
|
<TD width="94" height="32">6'b010010</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3><FONT color="#ff0000">MTHI -- Move to HI</FONT></H3>
|
<H3><FONT color="#ff0000">MTHI -- Move to HI</FONT></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
|
|
<TD>The contents of register $s are moved to $HI.
|
<TD>The contents of register $s are moved to $HI.
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
|
|
<TD> $HI=$s;
|
<TD> $HI=$s;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
|
|
<TD>mthi $s
|
<TD>mthi $s
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="524">
|
<TABLE border="1" width="524">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="100" height="39">OPCODE</TD>
|
<TD width="100" height="39">OPCODE</TD>
|
<TD width="31" height="39">Source</TD>
|
<TD width="31" height="39">Source</TD>
|
<TD width="52" height="39">Target</TD>
|
<TD width="52" height="39">Target</TD>
|
<TD width="62" height="39">Destination</TD>
|
<TD width="62" height="39">Destination</TD>
|
<TD width="134" height="39">Shift</TD>
|
<TD width="134" height="39">Shift</TD>
|
<TD width="94" height="39">Function</TD>
|
<TD width="94" height="39">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="100" height="32">6fbOOOOOO</TD>
|
<TD width="100" height="32">6fbOOOOOO</TD>
|
<TD width="31" height="32">5'bit</TD>
|
<TD width="31" height="32">5'bit</TD>
|
<TD width="52" height="32">5'h0</TD>
|
<TD width="52" height="32">5'h0</TD>
|
<TD width="62" height="32">5'h0</TD>
|
<TD width="62" height="32">5'h0</TD>
|
<TD width="134" height="32">5'h0</TD>
|
<TD width="134" height="32">5'h0</TD>
|
<TD width="94" height="32">6'b010001</TD>
|
<TD width="94" height="32">6'b010001</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3><FONT color="#ff0000">MTLO -- Move to LO</FONT></H3>
|
<H3><FONT color="#ff0000">MTLO -- Move to LO</FONT></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
|
|
|
|
<TD>The contents of register $s are moved to $HI.
|
<TD>The contents of register $s are moved to $HI.
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
|
|
|
|
<TD>$LO=$s;
|
<TD>$LO=$s;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
|
|
|
|
<TD>mtlo $s
|
<TD>mtlo $s
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="524">
|
<TABLE border="1" width="524">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="100" height="39">OPCODE</TD>
|
<TD width="100" height="39">OPCODE</TD>
|
<TD width="31" height="39">Source</TD>
|
<TD width="31" height="39">Source</TD>
|
<TD width="52" height="39">Target</TD>
|
<TD width="52" height="39">Target</TD>
|
<TD width="62" height="39">Destination</TD>
|
<TD width="62" height="39">Destination</TD>
|
<TD width="134" height="39">Shift</TD>
|
<TD width="134" height="39">Shift</TD>
|
<TD width="94" height="39">Function</TD>
|
<TD width="94" height="39">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="100" height="32">6fbOOOOOO</TD>
|
<TD width="100" height="32">6fbOOOOOO</TD>
|
<TD width="31" height="32">5'bit</TD>
|
<TD width="31" height="32">5'bit</TD>
|
<TD width="52" height="32">5'h0</TD>
|
<TD width="52" height="32">5'h0</TD>
|
<TD width="62" height="32">5'h0</TD>
|
<TD width="62" height="32">5'h0</TD>
|
<TD width="134" height="32">5'h0</TD>
|
<TD width="134" height="32">5'h0</TD>
|
<TD width="94" height="32">6'b010011</TD>
|
<TD width="94" height="32">6'b010011</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<P><BR>
|
<P><BR>
|
</P>
|
</P>
|
<H3>MULT -- <I>Multiply</I></H3>
|
<H3>MULT -- <I>Multiply</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Multiplies $s by $t and stores the result in $LO.
|
<TD>Multiplies $s by $t and stores the result in $LO.
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$LO = $s * $t;
|
<TD>$LO = $s * $t;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>mult $s, $t
|
<TD>mult $s, $t
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="515">
|
<TABLE border="1" width="515">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="99" height="25">OPCODE</TD>
|
<TD width="99" height="25">OPCODE</TD>
|
<TD width="30" height="25">Source</TD>
|
<TD width="30" height="25">Source</TD>
|
<TD width="82" height="25">Target</TD>
|
<TD width="82" height="25">Target</TD>
|
<TD width="62" height="25">Destination</TD>
|
<TD width="62" height="25">Destination</TD>
|
<TD width="134" height="25">Shift</TD>
|
<TD width="134" height="25">Shift</TD>
|
<TD width="115" height="25">Function</TD>
|
<TD width="115" height="25">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="99" height="42">6fbOOOOOO</TD>
|
<TD width="99" height="42">6fbOOOOOO</TD>
|
<TD width="30" height="42">5bit</TD>
|
<TD width="30" height="42">5bit</TD>
|
<TD width="82" height="42">5bit</TD>
|
<TD width="82" height="42">5bit</TD>
|
<TD width="62" height="42">5'h0</TD>
|
<TD width="62" height="42">5'h0</TD>
|
<TD width="134" height="42">5'h0</TD>
|
<TD width="134" height="42">5'h0</TD>
|
<TD width="115" height="42">6'b011000</TD>
|
<TD width="115" height="42">6'b011000</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>MULTU -- <I>Multiply unsigned</I></H3>
|
<H3>MULTU -- <I>Multiply unsigned</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Multiplies $s by $t and stores the result in $LO.
|
<TD>Multiplies $s by $t and stores the result in $LO.
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$LO = $s * $t;
|
<TD>$LO = $s * $t;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>multu $s, $t
|
<TD>multu $s, $t
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="515">
|
<TABLE border="1" width="515">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="99" height="25">OPCODE</TD>
|
<TD width="99" height="25">OPCODE</TD>
|
<TD width="30" height="25">Source</TD>
|
<TD width="30" height="25">Source</TD>
|
<TD width="82" height="25">Target</TD>
|
<TD width="82" height="25">Target</TD>
|
<TD width="62" height="25">Destination</TD>
|
<TD width="62" height="25">Destination</TD>
|
<TD width="134" height="25">Shift</TD>
|
<TD width="134" height="25">Shift</TD>
|
<TD width="115" height="25">Function</TD>
|
<TD width="115" height="25">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="99" height="42">6fbOOOOOO</TD>
|
<TD width="99" height="42">6fbOOOOOO</TD>
|
<TD width="30" height="42">5bit</TD>
|
<TD width="30" height="42">5bit</TD>
|
<TD width="82" height="42">5bit</TD>
|
<TD width="82" height="42">5bit</TD>
|
<TD width="62" height="42">5'h0</TD>
|
<TD width="62" height="42">5'h0</TD>
|
<TD width="134" height="42">5'h0</TD>
|
<TD width="134" height="42">5'h0</TD>
|
<TD width="115" height="42">6'b011001</TD>
|
<TD width="115" height="42">6'b011001</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>NOR -- <I>Bitwise nor</I></H3>
|
<H3>NOR -- <I>Bitwise nor</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
|
|
<TD>Bitwise logical nors two registers and stores the result in a register
|
<TD>Bitwise logical nors two registers and stores the result in a register
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
|
|
<TD>$d = ~($s | $t);
|
<TD>$d = ~($s | $t);
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
|
|
<TD>nor $d, $s, $t
|
<TD>nor $d, $s, $t
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="476">
|
<TABLE border="1" width="476">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD height="42">Function</TD>
|
<TD height="42">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="134" height="25">5'h0</TD>
|
<TD width="134" height="25">5'h0</TD>
|
<TD height="25">6'b100111</TD>
|
<TD height="25">6'b100111</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<P>
|
<P>
|
<BR>
|
<BR>
|
</P>
|
</P>
|
<H3>OR -- <I>Bitwise or</I></H3>
|
<H3>OR -- <I>Bitwise or</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Bitwise logical ors two registers and stores the result in a register
|
<TD>Bitwise logical ors two registers and stores the result in a register
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$d = $s | $t;
|
<TD>$d = $s | $t;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>or $d, $s, $t
|
<TD>or $d, $s, $t
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="476">
|
<TABLE border="1" width="476">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD height="42">Function</TD>
|
<TD height="42">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="134" height="25">5'h0</TD>
|
<TD width="134" height="25">5'h0</TD>
|
<TD height="25">6'b100101</TD>
|
<TD height="25">6'b100101</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>ORI -- <I>Bitwise or immediate</I></H3>
|
<H3>ORI -- <I>Bitwise or immediate</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Bitwise ors a register and an immediate value and stores the result in a
|
<TD>Bitwise ors a register and an immediate value and stores the result in a
|
register
|
register
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$t = $s | imm;
|
<TD>$t = $s | imm;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>ori $t, $s, imm
|
<TD>ori $t, $s, imm
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="507">
|
<TABLE border="1" width="507">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="34">OPCODE</TD>
|
<TD width="93" height="34">OPCODE</TD>
|
<TD width="25" height="34">Source</TD>
|
<TD width="25" height="34">Source</TD>
|
<TD width="82" height="34">Target</TD>
|
<TD width="82" height="34">Target</TD>
|
<TD colspan="4" width="261" height="34">Immediate</TD>
|
<TD colspan="4" width="261" height="34">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="31"><CODE>6'b001101</CODE></TD>
|
<TD width="93" height="31"><CODE>6'b001101</CODE></TD>
|
<TD width="25" height="31">5bit</TD>
|
<TD width="25" height="31">5bit</TD>
|
<TD width="82" height="31">5bit</TD>
|
<TD width="82" height="31">5bit</TD>
|
<TD colspan="4" width="261" height="31">16bit</TD>
|
<TD colspan="4" width="261" height="31">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>SB -- <I>Store byte</I></H3>
|
<H3>SB -- <I>Store byte</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>The least significant byte of $t is stored at the specified address.
|
<TD>The least significant byte of $t is stored at the specified address.
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>MEM[$s + imm] = (0xff & $t);
|
<TD>MEM[$s + imm] = (0xff & $t);
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>sb $t, imm($s)
|
<TD>sb $t, imm($s)
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="507">
|
<TABLE border="1" width="507">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b101000</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b101000</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>SH -- <I>Store Half</I></H3>
|
<H3>SH -- <I>Store Half</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
|
|
<TD>The least significant half word of $t is stored at the specified address.
|
<TD>The least significant half word of $t is stored at the specified address.
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
|
|
<TD>MEM[$s + imm] = (0xffff & $t);
|
<TD>MEM[$s + imm] = (0xffff & $t);
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
|
|
<TD>sh $t, imm($s)
|
<TD>sh $t, imm($s)
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="507">
|
<TABLE border="1" width="507">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b101001</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b101001</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<P><BR>
|
<P><BR>
|
</P>
|
</P>
|
<H3>SLL -- <I>Shift left logical </I></H3>
|
<H3>SLL -- <I>Shift left logical </I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Shifts a register value left by the shift amount listed in the instruction
|
<TD>Shifts a register value left by the shift amount listed in the instruction
|
and places the result in a third register. Zeroes are shifted in.
|
and places the result in a third register. Zeroes are shifted in.
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$d = $t << h;
|
<TD>$d = $t << h;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>sll $d, $t, h
|
<TD>sll $d, $t, h
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="779">
|
<TABLE border="1" width="779">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="98" height="38">OPCODE</TD>
|
<TD width="98" height="38">OPCODE</TD>
|
<TD width="32" height="38">Source</TD>
|
<TD width="32" height="38">Source</TD>
|
<TD width="82" height="38">Target</TD>
|
<TD width="82" height="38">Target</TD>
|
<TD width="62" height="38">Destination</TD>
|
<TD width="62" height="38">Destination</TD>
|
<TD width="134" height="38">Shift</TD>
|
<TD width="134" height="38">Shift</TD>
|
<TD width="388" height="38">Function</TD>
|
<TD width="388" height="38">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="98" height="36">6fbOOOOOO</TD>
|
<TD width="98" height="36">6fbOOOOOO</TD>
|
<TD width="32" height="36">5bit</TD>
|
<TD width="32" height="36">5bit</TD>
|
<TD width="82" height="36">5bit</TD>
|
<TD width="82" height="36">5bit</TD>
|
<TD width="62" height="36">5bit</TD>
|
<TD width="62" height="36">5bit</TD>
|
<TD width="134" height="36">h</TD>
|
<TD width="134" height="36">h</TD>
|
<TD width="388" height="36">6'b000000</TD>
|
<TD width="388" height="36">6'b000000</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>SLLV -- <I>Shift left logical variable</I></H3>
|
<H3>SLLV -- <I>Shift left logical variable</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Shifts a register value left by the value in a second register and places
|
<TD>Shifts a register value left by the value in a second register and places
|
the result in a third register. Zeroes are shifted in.
|
the result in a third register. Zeroes are shifted in.
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$d = $t << $s;
|
<TD>$d = $t << $s;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>sllv $d, $t, $s
|
<TD>sllv $d, $t, $s
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="775">
|
<TABLE border="1" width="775">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="98" height="37">OPCODE</TD>
|
<TD width="98" height="37">OPCODE</TD>
|
<TD width="32" height="37">Source</TD>
|
<TD width="32" height="37">Source</TD>
|
<TD width="82" height="37">Target</TD>
|
<TD width="82" height="37">Target</TD>
|
<TD width="62" height="37">Destination</TD>
|
<TD width="62" height="37">Destination</TD>
|
<TD width="134" height="37">Shift</TD>
|
<TD width="134" height="37">Shift</TD>
|
<TD width="415" height="37">Function</TD>
|
<TD width="415" height="37">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="98" height="37">6fbOOOOOO</TD>
|
<TD width="98" height="37">6fbOOOOOO</TD>
|
<TD width="32" height="37">5bit</TD>
|
<TD width="32" height="37">5bit</TD>
|
<TD width="82" height="37">5bit</TD>
|
<TD width="82" height="37">5bit</TD>
|
<TD width="62" height="37">5bit</TD>
|
<TD width="62" height="37">5bit</TD>
|
<TD width="134" height="37">?????</TD>
|
<TD width="134" height="37">?????</TD>
|
<TD width="415" height="37">6'b000100</TD>
|
<TD width="415" height="37">6'b000100</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>SLT -- <I>Set on less than (signed)</I></H3>
|
<H3>SLT -- <I>Set on less than (signed)</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>If $s is less than $t, $d is set to one. It gets zero otherwise.
|
<TD>If $s is less than $t, $d is set to one. It gets zero otherwise.
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>if $s < $t $d = 1; else $d = 0;
|
<TD>if $s < $t $d = 1; else $d = 0;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>slt $d, $s, $t
|
<TD>slt $d, $s, $t
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="476">
|
<TABLE border="1" width="476">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD height="42">Function</TD>
|
<TD height="42">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="134" height="25">5'h0</TD>
|
<TD width="134" height="25">5'h0</TD>
|
<TD height="25">6'b101010</TD>
|
<TD height="25">6'b101010</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>SLTI -- <I>Set on less than immediate (signed)</I></H3>
|
<H3>SLTI -- <I>Set on less than immediate (signed)</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>If $s is less than immediate, $t is set to one. It gets zero otherwise.
|
<TD>If $s is less than immediate, $t is set to one. It gets zero otherwise.
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>if $s < imm $t = 1; else $t = 0;
|
<TD>if $s < imm $t = 1; else $t = 0;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>slti $t, $s, imm
|
<TD>slti $t, $s, imm
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="530">
|
<TABLE border="1" width="530">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b001010</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b001010</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>SLTIU -- <I>Set on less than immediate unsigned</I></H3>
|
<H3>SLTIU -- <I>Set on less than immediate unsigned</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>If $s is less than the unsigned immediate, $t is set to one. It gets zero
|
<TD>If $s is less than the unsigned immediate, $t is set to one. It gets zero
|
otherwise.
|
otherwise.
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>if $s < imm $t = 1; else $t = 0;
|
<TD>if $s < imm $t = 1; else $t = 0;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>sltiu $t, $s, imm
|
<TD>sltiu $t, $s, imm
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="530">
|
<TABLE border="1" width="530">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b001011</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b001011</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>SLTU -- <I>Set on less than unsigned</I></H3>
|
<H3>SLTU -- <I>Set on less than unsigned</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>If $s is less than $t, $d is set to one. It gets zero otherwise.
|
<TD>If $s is less than $t, $d is set to one. It gets zero otherwise.
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>if $s < $t $d = 1; else $d = 0;
|
<TD>if $s < $t $d = 1; else $d = 0;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>sltu $d, $s, $t
|
<TD>sltu $d, $s, $t
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="476">
|
<TABLE border="1" width="476">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD height="42">Function</TD>
|
<TD height="42">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="134" height="25">5'h0</TD>
|
<TD width="134" height="25">5'h0</TD>
|
<TD height="25">6'b101011</TD>
|
<TD height="25">6'b101011</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>SRA -- <I>Shift right arithmetic</I></H3>
|
<H3>SRA -- <I>Shift right arithmetic</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Shifts a register value right by the shift amount (shamt) and places the
|
<TD>Shifts a register value right by the shift amount (shamt) and places the
|
value in the destination register. The sign bit is shifted in.
|
value in the destination register. The sign bit is shifted in.
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$d = $t >> h;
|
<TD>$d = $t >> h;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>sra $d, $t, h
|
<TD>sra $d, $t, h
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="775">
|
<TABLE border="1" width="775">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD width="415" height="42">Function</TD>
|
<TD width="415" height="42">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="98" height="32">6fbOOOOOO</TD>
|
<TD width="98" height="32">6fbOOOOOO</TD>
|
<TD width="32" height="32">5bit</TD>
|
<TD width="32" height="32">5bit</TD>
|
<TD width="82" height="32">5bit</TD>
|
<TD width="82" height="32">5bit</TD>
|
<TD width="62" height="32">5bit</TD>
|
<TD width="62" height="32">5bit</TD>
|
<TD width="134" height="32">h</TD>
|
<TD width="134" height="32">h</TD>
|
<TD width="415" height="32">6'b000011</TD>
|
<TD width="415" height="32">6'b000011</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<P><BR>
|
<P><BR>
|
</P>
|
</P>
|
<H3>SRAV -- <I>Shift right arithmatic variable</I></H3>
|
<H3>SRAV -- <I>Shift right arithmatic variable</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
|
|
<TD>Shifts a register value right by the value in a second register and places
|
<TD>Shifts a register value right by the value in a second register and places
|
the result in a third register. the sign bit is shifterd in.
|
the result in a third register. the sign bit is shifterd in.
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
|
|
<TD>$d = $t >> $s;
|
<TD>$d = $t >> $s;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
|
|
<TD>srav $d, $t, $s
|
<TD>srav $d, $t, $s
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="775">
|
<TABLE border="1" width="775">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="98" height="37">OPCODE</TD>
|
<TD width="98" height="37">OPCODE</TD>
|
<TD width="32" height="37">Source</TD>
|
<TD width="32" height="37">Source</TD>
|
<TD width="82" height="37">Target</TD>
|
<TD width="82" height="37">Target</TD>
|
<TD width="62" height="37">Destination</TD>
|
<TD width="62" height="37">Destination</TD>
|
<TD width="134" height="37">Shift</TD>
|
<TD width="134" height="37">Shift</TD>
|
<TD width="415" height="37">Function</TD>
|
<TD width="415" height="37">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="98" height="37">6fbOOOOOO</TD>
|
<TD width="98" height="37">6fbOOOOOO</TD>
|
<TD width="32" height="37">5bit</TD>
|
<TD width="32" height="37">5bit</TD>
|
<TD width="82" height="37">5bit</TD>
|
<TD width="82" height="37">5bit</TD>
|
<TD width="62" height="37">5bit</TD>
|
<TD width="62" height="37">5bit</TD>
|
<TD width="134" height="37">?????</TD>
|
<TD width="134" height="37">?????</TD>
|
<TD width="415" height="37">6'b000111</TD>
|
<TD width="415" height="37">6'b000111</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<P><BR>
|
<P><BR>
|
</P>
|
</P>
|
<H3>SRL -- <I>Shift right logical</I></H3>
|
<H3>SRL -- <I>Shift right logical</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Shifts a register value right by the shift amount (shamt) and places the
|
<TD>Shifts a register value right by the shift amount (shamt) and places the
|
value in the destination register. Zeroes are shifted in.
|
value in the destination register. Zeroes are shifted in.
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$d = $t >> h;
|
<TD>$d = $t >> h;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>srl $d, $t, h
|
<TD>srl $d, $t, h
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="476">
|
<TABLE border="1" width="476">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD height="42">Function</TD>
|
<TD height="42">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="134" height="25">h</TD>
|
<TD width="134" height="25">h</TD>
|
<TD height="25">6'b000010</TD>
|
<TD height="25">6'b000010</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>SRLV -- <I>Shift right logical variable</I></H3>
|
<H3>SRLV -- <I>Shift right logical variable</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Shifts a register value right by the amount specified in $s and places the
|
<TD>Shifts a register value right by the amount specified in $s and places the
|
value in the destination register. Zeroes are shifted in.
|
value in the destination register. Zeroes are shifted in.
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$d = $t >> $s;
|
<TD>$d = $t >> $s;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>srlv $d, $t, $s
|
<TD>srlv $d, $t, $s
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="476">
|
<TABLE border="1" width="476">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD height="42">Function</TD>
|
<TD height="42">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="134" height="25">5'h0</TD>
|
<TD width="134" height="25">5'h0</TD>
|
<TD height="25">6'b000110</TD>
|
<TD height="25">6'b000110</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>SUB -- <I>Subtract</I></H3>
|
<H3>SUB -- <I>Subtract</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Subtracts two registers and stores the result in a register<FONT color="#ff0000">(Exception by Overflow)</FONT>
|
<TD>Subtracts two registers and stores the result in a register<FONT color="#ff0000">(Exception by Overflow)</FONT>
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$d = $s - $t;
|
<TD>$d = $s - $t;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>sub $d, $s, $t
|
<TD>sub $d, $s, $t
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="476">
|
<TABLE border="1" width="476">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD height="42">Function</TD>
|
<TD height="42">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="134" height="25">5'h0</TD>
|
<TD width="134" height="25">5'h0</TD>
|
<TD height="25">6'b100010</TD>
|
<TD height="25">6'b100010</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>SUBU -- <I>Subtract unsigned</I></H3>
|
<H3>SUBU -- <I>Subtract unsigned</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Subtracts two registers and stores the result in a register
|
<TD>Subtracts two registers and stores the result in a register
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$d = $s - $t;
|
<TD>$d = $s - $t;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>subu $d, $s, $t
|
<TD>subu $d, $s, $t
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="476">
|
<TABLE border="1" width="476">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD height="42">Function</TD>
|
<TD height="42">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="134" height="25">5'h0</TD>
|
<TD width="134" height="25">5'h0</TD>
|
<TD height="25">6'b100011</TD>
|
<TD height="25">6'b100011</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>SW -- <I>Store word</I></H3>
|
<H3>SW -- <I>Store word</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>The contents of $t is stored at the specified address.
|
<TD>The contents of $t is stored at the specified address.
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>MEM[$s + imm] = $t;
|
<TD>MEM[$s + imm] = $t;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>sw $t, imm($s)
|
<TD>sw $t, imm($s)
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="507">
|
<TABLE border="1" width="507">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b101011</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b101011</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3><FONT color="#ff0000">SYSCALL -- System call</FONT></H3>
|
<H3><FONT color="#ff0000">SYSCALL -- System call</FONT></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Generates a software interrupt.
|
<TD>Generates a software interrupt.
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>
|
<TD>
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>syscall
|
<TD>syscall
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="476">
|
<TABLE border="1" width="476">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD height="42">Function</TD>
|
<TD height="42">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="32" height="25">?????</TD>
|
<TD width="32" height="25">?????</TD>
|
<TD width="82" height="25">?????</TD>
|
<TD width="82" height="25">?????</TD>
|
<TD width="62" height="25">?????</TD>
|
<TD width="62" height="25">?????</TD>
|
<TD width="134" height="25">?????</TD>
|
<TD width="134" height="25">?????</TD>
|
<TD height="25">6'b001100</TD>
|
<TD height="25">6'b001100</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>XOR -- <I>Bitwise exclusive or</I></H3>
|
<H3>XOR -- <I>Bitwise exclusive or</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Exclusive ors two registers and stores the result in a register
|
<TD>Exclusive ors two registers and stores the result in a register
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$d = $s ^ $t;
|
<TD>$d = $s ^ $t;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>xor $d, $s, $t
|
<TD>xor $d, $s, $t
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="476">
|
<TABLE border="1" width="476">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="98" height="42">OPCODE</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="32" height="42">Source</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="82" height="42">Target</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="62" height="42">Destination</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD width="134" height="42">Shift</TD>
|
<TD height="42">Function</TD>
|
<TD height="42">Function</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="98" height="25">6fbOOOOOO</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="32" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="82" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="62" height="25">5bit</TD>
|
<TD width="134" height="25">?????</TD>
|
<TD width="134" height="25">?????</TD>
|
<TD height="25">6'b100110</TD>
|
<TD height="25">6'b100110</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<H3>XORI -- <I>Bitwise exclusive or immediate</I></H3>
|
<H3>XORI -- <I>Bitwise exclusive or immediate</I></H3>
|
<TABLE border=1>
|
<TABLE border=1>
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD>Description:
|
<TD>Description:
|
|
|
|
|
<TD>Bitwise exclusive ors a register and an immediate value and stores the
|
<TD>Bitwise exclusive ors a register and an immediate value and stores the
|
result in a register
|
result in a register
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Operation:
|
<TD>Operation:
|
|
|
|
|
<TD>$t = $s ^ imm;
|
<TD>$t = $s ^ imm;
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Syntax:
|
<TD>Syntax:
|
|
|
|
|
<TD>xori $t, $s, imm
|
<TD>xori $t, $s, imm
|
|
|
|
|
|
|
|
|
<TR>
|
<TR>
|
<TD>Encoding:
|
<TD>Encoding:
|
|
|
|
|
<TD>
|
<TD>
|
<TABLE border="1" width="577">
|
<TABLE border="1" width="577">
|
<TBODY>
|
<TBODY>
|
<TR>
|
<TR>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="93" height="35">OPCODE</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="25" height="35">Source</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD width="82" height="35">Target</TD>
|
<TD colspan="4">Immediate</TD>
|
<TD colspan="4">Immediate</TD>
|
</TR>
|
</TR>
|
<TR>
|
<TR>
|
<TD width="93" height="30"><CODE>6'b001110</CODE></TD>
|
<TD width="93" height="30"><CODE>6'b001110</CODE></TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="25" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD width="82" height="30">5bit</TD>
|
<TD colspan="4">16bit</TD>
|
<TD colspan="4">16bit</TD>
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
|
|
|
|
</TR>
|
</TR>
|
</TBODY>
|
</TBODY>
|
</TABLE>
|
</TABLE>
|
<P><BR>
|
<P><BR>
|
<BR>
|
<BR>
|
</P>
|
</P>
|
</BODY>
|
</BODY>
|
|
|