arm汇编指令大全问题中的加法和乘法问题

C语言问题:怎么在一个循环里等可能地出现加减法、乘法、除法?_百度知道
C语言问题:怎么在一个循环里等可能地出现加减法、乘法、除法?
i&10、除法;i++)怎么让它随机等可能地产生加减法、乘法比如for(i=0
printf(&a-b=%f&#92.h&i&a+b=%f\n&quot: printf(&#include&;scanf(&quot,j,a+b);a*b=%f&#92,a*b);输入两个数字&n&n&switch(j){case 0;;for(i=0.h&#include&b=%f\b): printf(&break.h&#include&stdlib,&b);case 3;;void main(){float a: printf(&break,&a,b.h&n&#include&j=rand()%4;;10,a-b),a/case 1;a/i++){printf(&%f%f&);case 2;srand((unsigned)time(NULL))
其他类似问题
按默认排序
其他2条回答
1产生一个随机数,对应加减乘数,3,分别case一下,2,余数0,然后对4取余
加减法,乘法,除法,就四个情况,你可以用随机数。用下面的代码片段。int t=rand()%4; if(t==0)
//用加法if(t==1) //用减法if(t==2) //用乘法if(t==3) //用除法。
加减法的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
ARMV7NEON汇编指令详解中文版
下载积分:2000
内容提示:
文档格式:PDF|
浏览次数:24|
上传日期: 19:48:29|
文档星级:
该用户还上传了这些文档
下载文档:ARMV7NEON汇编指令详解中文版.PDF
官方公共微信嵌入式开发
论坛服务区
ARM汇编指令学习之开篇
&&&&[您是本帖的第4486位阅读者]
用户等级:
最后登陆时间: 21:58:57状态:离线
由于工作的需要,需要学习ARM了,其实接触ARM7也有几个月了,但是感觉很浮躁,好像学会了很多,也还是什么都不会。决心从头好好学习。踏踏实实的走好每一步。做学问需要沉下心来,慢慢搞,虽然现在的这个社会节奏太快,要学的东西实在是太多了。但是,如果没有扎实的基础恐怕也都是空谈和幻想。
决定从最简单的指令开始学习。
常用ARM指令集及汇编
一、ARM处理器的寻址方式
二、指令集学习
3. ARM存储器访问指令
LDR/ STR-加载/ 存储指令
LDM/ STM-多寄存器加载/ 存储指令
SWP-寄存器和存储器交换指令
4. ARM数据处理指令
数据传送指令
MOV-数据传送指令
MVN-数据非传送指令
算术逻辑运算指令
ADD-加法运算指令
SUB-减法运算指令
RSB-逆向减法指令
ADC-带进位加法指令
SBC-带进位减法指令
RSC-带进位逆向减法指令
AND-逻辑“与”
ORR-逻辑“或”
EOR-逻辑“异或”
BIC-位清除指令
CMP-比较指令
CMN-负数比较指令
TST-位测试指令
TEQ-相等测试指令
MUL-32位乘法指令
MLA-32位乘加指令
UMULL-64位无符号乘法指令
UMLAL-64位无符号乘加指令
SMULL-64位有符号乘法指令
SMLAL-64位有符号乘加指令
5. ARM分支指令
B-分支指令
BL-带连接的分支指令
BX-带状态切换的分支指令
6. ARM协处理器指令
CDP-协处理器数据操作指令
LDC-协处理器数据读取指令
STC-协处理器数据写入指令
MCR-ARM处理器到协处理器的数据传送指令
MRC-协处理器到ARM处理器的数据传送指令
7. ARM杂项指令
SWI-软中断指令
MRS-读状态寄存器指令
MSR-写状态寄存器指令
8. ARM伪指令
ADR-小范围的地址读取伪指令
ADRL-中等范围的地址读取伪指令
LDR-大范围的地址读取伪指令
NOP-空操作伪指令
Thumb指令集
Thumb指令集和ARM指令集的区别
2. Thumb存储器访问指令
LDR/ STR-加载/ 存储指令
PUSH/ POP-寄存器入栈 / 出栈指令
LDMIA/ STMIA-多寄存器加载/ 存储指令
3. Thumb数据处理指令
数据传送指令
MOV-数据传送指令
MVN-数据非传送指令
NEG-数据取负指令
算术逻辑运算指令
ADD-加法运算指令
SUB-减法运算指令
ADC-带进位加法指令
SBC-带进位减法指令
MUL-乘法运算指令
AND-逻辑“与”
ORR-逻辑“或”
EOR-逻辑“异或”
BIC-位清除指令
ASR-算术右移指令
LSL-逻辑左移指令
LSR-逻辑右移指令
ROR-循环右移指令
CMP-比较指令
CMN-负数比较指令
TST-位测试指令
4. Thumb分支指令
B-分支指令
BL-带连接的分支指令
BX-带状态切换的分支指令
5. Thumb杂项指令
SWI-软中断指令
6. Thumb伪指令
ADR-小范围的地址读取伪指令
LDR-大范围的地址读取伪指令
NOP-空操作伪指令
关键词:&&&&&&&&&&&&&&&&&&&&&&&&
******************************
*攻城为下,攻人为次,攻心为上*
******************************。
快速回复主题
匿名不能发帖!请先 [
Copyright (C) ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.《电子产品世界》杂志社 版权所有 北京东晓国际技术信息咨询有限公司京ICP060382号
北京市公安局备案:2304人阅读
16位数据操作指令
ADC& 带进位加法(ADD with Carry)
AND& 按位与。这里的按位与和C的”&”功能相同
ASR& 算术右移(Arithmetic Shift Right)
BIC& 按位清零(把一个数跟另一个无符号数的反码按位与)
CMN& 负向比较(把一个数跟另一个数据的二进制补码相比较)
CMP& 比较(Compare,比较两个数并且更新标志)
CPY& 把一个寄存器的值拷贝(COPY)到另一个寄存器中
EOR& 近位异或
LSL& 逻辑左移(Logic Shift Left)
LSR& 逻辑右移(Logic Shift Right)
MOV& 寄存器加载数据,既能用于寄存器间的传输,也能用于加载立即数
MUL& 乘法(Multiplication)
MVN& 加载一个数的 NOT值(取到逻辑反的值)
NEG& 取二进制补码
ORR& 按位或
ROR& 循环右移
SBC& 带借位的减法
SUB& 减法(Subtraction)
TST& 测试(Test,执行按位与操作,并且根据结果更新Z)
REV& 在一个32位寄存器中反转(Reverse)字节序
REVH& 把一个32位寄存器分成两个(Half)16位数,在每个16位数中反转字节序
REVSH& 把一个32位寄存器的低16位半字进行字节反转,然后带符号扩展到32位
SXTB& 带符号(Signed)扩展一个字节(Byte)到 32位
SXTH& 带符号(Signed)扩展一个半字(Half)到 32位
UXTB& 无符号(Unsigned)扩展一个字节(Byte)到 32位
UXTH& 无符号(Unsigned)扩展一个半字(Half)到 32位
16位转移指令
B& 无条件转移(Branch)
B&cond&& 有条件(Condition)转移
BL& 转移并连接(Link)。用于呼叫一个子程序,返回地址被存储在LR中
CBZ& 比较(Compare),如果结果为零(Zero)就转移(只能跳到后面的指令)
CBNZ& 比较,如果结果非零(Non Zero)就转移(只能跳到后面的指令)
IT& If-Then
16位存储器数据传送指令
LDR& 从存储器中加载(Load)字到一个寄存器(Register)中
LDRH& 从存储器中加载半(Half)字到一个寄存器中
LDRB& 从存储器中加载字节(Byte)到一个寄存器中
LDRSH& 从存储器中加载半字,再经过带符号扩展后存储一个寄存器中
LDRSB& 从存储器中加载字节,再经过带符号扩展后存储一个寄存器中
STR& 把一个寄存器按字存储(Store)到存储器中
STRH& 把一个寄存器存器的低半字存储到存储器中
STRB& 把一个寄存器的低字节存储到存储器中
LDMIA& 加载多个字,并且在加载后自增基址寄存器
STMIA& 存储多个字,并且在存储后自增基址寄存器
PUSH& 压入多个寄存器到栈中
POP& 从栈中弹出多个值到寄存器中
其它16位指令
SVC& 系统服务调用(Service Call)
BKPT& 断点(Break Point)指令。如果调试被使能,则进入调试状态(停机)。
NOP& 无操作(No Operation)
CPSIE& 使能 PRIMASK(CPSIE i)/FAULTMASK(CPSIE f)——清零相应的位
CPSID& 除能 PRIMASK(CPSID i)/FAULTMASK(CPSID f)——置位相应的位
32位数据操作指令
ADC& 带进位加法
ADDW& 宽加法(可以加 12 位立即数)
AND& 按位与(原文是逻辑与,有误——译注)
ASR& 算术右移
BIC& 位清零(把一个数按位取反后,与另一个数逻辑与)
BFC& 位段清零
BFI& 位段插入
CMN& 负向比较(把一个数和另一个数的二进制补码比较,并更新标志位)
CMP& 比较两个数并更新标志位
CLZ& 计算前导零的数目
EOR& 按位异或
LSL& 逻辑左移
LSR& 逻辑右移
MOVW& 把 16 位立即数放到寄存器的底16位,高16位清0
MOV& 加载16位立即数到寄存器(其实汇编器会产生MOVW——译注)
MOVT& 把 16 位立即数放到寄存器的高16位,低 16位不影响
MVN& 移动一个数的补码
ORR& 按位或(原文为逻辑或,有误——译注)
ORN& 把源操作数按位取反后,再执行按位或(原文为逻辑或,有误——译注)
RBIT& 位反转(把一个 32 位整数先用2 进制表达,再旋转180度——译注)
REV& 对一个32 位整数做按字节反转
REVH/REV16 对一个32 位整数的高低半字都执行字节反转
REVSH& 对一个32 位整数的低半字执行字节反转,再带符号扩展成32位数
ROR& 圆圈右移
RRX& 带进位的逻辑右移一格(最高位用C 填充,且不影响C的值——译注)
SFBX& 从一个32 位整数中提取任意的位段,并且带符号扩展成 32 位整数
SDIV& 带符号除法
SMLAL& 带符号长乘加(两个带符号的 32 位整数相乘得到 64 位的带符号积,再把积加到另一个带符号 64位整数中)
SMULL& 带符号长乘法(两个带符号的 32 位整数相乘得到 64位的带符号积)
SSAT& 带符号的饱和运算
SBC& 带借位的减法
SUBW& 宽减法,可以减 12 位立即数
SXTB& 字节带符号扩展到32位数
TEQ& 测试是否相等(对两个数执行异或,更新标志但不存储结果)
TST& 测试(对两个数执行按位与,更新Z 标志但不存储结果)
UBFX& 无符号位段提取
UDIV& 无符号除法
UMLAL& 无符号长乘加(两个无符号的 32 位整数相乘得到 64 位的无符号积,再把积加到另一个无符号 64位整数中)
UMULL& 无符号长乘法(两个无符号的 32 位整数相乘得到 64位的无符号积)
USAT& 无符号饱和操作(但是源操作数是带符号的——译注)
UXTB& 字节被无符号扩展到32 位(高24位清0——译注)
UXTH& 半字被无符号扩展到32 位(高16位清0——译注)
32位存储器数据传送指令
LDR& 加载字到寄存器
LDRB& 加载字节到寄存器
LDRH& 加载半字到寄存器
LDRSH& 加载半字到寄存器,再带符号扩展到 32位
LDM& 从一片连续的地址空间中加载多个字到若干寄存器
LDRD& 从连续的地址空间加载双字(64 位整数)到2 个寄存器
STR& 存储寄存器中的字
STRB& 存储寄存器中的低字节
STRH& 存储寄存器中的低半字
STM& 存储若干寄存器中的字到一片连续的地址空间中
STRD& 存储2 个寄存器组成的双字到连续的地址空间中
PUSH& 把若干寄存器的值压入堆栈中
POP& 从堆栈中弹出若干的寄存器的值
32位转移指令
B& 无条件转移
BL& 转移并连接(呼叫子程序)
TBB& 以字节为单位的查表转移。从一个字节数组中选一个8位前向跳转地址并转移
TBH& 以半字为单位的查表转移。从一个半字数组中选一个16 位前向跳转的地址并转移
其它32位指令
LDREX& 加载字到寄存器,并且在内核中标明一段地址进入了互斥访问状态
LDREXH& 加载半字到寄存器,并且在内核中标明一段地址进入了互斥访问状态
LDREXB& 加载字节到寄存器,并且在内核中标明一段地址进入了互斥访问状态
STREX& 检查将要写入的地址是否已进入了互斥访问状态,如果是则存储寄存器的字
STREXH& 检查将要写入的地址是否已进入了互斥访问状态,如果是则存储寄存器的半字
STREXB& 检查将要写入的地址是否已进入了互斥访问状态,如果是则存储寄存器的字节
CLREX& 在本地的处理上清除互斥访问状态的标记(先前由 LDREX/LDREXH/LDREXB做的标记)
MRS& 加载特殊功能寄存器的值到通用寄存器
MSR& 存储通用寄存器的值到特殊功能寄存器
NOP& 无操作
SEV& 发送事件
WFE& 休眠并且在发生事件时被唤醒
WFI& 休眠并且在发生中断时被唤醒
ISB& 指令同步隔离(与流水线和 MPU等有关——译注)
DSB& 数据同步隔离(与流水线、MPU 和cache等有关——译注)
DMB& 数据存储隔离(与流水线、MPU 和cache等有关——译注)
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:781440次
积分:9956
积分:9956
排名:第559名
原创:395篇
转载:79篇
译文:10篇
评论:516条
(4)(4)(22)(6)(12)(14)(22)(11)(8)(14)(24)(5)(14)(25)(31)(15)(16)(31)(44)(2)(9)(2)(1)(10)(16)(17)(7)(5)(94)

我要回帖

更多关于 arm汇编伪指令 的文章

 

随机推荐