?? 指令集.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0053)http://www.linuxforum.net/books/mhss/arm/qfinder.html -->
<HTML><HEAD><TITLE>Instruction set quick finder</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META http-equiv=Content-Language content=zh-cn>
<META content="MSHTML 6.00.2600.0" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId></HEAD>
<BODY text=#000000 vLink=#002288 link=#0022dd bgColor=#f0f0f0>
<TABLE width="100%" border=0>
<TBODY>
<TR>
<TD align=middle width=100></TD>
<TD>
<H1 align=center><FONT color=#800080>指令集</FONT></H1>
<H3 align=center><FONT color=#800080>(快速查找)</FONT></H3></TD>
<TD align=middle width=100></TD></TR></TBODY></TABLE>
<P>在本文檔的匯編語法中,用 # 前綴表示立即值,用 & 表示十六進制值,用 % 表示二進制值,用 {花括號}
表示指令中可選的設置字段或位。下面表格中<B>粗體</B>的指令是核心 ARM
指令,其他的是值得包含的位和片段、移位選項和匯編器助記碼(mnemonic)... 還列出了協處理器指令。但是用于 RISC OS 機器的 ARM
處理器不支持協處理器,只在一個可訪問的芯片中提供了實際上的協處理器功能。其中包括設置 ARM、cache、MMU 的設施,等...
<P>
<TABLE width="100%" border=0>
<TBODY>
<TR>
<TD><B><U>指令</U></B>
<TD><B><U>意義</U></B>
<TD><B><U>最早的 CPU / 注釋</U></B>
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/mov.html#adc"><B>ADC</B></A>
<TD>帶進位的加法
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/mov.html#add"><B>ADD</B></A>
<TD>加法
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/mov.html#and"><B>AND</B></A>
<TD>邏輯與
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/shift.html#asl">ASL</A>
<TD>算術左移
<TD>這是一個選項,不是指令
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/shift.html#asr">ASR</A>
<TD>算術右移
<TD>這是一個選項,不是指令
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/bl.html#b"><B>B</B></A>
<TD>分支
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/mov.html#bic"><B>BIC</B></A>
<TD>位清除
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/bl.html#bl"><B>BL</B></A>
<TD>帶連接的分支
<TD>-
<TR>
<TD>BX
<TD>分支到 Thumb 代碼
<TD>StrongARM SA1110 ?
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/ARMinstrs.html#CoproOp">CDP</A>
<TD>協處理器數據操作
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/cmp.html#cmn"><B>CMN</B></A>
<TD>比較取負的值
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/cmp.html#cmp"><B>CMP</B></A>
<TD>比較值
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/mov.html#eor"><B>EOR</B></A>
<TD>異或兩個值
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/ARMinstrs.html#CoproTrans">LDC</A>
<TD>裝載內存到協處理器
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/str.html#ldm"><B>LDM</B></A>
<TD>裝載多個寄存器
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/str.html#ldr"><B>LDR</B></A>
<TD>裝載寄存器
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/str.html#ldr"><B>LDRB</B></A>
<TD>裝載字節到寄存器
<TD>-
<TR>
<TD><B>LDRH</B>
<TD>裝載半字到寄存器
<TD>StrongARM
<TR>
<TD><B>LDRSB</B>
<TD>裝載有符號字節到寄存器
<TD>StrongARM
<TR>
<TD><B>LDRSH</B>
<TD>裝載有符號半字到寄存器
<TD>StrongARM
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/shift.html#lsl">LSL</A>
<TD>邏輯左移
<TD>這是一個選項,不是指令
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/shift.html#lsr">LSR</A>
<TD>邏輯右移
<TD>這是一個選項,不是指令
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/ARMinstrs.html#CoproTrans">MCR</A>
<TD>協處理器寄存器傳送
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/mul.html#mla"><B>MLA</B></A>
<TD>帶累加的乘法
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/mov.html#mov"><B>MOV</B></A>
<TD>傳送值/寄存器到一個寄存器
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/ARMinstrs.html#CoproTrans">MRC</A>
<TD>協處理器寄存器傳送
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/psr.html#mrs"><B>MRS</B></A>
<TD>傳送狀態標志到一個寄存器
<TD>ARM 6
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/psr.html#msr"><B>MSR</B></A>
<TD>傳送一個寄存器的內容到狀態標志
<TD>ARM 6
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/mul.html#binop"><B>MUL</B></A>
<TD>乘法
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/mov.html#mvn"><B>MVN</B></A>
<TD>傳送取負的(值)
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/mov.html#orr"><B>ORR</B></A>
<TD>邏輯或
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/shift.html#ror">ROR</A>
<TD>循環右移
<TD>這是一個選項,不是指令
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/shift.html#rrx">RRX</A>
<TD>帶擴展的循環右移
<TD>這是一個選項,不是指令
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/mov.html#rsb"><B>RSB</B></A>
<TD>反向減法
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/mov.html#rsc"><B>RSC</B></A>
<TD>帶借位的反向減法
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/mov.html#sbc"><B>SBC</B></A>
<TD>帶借位的減法
<TD>-
<TR>
<TD><B><A
href="http://www.linuxforum.net/books/mhss/arm/ARMinstrs.html#Long">SMLAL</A></B>
<TD>帶累加的有符號長(64 位)乘法
<TD>StrongARM
<TR>
<TD><B><A
href="http://www.linuxforum.net/books/mhss/arm/ARMinstrs.html#Long">SMULL</A></B>
<TD>有符號長(64 位)乘法
<TD>StrongARM
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/ARMinstrs.html#CoproTrans">STC</A>
<TD>協處理器數據傳送
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/str.html#stm"><B>STM</B></A>
<TD>存儲多個寄存器
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/str.html#str"><B>STR</B></A>
<TD>存儲一個寄存器
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/str.html#str"><B>STRB</B></A>
<TD>存儲一個字節(從一個寄存器)
<TD>-
<TR>
<TD><B>STRH</B>
<TD>存儲一個半字(從一個寄存器)
<TD>StrongARM
<TR>
<TD><B>STRSB</B>
<TD>存儲一個有符號字節(從一個寄存器)
<TD>StrongARM
<TR>
<TD><B>STRSH</B>
<TD>存儲一個有符號半字(從一個寄存器)
<TD>StrongARM
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/mov.html#sub"><B>SUB</B></A>
<TD>減法
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/swi.html#swi"><B>SWI</B></A>
<TD>導致一個軟件中斷
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/str.html#swp"><B>SWP</B></A>
<TD>交換寄存器與內存
<TD>ARM 3
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/cmp.html#teq"><B>TEQ</B></A>
<TD>測試等價(概念上的 EOR)
<TD>-
<TR>
<TD><A
href="http://www.linuxforum.net/books/mhss/arm/cmp.html#tst"><B>TST</B></A>
<TD>測試并屏蔽(概念上的 AND)
<TD>-
<TR>
<TD><B><A
href="http://www.linuxforum.net/books/mhss/arm/ARMinstrs.html#Long">UMLAL</A></B>
<TD>帶累加的無符號長(64 位)乘法
<TD>StrongARM
<TR>
<TD><B><A
href="http://www.linuxforum.net/books/mhss/arm/ARMinstrs.html#Long">UMULL</A></B>
<TD>無符號長(64 位)乘法
<TD>StrongARM </TR></TBODY></TABLE>
<H3>RISC OS 的 BASIC 匯編器的偽指令</H3>
<TABLE width=507 border=0>
<TBODY>
<TR>
<TD width=70><A
href="http://www.linuxforum.net/books/mhss/arm/pseudo.html#adr">ADR</A>
<TD width=423>得到目標的地址(4K 之內)
<TR>
<TD width=70><A
href="http://www.linuxforum.net/books/mhss/arm/pseudo.html#adrl">ADRL</A>
<TD width=423>得到目標的地址(超過 4K)
<TR>
<TD width=70><A
href="http://www.linuxforum.net/books/mhss/arm/pseudo.html#align">ALIGN</A>
<TD width=423>把程序計數器設置到下個字的邊界
<TR>
<TD width=70><A href="file:///C:/mhss/ARM/pseudo.html#dcx">DCx</A>
<TD width=423>定義字節(B)、半字(W)、字(D)、字符串(S)、或浮點(F)值
<TR>
<TD width=70><A
href="http://www.linuxforum.net/books/mhss/arm/pseudo.html#equx">EQUx</A>
<TD width=423>定義字節(B)、半字(W)、字(D)、字符串(S)、或浮點(F)值
<TR>
<TD width=70><A
href="http://www.linuxforum.net/books/mhss/arm/pseudo.html#opt">OPT</A>
<TD width=423>選擇匯編選項 </TR></TBODY></TABLE>
<H3><A href="http://www.linuxforum.net/books/mhss/arm/fpops.html">IEEE
浮點指令</A></H3>
<P>
<HR SIZE=3>
<A href="http://www.linuxforum.net/books/mhss/arm/index.html">Return to
index</A>
<HR SIZE=3>
<ADDRESS>Copyright © 2001 Richard Murray </ADDRESS></BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -