home *** CD-ROM | disk | FTP | other *** search
Wrap
<HTML> <HEAD> <TITLE>ARM Assembly Language Programming</TITLE> </HEAD> <body bgcolor="#FFFFFF" text="#000000" link="#cc0000" vlink="#666666" alink="yellow" BACKGROUND="../GRAPHICS/BGRND.GIF"> <TABLE BORDER="0" CELLSPACING="5" CELLPADDING="5"> <TR> <TD WIDTH="40"> </TD> <TD WIDTH="654"> <hr align=CENTER width="100%"> <center> <A HREF="CHAP09.HTM"><IMG ALT=" " SRC="../GRAPHICS/LEFT.GIF" WIDTH=75 HEIGHT=74 border=0></A> <A HREF="../INDEX.HTM"><IMG ALT="Index" SRC="../GRAPHICS/INDEX.GIF" WIDTH=75 HEIGHT=74 border=0></A> <A HREF="../4DRACE/INDEX.HTM"><IMG ALT=" " SRC="../GRAPHICS/RIGHT.GIF" WIDTH=75 HEIGHT=74 border=0></A></p><BR><IMG ALT="RISC World" SRC="../GRAPHICS/FEAT.GIF" WIDTH=204 HEIGHT=199> <hr align=CENTER width="100%"> </center> <H2><font color="#0000DD">ARM Assembly language Programming<BR></font></H2> <p><cite>RISCWorld</cite></p> <P ALIGN=CENTER> <B><FONT SIZE="+4">Appendix C </FONT></B> <DIV ALIGN=CENTER> <TABLE CELLPADDING=5> <TR><TD WIDTH=188><B>Cond: </B>Condition field <TD ALIGN=RIGHT WIDTH=146><B>OpCode:</B> Operation code </TABLE> </DIV> <DIV ALIGN=CENTER> <TABLE CELLPADDING=5> <TR><TD WIDTH=31>0000 <TD WIDTH=145>EQ (EQual) <TD ALIGN=CENTER WIDTH=45>0000 <TD WIDTH=90>AND </TABLE> </DIV> <DIV ALIGN=CENTER> <TABLE CELLPADDING=5> <TR><TD WIDTH=31>0001 <TD WIDTH=145>NE (NEver) <TD ALIGN=CENTER WIDTH=45>0001 <TD WIDTH=90>EOR </TABLE> </DIV> <DIV ALIGN=CENTER> <TABLE CELLPADDING=5> <TR><TD WIDTH=31>0010 <TD WIDTH=145>CS (Carry Set) <TD ALIGN=CENTER WIDTH=45>0010 <TD WIDTH=90>SUB </TABLE> </DIV> <DIV ALIGN=CENTER> <TABLE CELLPADDING=5> <TR><TD WIDTH=31>0011 <TD WIDTH=145>CC (Carry Clear) <TD ALIGN=CENTER WIDTH=45>0011 <TD WIDTH=90>RSB </TABLE> </DIV> <DIV ALIGN=CENTER> <TABLE CELLPADDING=5> <TR><TD WIDTH=31>0100 <TD WIDTH=145>MI (MInus) <TD ALIGN=CENTER WIDTH=45>0100 <TD WIDTH=90>ADD </TABLE> </DIV> <DIV ALIGN=CENTER> <TABLE CELLPADDING=5> <TR><TD WIDTH=31>0101 <TD WIDTH=145>PL (PLus) <TD ALIGN=CENTER WIDTH=45>0101 <TD WIDTH=90>ADC </TABLE> </DIV> <DIV ALIGN=CENTER> <TABLE CELLPADDING=5> <TR><TD WIDTH=31>0110 <TD WIDTH=145>VS (oVerflow Set) <TD ALIGN=CENTER WIDTH=45>0110 <TD WIDTH=90>SBC </TABLE> </DIV> <DIV ALIGN=CENTER> <TABLE CELLPADDING=5> <TR><TD WIDTH=31>0111 <TD WIDTH=145>VC (oVerflow Clear) <TD ALIGN=CENTER WIDTH=45>0111 <TD WIDTH=90>RSC </TABLE> </DIV> <DIV ALIGN=CENTER> <TABLE CELLPADDING=5> <TR><TD WIDTH=31>1000 <TD WIDTH=145>HI (HIgher) <TD ALIGN=CENTER WIDTH=45>1000 <TD WIDTH=90>TST </TABLE> </DIV> <DIV ALIGN=CENTER> <TABLE CELLPADDING=5> <TR><TD WIDTH=31>1001 <TD WIDTH=145>LS (Lower or Same) <TD ALIGN=CENTER WIDTH=45>1001 <TD WIDTH=90>TEQ </TABLE> </DIV> <DIV ALIGN=CENTER> <TABLE CELLPADDING=5> <TR><TD WIDTH=31>1010 <TD WIDTH=145>GE (Greater or Equal) <TD ALIGN=CENTER WIDTH=45>1010 <TD WIDTH=90>CMP </TABLE> </DIV> <DIV ALIGN=CENTER> <TABLE CELLPADDING=5> <TR><TD WIDTH=31>1011 <TD WIDTH=145>LT (Less Than) <TD ALIGN=CENTER WIDTH=45>1011 <TD WIDTH=90>CMN </TABLE> </DIV> <DIV ALIGN=CENTER> <TABLE CELLPADDING=5> <TR><TD WIDTH=31>1100 <TD WIDTH=145>GT (Greater Than) <TD ALIGN=CENTER WIDTH=45>1100 <TD WIDTH=90>ORR </TABLE> </DIV> <DIV ALIGN=CENTER> <TABLE CELLPADDING=5> <TR><TD WIDTH=31>1101 <TD WIDTH=145>LE (Less than or Equal) <TD ALIGN=CENTER WIDTH=45>1101 <TD WIDTH=90>MOV </TABLE> </DIV> <DIV ALIGN=CENTER> <TABLE CELLPADDING=5> <TR><TD WIDTH=31>1110 <TD WIDTH=145>AL (ALways) <TD ALIGN=CENTER WIDTH=45>1110 <TD WIDTH=90>BIC </TABLE> </DIV> <DIV ALIGN=CENTER> <TABLE CELLPADDING=5> <TR><TD WIDTH=31>1111 <TD WIDTH=145>NV (NeVer) <TD ALIGN=CENTER WIDTH=45>1111 <TD WIDTH=90>MVN </TABLE> </DIV> <P> <B><FONT SIZE="+4">Instruction set<BR> </FONT></B> <P> <B>Data Processing </B> <P> <B><FONT SIZE="-1">I: Immediate operand bit.</FONT></B> This defines exactly what Operand 2 is. If the I bit is 0, Operand 2 is a register, with the register number held in bits 0 to 3 and the shift applied to that register in bits 4 to 11. If the I bit is 1, Operand 2 is an immediate value, with bits 0 to 7 holding the 8 bit value, and bits 8 to 11 holding the shift <P> <FONT SIZE="-1">applied to that value. </FONT> <P> <B><FONT SIZE="-1">S: Set condition codes.</FONT></B> If this bit is set to 0, the condition codes are not altered after the instruction has <P> <FONT SIZE="-1">executed. If it is set to 1, they are altered. </FONT> <P> <B><FONT SIZE="-1">Rn: First operand register. </FONT></B> <P> <B>Arm Assembly Language programming </B> <P> <B><FONT SIZE="-1">Rd: Destination register. </FONT></B> <P> <B>Branch and Branch with link </B> <P> <B><FONT SIZE="-1">L: Link bit.</FONT></B> 0=Branch, 1=Branch with link <B>Multiply and multiply-accumulate </B> <P> <B><FONT SIZE="-1">A: Accumulate bit.</FONT></B> 0=multiply, 1=multiply with accumulate <P> <B>Single Data transfer </B> <P> <B><FONT SIZE="-1">P: Pre/Post indexing.</FONT></B> 0=post (offset added after transfer). 1=pre (offset added before transfer). <P> <B><FONT SIZE="-1">U: Up/Down bit.</FONT></B> 0=down (Offset subtracted from base). 1=Up (Offset added to base). <P> <B><FONT SIZE="-1">B: Byte/Word bit.</FONT></B> 0=transfer word, 1=transfer byte. <P> <B><FONT SIZE="-1">W: Write-back.</FONT></B> 0=No write back, 1=Write address into base. <B>Block data transfer </B> <P> <B><FONT SIZE="-1">S: PSR & Force user mode.</FONT></B> 0=do not load PSR or force user mode. 1=load PSR or force user mode. <B>Software Interrupt </B> <P> <B>Co-processor data operations <FONT SIZE="-1">CP Opc: </FONT></B>Co-processor operation code. <B>CRn:</B> Co-processor operand register. <B>CRd:</B> Co-processor <P> <FONT SIZE="-1">destination register. <B>CP#:</B> Co-processor number. <B>CP:</B> Co-processor information </FONT><B>Co-processor data transfers </B> <P> <B><FONT SIZE="-1">N: Transfer Length. </FONT></B> <P> <B>Arm Assembly Language programming </B> <P> <B>Co-processor register transfers </B> <P> <B><FONT SIZE="-1">L: Load/Store bit.</FONT></B> 0=Store to co-processor, 1=Load from co-processor. <B>Undefined instructions. </B> <p align="right"><b>RISCWorld</a></p> <p align="center"> <A HREF="CHAP09.HTM"><IMG ALT=" " SRC="../GRAPHICS/LEFT.GIF" WIDTH=75 HEIGHT=74 border=0></A> <A HREF="../INDEX.HTM"><IMG ALT="Index" SRC="../GRAPHICS/INDEX.GIF" WIDTH=75 HEIGHT=74 border=0></A> <A HREF="../4DRACE/INDEX.HTM"><IMG ALT=" " SRC="../GRAPHICS/RIGHT.GIF" WIDTH=75 HEIGHT=74 border=0></A></p><BR> </TD> </TR> </TABLE> </BODY> </HTML>