| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 第1个ARM裸板程序及引申(第004节_汇编与机器码)【修改机器码点亮led2] -> 正文阅读 |
|
[嵌入式]第1个ARM裸板程序及引申(第004节_汇编与机器码)【修改机器码点亮led2] |
汇编代码如下,点亮 jz2440 LED1?灯?
反汇编以后的代码:?上面代码存在伪指令?伪指令转化为在真正 汇编指令? Makefile
最终生成的:?led.on.dis
上面代码解读 : arm 有32个寄存器, r0-r16,? 解析第一条指令 : ? ?0: 00001741 ?andeq r1, r0, r1, asr #14 当前指令地址是0 , pc = ?0 + 8 + ?20 ?= ?0x1c ?去0x1c 读取该地址 写入 r1 第二条: mov ?r0, #5376 ; 0x1500 ? 把 0x1500 写入 r0 第三条: ? ?e5810000 ?str r0, [r1] ?把 r0 0x1500 写入到 r1 对应内存? 第四条: ? ? ?c: ?e59f100c ?ldr r1, [pc, #12] ; 20 <halt+0x8> .....
在上面基础上要实现功能:? 练习: 在 原来编译的 led_on.S ?修改 机器码, 点亮 LED2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?这内部是如何转化的? 看芯片手册:?ARM Architecture Reference Manual?找到mov?指令 ?上图解读:? bit[23-20] 1010 表示mov指令 bit[11-0] 12位如何表示 0x100 研究? ? 分析 : ?0x100是不是 1循环右移 24位 ?? ?这里以32位为准,? 00000....000000000000000(23个0)1 ?右移动24位就是 ? ?00-00(23位)100000000(8个0) 23+1+8=32? ?那么我们把 :? 12位: ?高4位 ?(rotate,移位数) + ?低8位 (immed_8 立即数,循环右移动2*rotate位) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? rotate = 12 ? immed_8 = ?1 -比如: 0x100 ? 立即数:? ?1100 ?00000001 0x400 ? ?1右移动 22位 ? ? 0000...00(21个0)10000....0(10个0) rotate ?= 22/2=11 ?1011 修改: bit[11-0] ?其他的不变,?在LED的基础上 ?修改led.bin 刷进去点亮的是led2? 资源地址:修改机器码点亮led2-资料2021-11-21.zip-Unix文档类资源-CSDN下载 ? ? ? ? ? ? ?? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 11:35:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |