51单片机汇编学习笔记(待续)
来源:互联网 发布:淘宝返佣金 编辑:程序博客网 时间:2024/05/01 16:58
51\52单片机汇编学习笔记
写在前面:
本文适合阅读ppt是参考。笔记参考书籍为《单片机中级教程-原理及应用》,参考ppt为三明学院机电工程学院使用ppt(文章结尾提供下载地址)。笔记内容只有操作指令解析。前面多为名词解释。在学校ppt时可以参考。后面部分为部门重点及难点。有不足,欢迎补充及讨论。指令只是很少的一部分,其余部分可以参考51汇编指令查询(文章结尾提供下载地址),建议结合使用。推荐使用crl+f查询本文中的名称。文章结尾提供部分特殊寄存器介绍图片,可以参考。
寄存器间接寻址:寄存器中放的是地址,通过间接寻址寄存器管理地址所指单元,在51\52单片机中叫Ri 有R0和R1两个;
Ri:
51\52单片机中叫Ri 有R0和R1两个。用于存储间接地址。
Rn:
当前选定的寄存器区中的8个工作寄存器R0~R7,即n=0~7。,控制寄存器的选择由PSW.3,PSW.4控制。
PSW.3=0,PSW.4=0,用的就是组0;PSW.3=1,PSW.4=0,用的就是组1,依次下去。
有四组,用于存储立即数
存储器配置(片内RAM):
89C51片内RAM 128字节(00H—7FH)
89C52片内RAM 256字节(00H—0FFH)
外部数据存储器:
就是片内以外的RAM
SP:
指的是堆栈指针寄存器Stack Pointer,指示堆栈的栈顶地址,定位要入栈或出栈的数据的存放位置。
DPTR(数据指针):
是一个16位的特殊功能寄存器, 其高位字节寄存器用DPH表示,低位字节寄存器用DPL表示,DPTR既可以作为一个16位的寄存器来处理,也可以作为两个独立的8位寄存器来使用。主要功能是存放16位地址,作为片外RAM寻址用的地址寄存器(间接寻址),故称数据指针。
程序存储器:
用于保存应用程序代码,同时还可以用于保存程序执行时用到的数据。通常是只读储存器,因为单片机应用系统大多数是专用系统,一旦研制成功,其软件也就定性,程序固化到只读存储器,用只读存储器作为程序存储器,掉电以后程序不会丢失从而提高系统的可靠性;(具体工作过程可以看ppt第一页单片机的工作过程)
在51单片机中访问特殊功能寄存器SFR只能采用直接寻址方式的原因:SFR分布在80H~0FFH范围内,而52系列单片机有256字节的片内RAM,其中的80H~0FFH的RAM与SFR所占地址重叠。
于是规定: 80H~0FFH范围内的RAM只能用寄存器间接寻址方式,而SFR只能用直接寻址方式。从而解决了地址冲突的问题。例如:
é MOV A, 90H 等效于 MOV A, P1 属直接寻址 éMOV A, @R0 ;(事先知(R0) = #90H ) 执行的操作:A ←(90H) 属寄存器间接寻址, é随意写的指令如:MOV A, 85H 则是非法的!
位寻址
指令中直接给出了操作数所在的位地址。
例: CLR P1.0 ;(P1.0) ← 0
SETB ACC.7 ;(ACC.7)← 1
CPL C ;( C )← NOT( C )
注意:
1)位地址里的数据只可能是一个 0 或 1
2)有的位地址十分明确,如 P1.0, ACC.7等,
有的位地址则“不太明确”,如:
[MOV A,17H ; (A)←(17H),17H是字节地址]
MOV ACC.0,17H ;(ACC.0)←(17H),这里ACC.0
是位地址所以该指令中的17H是22H单元的第7位
片内RAM中有128个位可按位寻址的位,位地址:00H—7FH分布在:20H—2FH单元;
另外,在SFR中还有92个位可按位寻址
既:当进行位寻址时是将22H中的单元进行位排序。然后将其位中的数值进行管理。体会上述例子(ppt第二讲14页)。
堆栈操作:
堆栈区由特殊功能寄存器堆栈指针SP 管理
堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,而是放在RAM区的靠后的位置
堆栈总是指向栈顶
通常PUSH与POP两条指令成对使用
PUSH:将数据压入SP指的地址。指令执行后SP+1;
POP:将sp指的地址数据取出。指令执行后SP+1;
特殊:
POP SP;先执行SP-1,然后将SP指向地址的数据赋给SP
下载地址:
http://pan.baidu.com/share/link?shareid=433255&uk=1746528470
- 51单片机汇编学习笔记(待续)
- 单片机学习笔记--51单片机
- 51学习笔记<未完待续>
- GDI+学习笔记(待续)
- SQL学习笔记(待续)
- vim学习笔记(待续...)
- EJB学习笔记 (待续)
- 51单片机学习笔记
- 单片机学习笔记--51单片机基础
- 51单片机学习笔记(二)
- 51单片机学习笔记(三)
- 51单片机学习笔记(四)
- 51单片机学习笔记(五)
- Ajax学习笔记总结(未完待续)
- jasperreport+ireport学习笔记(待续)
- struts2 学习笔记(未完待续)
- Oracle学习笔记(未完待续)
- Linux Glibc(学习笔记五)待续。。。。
- cocos2d-x的初步学习十一之CCTableView
- ios开发真机测试证书申请
- 51单片机多任务操作系统的原理与实现
- 如何学习一个芯片(笔记ing)
- 企业版IDP的申请及“In House”发布
- 51单片机汇编学习笔记(待续)
- ubuntu 源
- 51汇编指令集
- 51单片机的P1
- 关于while 和if
- c字符有关输入输出的小细节小笔记
- C语言位运算详解
- uc/os ii 就续表(被算法打败了)
- [VS2010]逸雨清风 校园网视频,网吧视频(光音网视)下载器 V0.26