深入理解ARM体系结构-实战汇编语言编程

深入理解ARM体系结构-实战汇编语言编程
共57节 6人在学 课程详情
  • 课程简介

    • 课程简介
    • 答疑说明
  • 基本的汇编程序

    • section指令(1)
    • section指令(2)
    • 符号绑定语句
    • 数据定义指令
    • 汇编表达式
    • 指令集分类
    • 内核寄存器简介
  • 数据传输类指令

    • 数据加载指令MOV和LDR
    • 读存储器中的数据(1)- 字节读取
    • 读存储器中的数据(2)- 半字读取
    • 读存储器中的数据(3)- 字读取
    • 向存储器中写数据(1)- 字节写入
    • 向存储器中写数据(2)- 半字写入
    • 向存储器中写数据(3)- 字写入
    • 前序和后序读取
    • 前序和后序写入
    • 批量读取数据
    • 批量写入数据
    • 压栈和出栈操作
    • 利用栈来保存返回地址和现场
  • 对数据进行运算处理

    • 基本加减运算指令
    • 逻辑运算指令
    • 移位指令
    • 位序操作指令
    • 取最低位的序号
    • 乘法和除法运算
  • 位域操作

    • 位域清除和插入
    • 位域抽取
    • 符号扩展和零扩展
  • 分支跳转与子程序调用

    • 跳转指令简介
    • 直接跳转与间接跳转
    • 函数调用与返回
    • 简单的条件跳转(1)- 条件跳转
    • 简单的条件跳转(2)- IT指令
    • 简单的条件跳转(3)- cbzcbnz
    • 查表跳转
  • C与汇编的混合编程

    • 对变量进行读写
    • 获取函数的返回值
    • 向汇编函数传递参数
    • 从栈中取出多余的参数
    • 在栈中放置局部变量
    • 寄存器的保存和恢复
  • 用汇编实现C程序语句

    • 实现if语句(1)
    • 实现if语句(2)
    • 实现if-else语句(1)
    • 实现if-else语句(2)
    • 实现if-else-if-else语句
    • 实现嵌套if-else
    • 实现for循环
    • 实现continue和break
    • 实现switch-case
    • 在汇编中函数调用
  • 汇编语言编程实践

    • 求和与计数
    • 斐波那契数列计算
  • 课程总结

    • 课程总结

    订阅失败

    深入理解ARM体系结构-实战汇编语言编程
    深入理解ARM体系结构-实战汇编语言编程 ...

    订阅列表已满,请先移出部分订阅内容。

    当前章节需购买后观看
    开通超级会员免费看!专家精选系列课程,满足你从入门到精通!更有问答月卡免费送,你的问题有问必答!
    提交答案

    购买课程

    扫码完成付费,可继续学习全部课程内容

    加载中...
    播放页问题反馈
    视频学习中有任何产品建议都可由此反
    馈,我们将及时处理!

    课时介绍

    指令集分类指令集分类指令集分类指令集分类指令集分类

    课程介绍

    注意注意!本课程所用Keil自带的编译器版本为AC6。由于AC5与AC6在使用时有些地方差异较大,如果你使用AC5(老版本Keil自带的)来学习本课程,则可能会出现各种奇怪的编译、汇编错误。

    建议如果不是特别需要,请更新到最新版本的Keil 5.4.x以上版本。否则,学习过程中出现的一些问题我可能无法帮你解决。


    本课程为《深入理解ARM体系结构(基于Cortex-M架构)》系列课程的其中一个课程,全部课程请见我的CSDN主页。

    image/png

    为什么学习本课程?

    “学ARM汇编,不是让你天天写汇编,而是让你在关键时刻——能调试、能优化、能看懂C背后的真相。”

    虽然绝大部分情况下,我们只需要使用C语言即可完成开发;但是,在某些情况下,掌握好汇编能够助你更进一步解决问题及实现功能。

    • 当程序HardFault或行为异常时,C代码无法直接告诉你原因,但反汇编+寄存器分析可以精准定位问题。

    • C编译器生成的代码不一定最优,在高速信号处理、实时控制等场景,手动嵌入汇编能提升2-5倍性能。

    • 在启动代码、中断服务、RTOS核心等场景,必须结合C和汇编,从而编写性能更高的代码。

    这门课程的特点

    市面上大多数汇编课程存在两大问题:
    1️⃣ 脱离实际需求:大篇幅讲解x86/DOS汇编,而嵌入式工程师真正需要的ARM Cortex-M内容却一带而过。

    2️⃣ 理论脱离实践:只简单的介绍指令语法,却不教如何用汇编解决真实问题。

    本课程在制作过程中,重点强调以下几个方面:

    1. 只教“能救命”的汇编知识:聚焦Cortex-M3/M4核心指令(Thumb-2),放弃“一辈子用不上”的内容(如冷门指令)

    2. 从基本指令出发,回归到C:在学习基本指令及汇编编程后,深入底层研究C语句的实现,学习C和汇编的混合编程

    3. 用工程师的方式教学:通过实践代码+编程练习的方式来学习,进一步提升学习效果。

    image/jpeg

    image/jpegimage/jpegimage/jpeg

     

    推荐课程

    信息系统项目管理师自考笔记

    李明 · 867人在学

    python从0到1:期货量化交易系统(CTP实战,高频及合成K线数据

    王先生 · 22649人在学

    手把手搭建Java超市管理系统【附源码】(毕设)

    汤小洋 · 4282人在学

    Java毕设springboot外卖点餐系统 毕业设计毕设源码 使用教

    黄菊华 · 824人在学

    基于SSM酒店管理系统(毕设)

    小尼老师 · 890人在学

    java项目实战之购物商城(java毕业设计)

    Long · 5195人在学

    手把手搭建Java求职招聘系统【附源码】(毕设)

    汤小洋 · 1525人在学

    Python Django 深度学习 小程序

    钟翔 · 2390人在学

    城管局门前三包管理系统+微信小程序(vue+springboot)

    赖国荣 · 666人在学

    Vue+Uni-app(uniapp)入门与实战+赠送仿美团点餐小程序

    李杰 · 4067人在学

    正在试验
    后自动删除环境
    课程实验
    本次实验时间已到期 00:00:00
    课件正在飞速打包中,请耐心等待几秒钟~