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

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里面。

cmp bne 以及sub指令的详解相关推荐

  1. Nginx SSI指令配置详解

    这篇文章主要介绍了Nginx SSI指令配置详解,本文讲解了什么是SSI.为什么要用SSI.nginx配置SSI.页面上配置.配置示例等内容,需要的朋友可以参考下 什么是SSI Server Side ...

  2. route指令使用详解

    参考:route指令使用详解 1.观察路由表信息: route [-nee] -n :不要使用通讯协定或主机名称,直接使用 IP 或 port number: -ee :使用更详细的资讯来显示 2.输 ...

  3. at指令 meid_AT指令大全详解完整版

    file:///F|/学习资料/AT指令大全/AT指令大全详解完整版.txt[2012-03-12 09:50:51] 一.    一般命令 1.    AT+CGMI 给出模块厂商的标识. 2.   ...

  4. 【参考】Android wm指令用法详解

    我就放些我自己大概率会用到的指令在这儿,详细的看原文地址. 原文地址:Android wm指令用法详解 - 走看看 adb shell SE:/ $ wm size        //查看当前分辨率 ...

  5. Win32反汇编(二)几种常见的指令反汇编详解:EAX、MOVSX与MOVZX、LEA、SUB、CMP与转移指令

    前言 作者:浪子花梦,一个有趣的程序员 ~ 此系列文章都是一些基础的文章,每篇文章都通过几个小例子快速的了解 Win32反汇编与OD的使用,在此作个笔记 如若对您有帮助,记得三连哟 ~ 前文链接 Wi ...

  6. linux下top指令参数详解及用法

    一.命令介绍 Linux top命令用于实时显示 process (进程)的动态. 它用于监控正在运行系统负荷的信息,包括系统负载.CPU利用分布情况.内存使用.每个进程的资源占用情况等. 使用权限: ...

  7. Mac terminal find 指令常用详解

    Find 详解 逻辑运算符 -o 或者 !非 如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件 文件名 find . -name "*.rmvb" 正 ...

  8. 计算机操作指令arp,详解在win7电脑中操作ARP命令的详细步骤

    在我们的电脑中很多的设置都是需要一定的技巧来实现的,那在操作不同的设置的时候使用命令的形式是最快的方法,可以实现操作的命令也是很多的,那需要使用到ARP命令的小伙伴在网络上提问怎么实现使用的呢,其实A ...

  9. Linux基础指令(详解版)

    Linux介绍: 特点: 开源.免费.自由使用:多用户.多线程.多任务.多CPU.组成:Linux = 内核 + shell + 文件系统 + 应用程序应用:服务器.手机操作系统......分支:Re ...

最新文章

  1. Fortify 17.10进行源代码安全扫描的方法
  2. 拆位 ---- C. Johnny and Another Rating Drop[位运算,计算每一位的贡献+推导过程]
  3. java常用 api
  4. 分布式架构的分布式文件系统
  5. kotlin和java语言_Kotlin VS Java – 2020年您应该学习哪种编程语言?
  6. 众多SEO专家集体盛赞
  7. c语言开根函数不用math,c语言开平方函数怎么用 该函数头文件:math.h;
  8. dlna android电视,DLNA推送安卓手机投屏电视
  9. 如何用计算机录视频,如何用电脑录视频?
  10. python 3 过滤股票
  11. matlab contour3函数,matlab 等值线函数 contour
  12. 保姆级教程:NobePay从注册到充值开卡全过程
  13. 华为云Nginx配置
  14. 用matlab绘制抛物线y的x平方,matlab绘制抛物线轨迹
  15. 【笔记】机器视觉 光源篇
  16. 交互设计书单--西南交大课程推荐
  17. 城镇水务系统碳减排路径|雨水系统
  18. Utorrent死机恢复种子下载
  19. Android Navigation使用
  20. 目前android版本最好,当前主流的7个手机系统,你认为哪个最好用?

热门文章

  1. odoo java_odoo简介
  2. PHP 使用 ElasticSearch 做搜索
  3. MOSFET IGBT
  4. Java集合学习十三 SortedMap
  5. redis 哨兵集群搭建
  6. 互联网化浪潮冲击下电信系统如何转型
  7. a16z:如何改善 Web3 治理?
  8. c# 整数除法取整_c# 三种取整方法 向上取整 向下取整 四舍五入
  9. 网络编程 协议和网络应用程序设计模式
  10. 外汇基础概念--汇率