URL
https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk
Subversion Repositories open8_urisc
[/] [open8_urisc/] [trunk/] [Documents/] [CPU Instruction Set_files/] [sheet001.htm] - Rev 241
Go to most recent revision | Compare with Previous | Blame | View Log
<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Excel.Sheet>
<meta name=Generator content="Microsoft Excel 12">
<link id=Main-File rel=Main-File href="../CPU%20Instruction%20Set.htm">
<link rel=File-List href=filelist.xml>
<link rel=Stylesheet href=stylesheet.css>
<style>
<!--table
{mso-displayed-decimal-separator:"\.";
mso-displayed-thousand-separator:"\,";}
@page
{margin:.75in .7in .75in .7in;
mso-header-margin:.3in;
mso-footer-margin:.3in;}
-->
</style>
<![if !supportTabStrip]><script language="JavaScript">
<!--
function fnUpdateTabs()
{
if (parent.window.g_iIEVer>=4) {
if (parent.document.readyState=="complete"
&& parent.frames['frTabs'].document.readyState=="complete")
parent.fnSetActiveSheet(0);
else
window.setTimeout("fnUpdateTabs();",150);
}
}
if (window.name!="frSheet")
window.location.replace("../CPU%20Instruction%20Set.htm");
else
fnUpdateTabs();
//-->
</script>
<![endif]>
</head>
<body link=blue vlink=purple>
<table border=0 cellpadding=0 cellspacing=0 width=1180 style='border-collapse:
collapse;table-layout:fixed;width:887pt'>
<col width=86 style='mso-width-source:userset;mso-width-alt:3145;width:65pt'>
<col class=xl67 width=74 style='mso-width-source:userset;mso-width-alt:2706;
width:56pt'>
<col class=xl67 width=61 style='mso-width-source:userset;mso-width-alt:2230;
width:46pt'>
<col class=xl66 width=64 style='width:48pt'>
<col class=xl68 width=670 style='mso-width-source:userset;mso-width-alt:24502;
width:503pt'>
<col width=64 style='width:48pt'>
<col width=97 style='mso-width-source:userset;mso-width-alt:3547;width:73pt'>
<col class=xl65 width=64 style='width:48pt'>
<tr height=20 style='height:15.0pt'>
<td height=20 width=86 style='height:15.0pt;width:65pt'></td>
<td class=xl67 width=74 style='width:56pt'></td>
<td class=xl67 width=61 style='width:46pt'></td>
<td class=xl107 colspan=2 width=734 style='mso-ignore:colspan;width:551pt'>Open8
Instruction Set</td>
<td width=64 style='width:48pt'></td>
<td width=97 style='width:73pt'></td>
<td class=xl65 width=64 style='width:48pt'></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 style='height:15.0pt'></td>
<td colspan=2 class=xl67 style='mso-ignore:colspan'></td>
<td class=xl66></td>
<td class=xl68></td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl69 style='height:15.0pt'>Instruction</td>
<td class=xl70>Opcode</td>
<td class=xl70>Operand</td>
<td class=xl71>Flags</td>
<td class=xl72 width=670 style='width:503pt'>Description</td>
<td></td>
<td class=xl105>Legend</td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl76 style='height:15.0pt;border-top:none'>INC R0-07</td>
<td class=xl77 style='border-top:none;border-left:none'>00000</td>
<td class=xl77 style='border-top:none;border-left:none'>xxx</td>
<td class=xl77 style='border-top:none;border-left:none'>N,C,Z</td>
<td class=xl78 width=670 style='border-top:none;border-left:none;width:503pt'>Increment
Register (Rn + 1 -> Rn)</td>
<td></td>
<td class=xl76>ALU/MATH</td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl76 style='height:15.0pt;border-top:none'>ADC R0-07</td>
<td class=xl77 style='border-top:none;border-left:none'>00001</td>
<td class=xl77 style='border-top:none;border-left:none'>xxx</td>
<td class=xl77 style='border-top:none;border-left:none'>N,C,Z</td>
<td class=xl78 width=670 style='border-top:none;border-left:none;width:503pt'>Add
with Carry (Rn + R0 + C -> R0)</td>
<td></td>
<td class=xl79 style='border-top:none'>LOAD/STORE</td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl76 style='height:15.0pt;border-top:none'>TX0 R0-R7</td>
<td class=xl77 style='border-top:none;border-left:none'>00010</td>
<td class=xl77 style='border-top:none;border-left:none'>xxx</td>
<td class=xl77 style='border-top:none;border-left:none'>N,Z</td>
<td class=xl78 width=670 style='border-top:none;border-left:none;width:503pt'>Transfer
Rn to R0 (Rn -> R0)</td>
<td></td>
<td class=xl82 style='border-top:none'>BRANCH</td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl76 style='height:15.0pt;border-top:none'>OR<span
style='mso-spacerun:yes'> </span>R0-R7</td>
<td class=xl77 style='border-top:none;border-left:none'>00011</td>
<td class=xl77 style='border-top:none;border-left:none'>xxx</td>
<td class=xl77 style='border-top:none;border-left:none'>N,Z</td>
<td class=xl78 width=670 style='border-top:none;border-left:none;width:503pt'>Logical
OR of Rn and R0 (Rn | R0 -> R0)</td>
<td></td>
<td class=xl94 style='border-top:none'>STACK/FLOW</td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl76 style='height:15.0pt;border-top:none'>AND R0-R7</td>
<td class=xl77 style='border-top:none;border-left:none'>00100</td>
<td class=xl77 style='border-top:none;border-left:none'>xxx</td>
<td class=xl77 style='border-top:none;border-left:none'>N,Z</td>
<td class=xl78 width=670 style='border-top:none;border-left:none;width:503pt'>Logical
AND of Rn and R0 (Rn & R0 -> R0)</td>
<td></td>
<td class=xl104 style='border-top:none'>SOFT INTS</td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl76 style='height:15.0pt;border-top:none'>CLR R0</td>
<td class=xl77 style='border-top:none;border-left:none'>00101</td>
<td class=xl77 style='border-top:none;border-left:none'>000</td>
<td class=xl77 style='border-top:none;border-left:none'>N,Z</td>
<td class=xl78 width=670 style='border-top:none;border-left:none;width:503pt'>Special
case of XOR (R0^R0 -> R0)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl76 style='height:15.0pt;border-top:none'>XOR R0-R7</td>
<td class=xl77 style='border-top:none;border-left:none'>00101</td>
<td class=xl77 style='border-top:none;border-left:none'>xxx</td>
<td class=xl77 style='border-top:none;border-left:none'>N,Z</td>
<td class=xl78 width=670 style='border-top:none;border-left:none;width:503pt'>Logical
XOR or Rn and R0 (Rn ^ R0 -> R0)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl76 style='height:15.0pt;border-top:none'>ROL R0-R7</td>
<td class=xl77 style='border-top:none;border-left:none'>00110</td>
<td class=xl77 style='border-top:none;border-left:none'>xxx</td>
<td class=xl77 style='border-top:none;border-left:none'>N,C,Z</td>
<td class=xl78 width=670 style='border-top:none;border-left:none;width:503pt'>Rotate
Rn Left (Rn<<1 -> Rn) (Note the carry is included in the
rotation:<span style='mso-spacerun:yes'> </span>Rn(6:0) & C -> Rn ;
Rn(7) -> C</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl76 style='height:15.0pt;border-top:none'>ROR R0-R7</td>
<td class=xl77 style='border-top:none;border-left:none'>00111</td>
<td class=xl77 style='border-top:none;border-left:none'>xxx</td>
<td class=xl77 style='border-top:none;border-left:none'>N,C,Z</td>
<td class=xl78 width=670 style='border-top:none;border-left:none;width:503pt'>Rotate
Rn Right (Rn>>1 -> Rn) (Note the carry is included in the
rotation:<span style='mso-spacerun:yes'> </span>C & Rn(7:1) -> Rn ;
Rn(0) -> C</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl76 style='height:15.0pt;border-top:none'>DEC R0-R7</td>
<td class=xl77 style='border-top:none;border-left:none'>01000</td>
<td class=xl77 style='border-top:none;border-left:none'>xxx</td>
<td class=xl77 style='border-top:none;border-left:none'>N,C,Z</td>
<td class=xl78 width=670 style='border-top:none;border-left:none;width:503pt'>Decrement
Rn (Rn - 1 -> Rn)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl76 style='height:15.0pt;border-top:none'>SBC R0-R7</td>
<td class=xl77 style='border-top:none;border-left:none'>01001</td>
<td class=xl77 style='border-top:none;border-left:none'>xxx</td>
<td class=xl77 style='border-top:none;border-left:none'>N,C,Z</td>
<td class=xl78 width=670 style='border-top:none;border-left:none;width:503pt'>Subtract
Rn from R0 with carry (R0 - Rn - C -> R0)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl76 style='height:15.0pt;border-top:none'>ADD R0-R7</td>
<td class=xl77 style='border-top:none;border-left:none'>01010</td>
<td class=xl77 style='border-top:none;border-left:none'>xxx</td>
<td class=xl77 style='border-top:none;border-left:none'>N,C,Z</td>
<td class=xl78 width=670 style='border-top:none;border-left:none;width:503pt'>Add
Rn and R0 (R0 + Rn -> R0)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl88 style='height:15.0pt;border-top:none'>STP PSR_Z</td>
<td class=xl89 style='border-top:none;border-left:none'>01011</td>
<td class=xl89 style='border-top:none;border-left:none'>000</td>
<td class=xl89 style='border-top:none;border-left:none'>Z</td>
<td class=xl90 width=670 style='border-top:none;border-left:none;width:503pt'>Set
the ZERO flag in the status register</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl88 style='height:15.0pt;border-top:none'>STP PSR_C</td>
<td class=xl89 style='border-top:none;border-left:none'>01011</td>
<td class=xl89 style='border-top:none;border-left:none'>001</td>
<td class=xl89 style='border-top:none;border-left:none'>C</td>
<td class=xl90 width=670 style='border-top:none;border-left:none;width:503pt'>Set
the CARRY flag in the status register</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl88 style='height:15.0pt;border-top:none'>STP PSR_N</td>
<td class=xl89 style='border-top:none;border-left:none'>01011</td>
<td class=xl89 style='border-top:none;border-left:none'>010</td>
<td class=xl89 style='border-top:none;border-left:none'>N</td>
<td class=xl90 width=670 style='border-top:none;border-left:none;width:503pt'>Set
the NEGATIVE bit in the status register</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl88 style='height:15.0pt;border-top:none'>STP PSR_I</td>
<td class=xl89 style='border-top:none;border-left:none'>01011</td>
<td class=xl89 style='border-top:none;border-left:none'>011</td>
<td class=xl89 style='border-top:none;border-left:none'>I</td>
<td class=xl90 width=670 style='border-top:none;border-left:none;width:503pt'>set
the INTERRUPT bit in the status register</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl88 style='height:15.0pt;border-top:none'>STP PSR_GP4</td>
<td class=xl89 style='border-top:none;border-left:none'>01011</td>
<td class=xl89 style='border-top:none;border-left:none'>100</td>
<td class=xl89 style='border-top:none;border-left:none'>4</td>
<td class=xl90 width=670 style='border-top:none;border-left:none;width:503pt'>Set
General Purpose Flag 1 in the status register</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl88 style='height:15.0pt;border-top:none'>STP PSR_GP5</td>
<td class=xl89 style='border-top:none;border-left:none'>01011</td>
<td class=xl89 style='border-top:none;border-left:none'>101</td>
<td class=xl89 style='border-top:none;border-left:none'>5</td>
<td class=xl90 width=670 style='border-top:none;border-left:none;width:503pt'>Set
General Purpose Flag 2 in the status register</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl88 style='height:15.0pt;border-top:none'>STP PSR_GP6</td>
<td class=xl89 style='border-top:none;border-left:none'>01011</td>
<td class=xl89 style='border-top:none;border-left:none'>110</td>
<td class=xl89 style='border-top:none;border-left:none'>6</td>
<td class=xl90 width=670 style='border-top:none;border-left:none;width:503pt'>Set
General Purpose Flag 3 in the status register</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl88 style='height:15.0pt;border-top:none'>STP PSR_GP7</td>
<td class=xl89 style='border-top:none;border-left:none'>01011</td>
<td class=xl89 style='border-top:none;border-left:none'>111</td>
<td class=xl89 style='border-top:none;border-left:none'>7</td>
<td class=xl90 width=670 style='border-top:none;border-left:none;width:503pt'>Set
General Purpose Flag 4 in the status register</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl76 style='height:15.0pt;border-top:none'>BTT 0-7</td>
<td class=xl77 style='border-top:none;border-left:none'>01100</td>
<td class=xl77 style='border-top:none;border-left:none'>xxx</td>
<td class=xl77 style='border-top:none;border-left:none'>N,Z</td>
<td class=xl78 width=670 style='border-top:none;border-left:none;width:503pt'>Test
the nth bit in R0 (!R0(n) -> Z, R0(7) -> N)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl88 style='height:15.0pt;border-top:none'>CLP PSR_Z</td>
<td class=xl89 style='border-top:none;border-left:none'>01101</td>
<td class=xl89 style='border-top:none;border-left:none'>000</td>
<td class=xl89 style='border-top:none;border-left:none'>Z</td>
<td class=xl90 width=670 style='border-top:none;border-left:none;width:503pt'>Clear
the ZERO flag in the status register</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl88 style='height:15.0pt;border-top:none'>CLP PSR_C</td>
<td class=xl89 style='border-top:none;border-left:none'>01101</td>
<td class=xl89 style='border-top:none;border-left:none'>001</td>
<td class=xl89 style='border-top:none;border-left:none'>C</td>
<td class=xl90 width=670 style='border-top:none;border-left:none;width:503pt'>Clear
the CARRY flag in the status register</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl88 style='height:15.0pt;border-top:none'>CLP PSR_N</td>
<td class=xl89 style='border-top:none;border-left:none'>01101</td>
<td class=xl89 style='border-top:none;border-left:none'>010</td>
<td class=xl89 style='border-top:none;border-left:none'>N</td>
<td class=xl90 width=670 style='border-top:none;border-left:none;width:503pt'>Clear
the NEGATIVE bit in the status register</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl88 style='height:15.0pt;border-top:none'>CLP PSR_I</td>
<td class=xl89 style='border-top:none;border-left:none'>01101</td>
<td class=xl89 style='border-top:none;border-left:none'>011</td>
<td class=xl89 style='border-top:none;border-left:none'>I</td>
<td class=xl90 width=670 style='border-top:none;border-left:none;width:503pt'>Clear
the INTERRUPT bit in the status register</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl88 style='height:15.0pt;border-top:none'>CLP PSR_GP4</td>
<td class=xl89 style='border-top:none;border-left:none'>01101</td>
<td class=xl89 style='border-top:none;border-left:none'>100</td>
<td class=xl89 style='border-top:none;border-left:none'>4</td>
<td class=xl90 width=670 style='border-top:none;border-left:none;width:503pt'>Clear
General Purpose Flag 1 in the status register</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl88 style='height:15.0pt;border-top:none'>CLP PSR_GP5</td>
<td class=xl89 style='border-top:none;border-left:none'>01101</td>
<td class=xl89 style='border-top:none;border-left:none'>101</td>
<td class=xl89 style='border-top:none;border-left:none'>5</td>
<td class=xl90 width=670 style='border-top:none;border-left:none;width:503pt'>Clear
General Purpose Flag 2 in the status register</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl88 style='height:15.0pt;border-top:none'>CLP PSR_GP6</td>
<td class=xl89 style='border-top:none;border-left:none'>01101</td>
<td class=xl89 style='border-top:none;border-left:none'>110</td>
<td class=xl89 style='border-top:none;border-left:none'>6</td>
<td class=xl90 width=670 style='border-top:none;border-left:none;width:503pt'>Clear
General Purpose Flag 3 in the status register</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl88 style='height:15.0pt;border-top:none'>CLP PSR_GP7</td>
<td class=xl89 style='border-top:none;border-left:none'>01101</td>
<td class=xl89 style='border-top:none;border-left:none'>111</td>
<td class=xl89 style='border-top:none;border-left:none'>7</td>
<td class=xl90 width=670 style='border-top:none;border-left:none;width:503pt'>Clear
General Purpose Flag 4 in the status register</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl76 style='height:15.0pt;border-top:none'>T0X R0-R7</td>
<td class=xl77 style='border-top:none;border-left:none'>01110</td>
<td class=xl77 style='border-top:none;border-left:none'>xxx</td>
<td class=xl77 style='border-top:none;border-left:none'>N,Z</td>
<td class=xl78 width=670 style='border-top:none;border-left:none;width:503pt'>Transfer
R0 to Rn (R0 -> Rn)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl76 style='height:15.0pt;border-top:none'>CMP R0-R7</td>
<td class=xl77 style='border-top:none;border-left:none'>01111</td>
<td class=xl77 style='border-top:none;border-left:none'>xxx</td>
<td class=xl77 style='border-top:none;border-left:none'>N,C,Z</td>
<td class=xl78 width=670 style='border-top:none;border-left:none;width:503pt'>Compare
R0 to Rn (Performs R0 - Rn, but only sets flags)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl91 style='height:15.0pt;border-top:none'>PSH R0-R7</td>
<td class=xl92 style='border-top:none;border-left:none'>10000</td>
<td class=xl92 style='border-top:none;border-left:none'>xxx</td>
<td class=xl92 style='border-top:none;border-left:none'>-</td>
<td class=xl93 width=670 style='border-top:none;border-left:none;width:503pt'>Push
Rn to the stack</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl91 style='height:15.0pt;border-top:none'>POP R0-R7</td>
<td class=xl92 style='border-top:none;border-left:none'>10001</td>
<td class=xl92 style='border-top:none;border-left:none'>xxx</td>
<td class=xl92 style='border-top:none;border-left:none'>N,Z</td>
<td class=xl93 width=670 style='border-top:none;border-left:none;width:503pt'>Pop
Rn from the stack</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl85 style='height:15.0pt;border-top:none'>BNZ</td>
<td class=xl86 style='border-top:none;border-left:none'>10010</td>
<td class=xl86 style='border-top:none;border-left:none'>000</td>
<td class=xl86 style='border-top:none;border-left:none'>-</td>
<td class=xl87 width=670 style='border-top:none;border-left:none;width:503pt'>Branch
if the ZERO flag is NOT set (Branch on Not Zero)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl85 style='height:15.0pt;border-top:none'>BNC</td>
<td class=xl86 style='border-top:none;border-left:none'>10010</td>
<td class=xl86 style='border-top:none;border-left:none'>001</td>
<td class=xl86 style='border-top:none;border-left:none'>-</td>
<td class=xl87 width=670 style='border-top:none;border-left:none;width:503pt'>Branch
if the CARRY flag is NOT set (Branch on Not Carry)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl85 style='height:15.0pt;border-top:none'>BNN</td>
<td class=xl86 style='border-top:none;border-left:none'>10010</td>
<td class=xl86 style='border-top:none;border-left:none'>010</td>
<td class=xl86 style='border-top:none;border-left:none'>-</td>
<td class=xl87 width=670 style='border-top:none;border-left:none;width:503pt'>Branch
if the NEGATIVE flag is NOT set (Branch on Not Negative)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl85 style='height:15.0pt;border-top:none'>BNI</td>
<td class=xl86 style='border-top:none;border-left:none'>10010</td>
<td class=xl86 style='border-top:none;border-left:none'>011</td>
<td class=xl86 style='border-top:none;border-left:none'>-</td>
<td class=xl87 width=670 style='border-top:none;border-left:none;width:503pt'>Branch
if the INTERRUPT flag is NOT set (Branch on Not Interrupt)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl85 style='height:15.0pt;border-top:none'>BNGP4</td>
<td class=xl86 style='border-top:none;border-left:none'>10010</td>
<td class=xl86 style='border-top:none;border-left:none'>100</td>
<td class=xl86 style='border-top:none;border-left:none'>-</td>
<td class=xl87 width=670 style='border-top:none;border-left:none;width:503pt'>Branch
if General Purpose Flag 4 is NOT set</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl85 style='height:15.0pt;border-top:none'>BNGP5</td>
<td class=xl86 style='border-top:none;border-left:none'>10010</td>
<td class=xl86 style='border-top:none;border-left:none'>101</td>
<td class=xl86 style='border-top:none;border-left:none'>-</td>
<td class=xl87 width=670 style='border-top:none;border-left:none;width:503pt'>Branch
if General Purpose Flag 5 is NOT set</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl85 style='height:15.0pt;border-top:none'>BNGP6</td>
<td class=xl86 style='border-top:none;border-left:none'>10010</td>
<td class=xl86 style='border-top:none;border-left:none'>110</td>
<td class=xl86 style='border-top:none;border-left:none'>-</td>
<td class=xl87 width=670 style='border-top:none;border-left:none;width:503pt'>Branch
if General Purpose Flag 6 is NOT set</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl85 style='height:15.0pt;border-top:none'>BNGP7</td>
<td class=xl86 style='border-top:none;border-left:none'>10010</td>
<td class=xl86 style='border-top:none;border-left:none'>111</td>
<td class=xl86 style='border-top:none;border-left:none'>-</td>
<td class=xl87 width=670 style='border-top:none;border-left:none;width:503pt'>Branch
if General Purpose Flag 7 is NOT set</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl82 style='height:15.0pt;border-top:none'>BRZ</td>
<td class=xl83 style='border-top:none;border-left:none'>10011</td>
<td class=xl83 style='border-top:none;border-left:none'>000</td>
<td class=xl83 style='border-top:none;border-left:none'>-</td>
<td class=xl84 width=670 style='border-top:none;border-left:none;width:503pt'>Branch
if the ZERO flag is set (Branch on Zero)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl82 style='height:15.0pt;border-top:none'>BRC</td>
<td class=xl83 style='border-top:none;border-left:none'>10011</td>
<td class=xl83 style='border-top:none;border-left:none'>001</td>
<td class=xl83 style='border-top:none;border-left:none'>-</td>
<td class=xl84 width=670 style='border-top:none;border-left:none;width:503pt'>Branch
if the CARRY flag is set (Branch on Carry)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl82 style='height:15.0pt;border-top:none'>BRN</td>
<td class=xl83 style='border-top:none;border-left:none'>10011</td>
<td class=xl83 style='border-top:none;border-left:none'>010</td>
<td class=xl83 style='border-top:none;border-left:none'>-</td>
<td class=xl84 width=670 style='border-top:none;border-left:none;width:503pt'>Branch
if the NEGATIVE flag is set (Branch on Negative)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl82 style='height:15.0pt;border-top:none'>BRI</td>
<td class=xl83 style='border-top:none;border-left:none'>10011</td>
<td class=xl83 style='border-top:none;border-left:none'>011</td>
<td class=xl83 style='border-top:none;border-left:none'>-</td>
<td class=xl84 width=670 style='border-top:none;border-left:none;width:503pt'>Branch
if the INTERRUPT flag is set (Branch on Interrupt)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl82 style='height:15.0pt;border-top:none'>BRGP4</td>
<td class=xl83 style='border-top:none;border-left:none'>10011</td>
<td class=xl83 style='border-top:none;border-left:none'>100</td>
<td class=xl83 style='border-top:none;border-left:none'>-</td>
<td class=xl84 width=670 style='border-top:none;border-left:none;width:503pt'>Branch
if General Purpose Flag 4 is set</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl82 style='height:15.0pt;border-top:none'>BRGP5</td>
<td class=xl83 style='border-top:none;border-left:none'>10011</td>
<td class=xl83 style='border-top:none;border-left:none'>101</td>
<td class=xl83 style='border-top:none;border-left:none'>-</td>
<td class=xl84 width=670 style='border-top:none;border-left:none;width:503pt'>Branch
if General Purpose Flag 5 is set</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl82 style='height:15.0pt;border-top:none'>BRGP6</td>
<td class=xl83 style='border-top:none;border-left:none'>10011</td>
<td class=xl83 style='border-top:none;border-left:none'>110</td>
<td class=xl83 style='border-top:none;border-left:none'>-</td>
<td class=xl84 width=670 style='border-top:none;border-left:none;width:503pt'>Branch
if General Purpose Flag 6 is set</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl82 style='height:15.0pt;border-top:none'>BRGP7</td>
<td class=xl83 style='border-top:none;border-left:none'>10011</td>
<td class=xl83 style='border-top:none;border-left:none'>111</td>
<td class=xl83 style='border-top:none;border-left:none'>-</td>
<td class=xl84 width=670 style='border-top:none;border-left:none;width:503pt'>Branch
if General Purpose Flag 7 is set</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl97 style='height:15.0pt;border-top:none'>DBNZ R0-R7</td>
<td class=xl98 style='border-top:none;border-left:none'>10100</td>
<td class=xl98 style='border-top:none;border-left:none'>xxx</td>
<td class=xl98 style='border-top:none;border-left:none'>N,C,Z</td>
<td class=xl99 width=670 style='border-top:none;border-left:none;width:503pt'>Decrement
and Branch if Not Zero (Rn - 1 -> Rn)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl100 style='height:15.0pt;border-top:none'>INT 0-7</td>
<td class=xl101 style='border-top:none;border-left:none'>10101</td>
<td class=xl101 style='border-top:none;border-left:none'>xxx</td>
<td class=xl101 style='border-top:none;border-left:none'>-</td>
<td class=xl102 width=670 style='border-top:none;border-left:none;width:503pt'>Trigger
Interrupt n (Triggers the specified interrupt, then pauses the processor
until the ISR executes)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl76 style='height:15.0pt;border-top:none'>MUL R0-R7</td>
<td class=xl77 style='border-top:none;border-left:none'>10110</td>
<td class=xl103 style='border-top:none;border-left:none'>xxx</td>
<td class=xl77 style='border-top:none;border-left:none'>Z</td>
<td class=xl78 width=670 style='border-top:none;border-left:none;width:503pt'>Multiply
Rn by R0 with results stored in R1:R0 (Rn * R0 -> R1:R0)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl94 style='height:15.0pt;border-top:none'>RSP</td>
<td class=xl95 style='border-top:none;border-left:none'>10111</td>
<td class=xl95 style='border-top:none;border-left:none'>000</td>
<td class=xl95 style='border-top:none;border-left:none'>-</td>
<td class=xl96 width=670 style='border-top:none;border-left:none;width:503pt'>Reset
(or Retrieve/Relocate) the Stack Pointer <font class="font5">(See CPU options
for exact behavior)</font></td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl94 style='height:15.0pt;border-top:none'>RTS</td>
<td class=xl95 style='border-top:none;border-left:none'>10111</td>
<td class=xl95 style='border-top:none;border-left:none'>001</td>
<td class=xl95 style='border-top:none;border-left:none'>-</td>
<td class=xl96 width=670 style='border-top:none;border-left:none;width:503pt'>Return
from Subroutine (only pops the return address and jumps - does not affect
flags)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl94 style='height:15.0pt;border-top:none'>RTI</td>
<td class=xl95 style='border-top:none;border-left:none'>10111</td>
<td class=xl95 style='border-top:none;border-left:none'>010</td>
<td class=xl95 style='border-top:none;border-left:none'>-</td>
<td class=xl96 width=670 style='border-top:none;border-left:none;width:503pt'>Return
from Interrupt (restores both the address and the status register)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl94 style='height:15.0pt;border-top:none'>BRK/WAI</td>
<td class=xl95 style='border-top:none;border-left:none'>10111</td>
<td class=xl95 style='border-top:none;border-left:none'>011</td>
<td class=xl95 style='border-top:none;border-left:none'>-</td>
<td class=xl96 width=670 style='border-top:none;border-left:none;width:503pt'>Break
or Wait for Interrupt (See CPU options for exact behavior)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl94 style='height:15.0pt;border-top:none'>JMP</td>
<td class=xl95 style='border-top:none;border-left:none'>10111</td>
<td class=xl95 style='border-top:none;border-left:none'>100</td>
<td class=xl95 style='border-top:none;border-left:none'>-</td>
<td class=xl96 width=670 style='border-top:none;border-left:none;width:503pt'>Jump
to Address (Address is assumed to be stored after the instruction)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl94 style='height:15.0pt;border-top:none'>SMSK</td>
<td class=xl95 style='border-top:none;border-left:none'>10111</td>
<td class=xl95 style='border-top:none;border-left:none'>101</td>
<td class=xl95 style='border-top:none;border-left:none'>-</td>
<td class=xl96 width=670 style='border-top:none;border-left:none;width:503pt'>Set
the Interrupt Mask to the contents of R0 (R0 -> MASK)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl94 style='height:15.0pt;border-top:none'>GMSK</td>
<td class=xl95 style='border-top:none;border-left:none'>10111</td>
<td class=xl95 style='border-top:none;border-left:none'>110</td>
<td class=xl95 style='border-top:none;border-left:none'>-</td>
<td class=xl96 width=670 style='border-top:none;border-left:none;width:503pt'>Get
the Interrupt Mask and store to R0 (MASK -> R0)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=21 style='mso-height-source:userset;height:15.75pt'>
<td height=21 class=xl94 style='height:15.75pt;border-top:none'>JSR</td>
<td class=xl95 style='border-top:none;border-left:none'>10111</td>
<td class=xl95 style='border-top:none;border-left:none'>111</td>
<td class=xl95 style='border-top:none;border-left:none'>-</td>
<td class=xl96 width=670 style='border-top:none;border-left:none;width:503pt'>Jump
to Subroutine (pushes the return address, then jumps to the address specified
in subsequent bytes)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl76 style='height:15.0pt;border-top:none'>UPP R0-R7</td>
<td class=xl77 style='border-top:none;border-left:none'>11000</td>
<td class=xl77 style='border-top:none;border-left:none'>xxx</td>
<td class=xl77 style='border-top:none;border-left:none'>N,C,Z</td>
<td class=xl78 width=670 style='border-top:none;border-left:none;width:503pt'>Increment
Register Pair (Rn+1:Rn + 1 -> Rn+1:Rn)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl79 style='height:15.0pt;border-top:none'>STA R0-R7</td>
<td class=xl80 style='border-top:none;border-left:none'>11001</td>
<td class=xl80 style='border-top:none;border-left:none'>xxx</td>
<td class=xl80 style='border-top:none;border-left:none'>-</td>
<td class=xl81 width=670 style='border-top:none;border-left:none;width:503pt'>Store
Rn to Fixed Address (Address follows instruction)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl79 style='height:15.0pt;border-top:none'>STX R0-R7(+)</td>
<td class=xl80 style='border-top:none;border-left:none'>11010</td>
<td class=xl80 style='border-top:none;border-left:none'>xxx</td>
<td class=xl80 style='border-top:none;border-left:none'>N,C,Z</td>
<td class=xl81 width=670 style='border-top:none;border-left:none;width:503pt'>Store
R0 to Address referenced by Rn+1:Rn (See CPU options for exact behavior)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl79 style='height:15.0pt;border-top:none'>STO R0-R7(+)</td>
<td class=xl80 style='border-top:none;border-left:none'>11011</td>
<td class=xl80 style='border-top:none;border-left:none'>xxx</td>
<td class=xl80 style='border-top:none;border-left:none'>N,C,Z</td>
<td class=xl81 width=670 style='border-top:none;border-left:none;width:503pt'>Store
R0 to Rn+1:Rn + Offset (Offset is stored in subsequent byte) (See CPU options
for exact behavior)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl91 style='height:15.0pt;border-top:none'>LDI R0-R7</td>
<td class=xl92 style='border-top:none;border-left:none'>11100</td>
<td class=xl92 style='border-top:none;border-left:none'>xxx</td>
<td class=xl92 style='border-top:none;border-left:none'>N,Z</td>
<td class=xl93 width=670 style='border-top:none;border-left:none;width:503pt'>Load
Rn with Immediate Data (IMM -> Rn) (Data is stored in subsequent byte)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl91 style='height:15.0pt;border-top:none'>LDA R0-R7</td>
<td class=xl92 style='border-top:none;border-left:none'>11101</td>
<td class=xl92 style='border-top:none;border-left:none'>xxx</td>
<td class=xl92 style='border-top:none;border-left:none'>N,Z</td>
<td class=xl93 width=670 style='border-top:none;border-left:none;width:503pt'>Load
Rn from Fixed Address (Address follows instruction)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 class=xl91 style='height:15.0pt;border-top:none'>LDX R0-R7(+)</td>
<td class=xl92 style='border-top:none;border-left:none'>11110</td>
<td class=xl92 style='border-top:none;border-left:none'>xxx</td>
<td class=xl92 style='border-top:none;border-left:none'>N,C,Z</td>
<td class=xl93 width=670 style='border-top:none;border-left:none;width:503pt'>Load
R0 from Address referenced by Rn+1:Rn (See CPU options for exact behavior)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=40 style='height:30.0pt'>
<td height=40 class=xl91 style='height:30.0pt;border-top:none'>LDO R0-R7(+)</td>
<td class=xl92 style='border-top:none;border-left:none'>11111</td>
<td class=xl92 style='border-top:none;border-left:none'>xxx</td>
<td class=xl92 style='border-top:none;border-left:none'>N,C,Z</td>
<td class=xl93 width=670 style='border-top:none;border-left:none;width:503pt'>Load
R0 from Address referenced by Rn+1:Rn plus an offset<span
style='mso-spacerun:yes'> </span>(Offset is stored in subsequent byte) (See
CPU options for exact behavior)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td height=20 style='height:15.0pt'></td>
<td colspan=2 class=xl67 style='mso-ignore:colspan'></td>
<td class=xl66></td>
<td class=xl68></td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<tr height=60 style='height:45.0pt'>
<td height=60 style='height:45.0pt'></td>
<td colspan=2 class=xl67 style='mso-ignore:colspan'></td>
<td class=xl66></td>
<td class=xl68 width=670 style='width:503pt'>Note - Indexed instructions with
(+) after the operand optionally allow for auto-incrementing of the register
pair. For example, LDX R4++ is equivalent to LDX R5 when auto-incrementing is
turned on) See CPU options for exact behavior)</td>
<td colspan=2 style='mso-ignore:colspan'></td>
<td class=xl65></td>
</tr>
<![if supportMisalignedColumns]>
<tr height=0 style='display:none'>
<td width=86 style='width:65pt'></td>
<td width=74 style='width:56pt'></td>
<td width=61 style='width:46pt'></td>
<td width=64 style='width:48pt'></td>
<td width=670 style='width:503pt'></td>
<td width=64 style='width:48pt'></td>
<td width=97 style='width:73pt'></td>
<td width=64 style='width:48pt'></td>
</tr>
<![endif]>
</table>
</body>
</html>
Go to most recent revision | Compare with Previous | Blame | View Log
