51单片机汇编部分资料
来源:互联网 发布:淘宝950轮播图片特效 编辑:程序博客网 时间:2024/05/21 16:57
51单片机汇编启动文件详解,包括了里面用到的种种汇编伪代码的详解
链接:
https://wenku.baidu.com/view/b788fce8a98271fe900ef906.html
或者:http://www.eeworld.com.cn/mcu/2015/0115/article_18006.html
若链接失效,可在百度文库里搜索:STARTUP51、STARTUP51.A51详解。
51单片机的idata,xdata,pdata,data的详解:
https://www.cnblogs.com/jikexianfeng/p/5870357.html
51汇编伪指令:
http://blog.csdn.net/qlexcel/article/details/78552738?locationNum=4&fps=1
该文章详解了常见的汇编伪指令,有:DS、BIT、USING、SEGMENT、RSEG、CSEG、XSEG、ISEG、BSEG、ORG、EQU、DATA 、DB 等
这里只介绍几个比较难懂的几个:
SEGMENT用于声明一个可重定位的段,形如(段名 SEGMENT 段所在的存储区)例如:
?C_C51STARTUP SEGMENT CODE ;段名?C_C51STARTUP,该段被声明为代码段,被链接到CODE区?STACK SEGMENT IDATA;段名??STACK,该段被声明为数据段,被链接到内部RAM区,即IDATA区
上面这些只是声明,如果打算在这些段中放入代码或变量,必须使用重定位指令RSEG,例如:
RSEG ?STACK;选择之前定义过的一个可重定位的段?STACK,下面的汇编语句将会被放置到该段,直到遇到下一个段定位指令,例如CSEG/RSEG/DSEG等。DS 1;预留存储区命令。声明先占用一个字节的空间,在编译时,这个预留的空间不会被其他变量所使用。在这里的意义是,给硬件栈分配1个byte(实际这样是有问题的,应该为硬件栈预留更多空间)EXTRN CODE (?C_START);引用外部变量或函数?C_STARTPUBLIC ?C_STARTUP;声明全局变量或函数CSEG AT 0;在代码段中绝对定位(一般用于建立中断向量表)?C_STARTUP: LJMP STARTUP1;地址0总是存放复位向量地址RSEG ?C_C51STARTUP;选择之前定义过的一个可重定位的段?C_C51STARTUP,下面的汇编语句将会被放置到该段
与SEGMENT(可重定位段)指令相对的,还有绝对定位段(不可重定位段)指令:CSEG、XSEG、ISEG、BSEG,绝对定位段指令不需要指定段名,只指定绝对位置即可,如上面的语句:
CSEG AT 0;在代码段中绝对定位,用AT指定绝对地址
阅读全文
0 0
- 51单片机汇编部分资料
- 51单片机汇编
- 51单片机定时器资料
- 51单片机汇编指令速查表
- 51单片机汇编指令速查表
- 51单片机汇编指令集
- 51单片机汇编指令详解
- 51单片机汇编指令详解
- 51单片机汇编指令表
- 51单片机汇编指令详解
- 51单片机汇编延时分析:
- 单片机资料
- 51单片机开始要学汇编吗
- 51单片机c嵌汇编教程
- 51单片机的汇编指令手册
- 51单片机汇编学习笔记(待续)
- 51单片机汇编延时计算详细分析
- 51单片机数码管驱动(汇编版)
- [LUOGU] 1090 合并果子
- tf-idf + svm 文本分类
- 浏览器的内核种类及检测
- AlertDialog的使用
- Photon Server游戏服务器从零开始学习(四)MySQL数据库基础及数据操作
- 51单片机汇编部分资料
- vue实力踩坑 当前页push当前页 无效
- 从bzoj2039,3144 小议最小割模型建立法
- 安卓系统AOSP手记
- A New Representation of Skeleton Sequences for 3D Action Recognition
- SpringBoot定时任务
- ORACLE触发器详解
- RabbitMQ入门教程(十五):普通集群和镜像集群
- Linux下MySQL数据库常用基本操作