当前位置: 首页 > news >正文

cmp bne 以及sub指令的详解

之前看到过一个延时函数段:

 

delay:

     ldr r2, =7000000    

     ldr r3, =0x0        

 delay_loop:

     sub r2, r2, #1      //r2=r2-1  

     cmp r2, r3         //cmp会影响z标志位,如果r2=r3,则Z=1;下一句中eq就会成立

     bne delay_loop      //

mov pc, lr              //函数返回  延时函数

 

现在我们来分析一下这个函数的各个指令。

1、cmp比较指令

假设现在AX寄存器中的数是0004H,BX寄存器中的数是0007H。

执行的指令是:CMP  AX,  BX

执行这条指令时,先做用AX中的数减去BX中的数的减法运算。各标志位将会被分别设置成以下值:

  CF:是否有进位或者借位

  ZF:0标志位,就是结果是否为0

  OF:溢出标志位,是否计算机结果溢出了

  SF:符号位,0为正,1为负

2、bne指令

  bne: 标志寄存器中Z标志位不等于零时, 跳转到BNE后标签处

  beq: 标志寄存器中Z标志位等于零时, 跳转到BEQ后标签处

 上面函数中,比较了r2和r3,它们相减,如果结果为0,那么Z标志位置位,就不跳转了,否则就会跳转,形成循环

3、sub r2,r2,#1

  把r2里的数减1,然后放回r2里面。

相关文章:

  • 关于ARM Cortex a 系列的看门狗定时器
  • C语言之 认识可变参数
  • ARM cortex a 的SDRAM (DDR)
  • C语言 之递归函数
  • C语言 之建立静态链接库
  • ARM的PWM定时器1
  • RTC闹钟的中断处理方法以及程序设计
  • altium designer 制作元器件封装库
  • VTK的Mapper
  • VTK交互系统 1 交互模式入门
  • VTK显示像素图
  • VTK交互系统 2 交互器样式
  • VTK交互系统 3 自定义交互器样式
  • VTK交互系统 4 自定义交互器样式2 键盘鼠标交互器设置
  • Qt多线程1
  • __proto__ 和 prototype的关系
  • “大数据应用场景”之隔壁老王(连载四)
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • 30秒的PHP代码片段(1)数组 - Array
  • Angular 响应式表单 基础例子
  • co模块的前端实现
  • Cumulo 的 ClojureScript 模块已经成型
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • Git学习与使用心得(1)—— 初始化
  • HTML5新特性总结
  • iOS小技巧之UIImagePickerController实现头像选择
  • js
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • js中forEach回调同异步问题
  • mockjs让前端开发独立于后端
  • nginx 配置多 域名 + 多 https
  • PHP的类修饰符与访问修饰符
  • Spring Cloud Feign的两种使用姿势
  • 从0到1:PostCSS 插件开发最佳实践
  • 利用jquery编写加法运算验证码
  • 聊一聊前端的监控
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 小程序01:wepy框架整合iview webapp UI
  • 写给高年级小学生看的《Bash 指南》
  • 学习ES6 变量的解构赋值
  • 学习笔记:对象,原型和继承(1)
  • MPAndroidChart 教程:Y轴 YAxis
  • #{}和${}的区别是什么 -- java面试
  • $.ajax()参数及用法
  • (10)ATF MMU转换表
  • (6)STL算法之转换
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (分布式缓存)Redis分片集群
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (五)IO流之ByteArrayInput/OutputStream
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .Family_物联网
  • .net mvc actionresult 返回字符串_.NET架构师知识普及