📄 指令集.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 + -