今天学习韦东山老师的《存储管理器实验》这节课时出现了以下汇编代码,由于没有系统的学习过汇编指令,下面的代码真是不懂。

1:
ldr r4, [r1],#4 @ 从Steppingstone读取4字节的数据,并让源地址加4
str r4, [r2],#4 @ 将此4字节的数据复制到SDRAM中,并让目地地址加4
cmp r1, r3 @ 判断是否完成:源地址等于Steppingstone的未地址?
bne 1b @ 若没有复制完,继续
mov pc, lr @ 返回

其中最困惑的就是这个bne指令,从来没见过,老师说这个是循环跳转用的。但我不明白的是我们写java或c时都是for之类,循环体都是包在一个范围内的,这个东东没有什么范围。经过查找学习一些资料,终于明白了。

bne是一个跳转指令,它来源于b指令。b指令可以通过使用文档查到如下用法:


而这个cond中就有一个值是ne,最后组成了bne指令,下图是所有的cond:

再来说一下1b是什么意思:

b这条语句里的b是backward的意思,既然有backward就有forward,所有还有bne 1f语句。1就是段名为1的段。

再结合cmp指令,就是说r1寄存器的地址与r3寄存器的地址不相等时就跳到1段执行,循环就是这样产生的。

最后回顾下这个存储管理器讲的什么内容,我理解就是如何用上sdram(相当于硬盘)。下面的代码已经标出这4步。

_start:
bl disable_watch_dog @ 1.关闭WATCHDOG,否则CPU会不断重启
bl memsetup @ 2.设置存储控制器(设置BANK地址,以便让cpu能用上sdram)
bl copy_steppingstone_to_sdram @ 3.复制代码到SDRAM中
ldr pc, =on_sdram @ 4.跳到SDRAM中继续执行
on_sdram:
ldr sp, =0x34000000 @ 设置堆栈
bl main
halt_loop:
b halt_loop

另外今天看了电影《变形金刚5-最后的骑式》,里面的小机器人吉娃娃好牛逼,希望有一天能做一个。这需要懂嵌入式与人工智能才行。

而我的机器人目前只能做到这样...

转载于:https://www.cnblogs.com/chengzhong/p/7627669.html

智能小车35:从汇编指令bne聊起相关推荐

  1. 35、基于51单片机自动灭火避障智能小车 消防灭火小车系统设计

    摘要 智能作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途.智能小车就是其中的一个体现,本次设计的多功能智能灭火避障小车 ...

  2. 无需编程,DIY自己智能小车的Android蓝牙遥控软件(一)

    每天一段单片机小知识,我们的微信公众号:mcu_51     请记得推荐给身边每一位朋友 很多热衷于玩单片机小车.机器人的童靴,往往也向往着有天能自己编写一个Android手机的遥控程序,通过自己的手 ...

  3. MIPS指令集处理器设计(支持64条汇编指令)

    一.题目背景和意义 二.国内外研究现状 (略) 三.MIPS指令集处理器设计与实现 (一).MIPS指令集功能性梳理 1.MIPS指令集架构 (1).mips基础指令集格式总结 MIPS是(Micro ...

  4. 基于STM32F103智能小车黑线寻迹运动实验(有代码)

    小车设计 利用STM32作为智能小车的主控制器来驱动智能小车的直流电机工作,电机驱动芯片采用L298N微型集成电路电机驱动芯片,配合STM32核心板使用实现四个直流电机运行和pwm软件调速,通过改变直 ...

  5. 逐梦壹号STC32四驱智能小车开发文档(一):原理图设计

    1 项目简介 如果说小时候有什么梦想,那可能就是想拥有一辆属于自己的四驱车了.为了和大家一起圆了造车的梦想,我们将电路学习.PCB设计.焊接与单片机开发结合起来,以视频与文档的形式去讲述如何制作出一辆 ...

  6. 51智能小车小车之蓝牙遥控(二)

    当今世界,远距离遥控是最为实用,蓝牙远程操控是单片机入门的一项很不错的模块,不仅可以练习串口的使用 ,还能开发一些小东西,增加自信心,而且还非常简单. 我买的是汇承的HC-08的蓝牙模块,直接利用串口 ...

  7. 【STM32 .Net MF开发板学习-17】Wifi遥控智能小车

    恰好以前购买的一个PDA含Wifi功能,所以与其用PC通过Zigbee控制智能小车,不如用PDA来控制,这样更为方便,不过由于目前.NET MF开发板不直接支持Wifi功能,所以我们也只好间接控制了, ...

  8. 智能小车设计指导 第二版

    这是我负责主编的设计指导,2009年9月初的第一版,一年之后出了第二版,现在吧链接放出来,有兴趣的可以参考. 点击此处下载 ourdev_599585DAN8LI.rar(文件大小:3.39M) (原 ...

  9. 华清远见智能小车视频服务器,华清远见版世界杯足球对抗赛,智能小车C位出道...

    哎,听说了吗?前天德国输了 听说了,简直扎心,不想接着看了,感觉人生失去了方向 世界杯不看了,可以看华清远见版世界杯足球对抗赛啊 听说还有视频彩蛋呢! 那还等啥啊,走,看看去! 4年一次的世界杯,简直 ...

  10. Micropython教程之TPYBoardv102 DIY蓝牙智能小车实例

    1.实验目的 1.学习在PC机系统中扩展简单I/O接口的方法. 2.进一步学习编制数据输出程序的设计方法. 3.学习蓝牙模块的接线方法及其工作原理. 4.学习L298N电机驱动板模块的接线方法. 5. ...

最新文章

  1. 成功解决VS编译环境下C++语言出现的异常提示:烫烫烫烫烫烫烫烫烫烫
  2. 爬虫-在请求头中添加cookie键值对 访问登陆后可见的页面
  3. 【db】mongodb的故事
  4. 七月二十一日!! NVIDIA DLI 深度学习入门课程——计算机视觉
  5. IIS6.0下ASP的新增功能
  6. 运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(七)
  7. json 和 数组的区别
  8. 云课堂智慧职教中c语言答案,云课堂智慧职教查答案自动答题
  9. qq游戏大厅 for linux,网友第一时间抢先评测:腾讯QQ Linux版
  10. ps中怎么画直线和画参考线
  11. 终极算法——第一章:机器学习的革命
  12. Calendar代替Date类获取当前年月日,getYear,getMonth,getDay
  13. ble zephyr lbs样例,一上电进入广播状态,发送的HCI命令
  14. js 自由变量的取值
  15. 经典神经网络分类器之BP算法和自组织竞争网络
  16. php 微信接口文档例子,微信开发之群发(示例代码)
  17. 数据分析——mat文件
  18. 功能测试之后台会员测试方法
  19. Android屏幕兼容性概览
  20. 018 Boxers (CF1203E)

热门文章

  1. python开发技术文档范文_常用python编程模板汇总
  2. 【Django 2021年最新版教程3】新建一个WebApp项目并运行
  3. SpringBoot+kaptcha生成验证码
  4. 远程 导数据 mysql_mysql远程导入
  5. JavaSE基础——IO流详解(1)字节流和字符流
  6. # 检测中英输入法_奇怪的知识点增加了 手机输入法还能做更多
  7. idea的文件可以mysql运行吗,终于将tiny-sdpm+intellij idea+mysql+jettyt运行成功
  8. oracle虚拟件不活动,BOM 中的虚拟件
  9. 数论——同余和费马小定理
  10. rocketmq 部署启动指南-Docker 版