zoukankan      html  css  js  c++  java
  • 51单片机汇编学习笔记(待续)

    51\52单片机汇编学习笔记

    写在前面:

    本文适合阅读ppt是参考。笔记参考书籍为《单片机中级教程-原理及应用》,参考ppt为三明学院机电工程学院使用ppt(文章结尾提供下载地址)。笔记内容只有操作指令解析。前面多为名词解释。在学校ppt时可以参考。后面部分为部门重点及难点。有不足,欢迎补充及讨论。指令只是很少的一部分,其余部分可以参考51汇编指令查询(文章结尾提供下载地址),建议结合使用。推荐使用crl+f查询本文中的名称。文章结尾提供部分特殊寄存器介绍图片,可以参考。

    寄存器间接寻址:寄存器中放的是地址,通过间接寻址寄存器管理地址所指单元,在51\52单片机中叫Ri R0R1两个

    Ri

    51\52单片机中叫Ri R0R1两个。用于存储间接地址

    Rn

    当前选定的寄存器区中的8个工作寄存器R0~R7,即n=0~7。,控制寄存器的选择由PSW.3,PSW.4控制。

    PSW.3=0,PSW.4=0,用的就是组0PSW.3=1,PSW.4=0,用的就是组1依次下去

    四组,用于存储立即数

    存储器配置(片内RAM

    89C51片内RAM 128字节(00H7FH

    89C52片内RAM 256字节(00H0FFH

    外部数据存储器

    就是片内以外的RAM

    SP

    指的是堆栈指针寄存器Stack Pointer,指示堆栈的栈顶地址,定位要入栈或出栈的数据的存放位置。

    DPTR数据指针):

    是一个16位的特殊功能寄存器, 其高位字节寄存器用DPH表示,低位字节寄存器用DPL表示,DPTR既可以作为一个16位的寄存器来处理,也可以作为两个独立的8位寄存器来使用。主要功能是存放16位地址,作为片外RAM寻址用的地址寄存器(间接寻址),故称数据指针。

    程序存储器

    用于保存应用程序代码,同时还可以用于保存程序执行时用到的数据通常是只读储存器,因为单片机应用系统大多数是专用系统,一旦研制成功,其软件也就定性,程序固化到只读存储器,用只读存储器作为程序存储器,掉电以后程序不会丢失从而提高系统的可靠性;(具体工作过程可以看ppt第一页单片机的工作过程

    51单片机中访问特殊功能寄存器SFR只能采用直接寻址方式原因:SFR分布在80H0FFH范围内,而52系列单片机有256节的片内RAM,其中的80H0FFHRAMSFR所占地址重叠

    于是规定: 80H0FFH范围内的RAM只能用寄存器间接寻址方式,而SFR只能用直接寻址方式。从而解决了地址冲突的问题。例如:

    é MOV A, 90H 等效于 MOV  A, P1 属直接寻址               éMOV A, @R0 事先知(R0) = #90H                      执行的操作:(90H)  属寄存器间接寻址,   é随意写的指令如:MOV  A, 85H 则是非法的!

    位寻址

    指令中直接给出了操作数所在的位地址。

    例: CLR   P1.0    (P1.0) ← 0

         SETB  ACC.7   (ACC.7)← 1

         CPL    C      ( C )← NOT( C )

    注意:

     1)位地址里的数据只可能是一个 或 

     2)有的位地址十分明确,如 P1.0, ACC.7,

        有的位地址则“不太明确”,如:

        [MOV  A17H ; (A)(17H),17H是字节地址]

        MOV ACC.017H ;(ACC.0)(17H),这里ACC.0

       是位地址所以该指令中的17H22H单元的第7

    片内RAM中有128个位可按位寻址的位,位地址:00H7FH分布在:20H2FH单元;

    另外,在SFR中还有92个位可按位寻址

    既:当进行位寻址时是将22H中的单元进行位排序。然后将其位中的数值进行管理。体会上述例子(ppt第二讲14页)。

    堆栈操作

    堆栈区由特殊功能寄存器堆栈指针SP 管理

    堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM,而是放在RAM区的靠后的位置

    堆栈总是指向栈顶

    通常PUSHPOP两条指令成对使用

    PUSH:将数据压入SP指的地址。指令执行后SP+1

    POP:将sp指的地址数据取出。指令执行后SP+1

    特殊:

    POP  SP;先执行SP-1,然后将SP指向地址的数据赋给SP

    下载地址:

    http://pan.baidu.com/share/link?shareid=433255&uk=1746528470


  • 相关阅读:
    解决下载文件过大而不能下载的问题.... 分类: tomcat 20091106 23:24 404人阅读 评论(0) 收藏
    javascript 的参数有长度限制吗?一个细节引起的误区 分类: 网页编程【html、js】 20091110 08:34 1673人阅读 评论(0) 收藏
    cookie的生死之道 分类: 网页编程【html、js】 20091114 03:51 364人阅读 评论(0) 收藏
    java调用存储过程 分类: java 20091112 08:46 479人阅读 评论(1) 收藏
    Boolean.getBoolean(String name)............. 分类: java 20091112 05:42 1093人阅读 评论(1) 收藏
    greatest()函数 和 least()函数 分类: 数据库 20091108 09:21 810人阅读 评论(0) 收藏
    git push u origin master和git push <远程主机名> <本地分支名>:<远程分支名>作用
    Windows下安装Memcached
    关系型数据库性能优化总结
    GridView导出为Excel乱码解决方案
  • 原文地址:https://www.cnblogs.com/notepi/p/3137088.html
Copyright © 2011-2022 走看看