《单片机原理、应用及c51程序设计》第3章 单片机汇编程序设计.ppt

《单片机原理、应用及c51程序设计》第3章 单片机汇编程序设计.ppt

ID:55834609

大小:140.00 KB

页数:74页

时间:2020-06-09

《单片机原理、应用及c51程序设计》第3章 单片机汇编程序设计.ppt_第1页
《单片机原理、应用及c51程序设计》第3章 单片机汇编程序设计.ppt_第2页
《单片机原理、应用及c51程序设计》第3章 单片机汇编程序设计.ppt_第3页
《单片机原理、应用及c51程序设计》第3章 单片机汇编程序设计.ppt_第4页
《单片机原理、应用及c51程序设计》第3章 单片机汇编程序设计.ppt_第5页
资源描述:

《《单片机原理、应用及c51程序设计》第3章 单片机汇编程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、3.1MCS-51系列单片机汇编指令格式及标识MCS-51系列单片机指令系统功能强、指令短、执行快。从功能上可分成五大类:数据传送指令、算术运算指令、逻辑操作指令、控制转移指令和位操作指令。3.1.1指令格式[标号:]操作码助记符[目的操作数][,源操作数][;注释](1)操作码助记符表明指令的功能,不同的指令有不同的指令助记符,它一般用说明其功能的英文单词的缩写形式表示。(2)操作数用于给指令的操作提供数据、数据的地址或指令的地址,操作数往往用相应的寻址方式指明。(3)标号是该指令的符号地址,后面须带冒号。(4)注释是对该指令的解释,前面须

2、带分号。3.1.2指令中用到的标识符为便于后面的学习,在这里先对指令中用到的一些符号的约定意义作以说明:(1)Ri和Rn:表示当前工作寄存器区中的工作寄存器,i取0或1,表示R0或R1。n取0~7,表示R0~R7。(2)#data:表示包含在指令中的8位立即数。(3)#data16:表示包含在指令中的16位立即数。(4)rel:以补码形式表示的8位相对偏移量,范围为-128~127,主要用在相对寻址的指令中。(5)addr16和addr11:分别表示16位直接地址和11位直接地址。(6)direct:表示直接寻址的地址。(7)bit:表示可位

3、寻址的直接位地址。(8)(X):表示X单元中的内容。(9)((X)):表示以X单元的内容为地址的存储器单元内容,即(X)作地址,该地址单元的内容用((X))表示。(10)/和→符号:“/”表示对该位操作数取反,但不影响该位的原值。“→”表示操作流程,将箭尾一方的内容送入箭头所指一方的单元中去。3.2MCS-51系列单片机寻址方式MCS-51单片机的寻址方式按操作数的类型,可分为数的寻址和指令寻址,数的寻址有:常数寻址(立即寻址)、寄存器数寻址(寄存器寻址)、存储器数寻址(直接寻址方式、寄存器间接寻址方式、变址寻址方式)和位寻址,指令的寻址有绝

4、对寻址和相对寻址,3.2.1常数寻址(立即寻址)操作数是常数,常数又称为立即数,使用时直接出现在指令中,紧跟在操作码的后面,作为指令的一部分。在汇编指令中,立即数前面以“#”符号作前缀。在程序中通常用于给寄存器或存储器单元赋初值,例如:MOVA,#20H其功能是把立即数20H送给累加器A,其中源操作数20H就是立即数。指令执行后累加器A中的内容为20H。3.2.2寄存器数寻址(寄存器寻址)操作数在寄存器中,使用时在指令中直接提供寄存器的名称,这种寻址方式称为寄存器寻址。在MCS-51系统中,这种寻址方式针对的寄存器只能是R0~R78个通用寄存

5、器和部分特殊功能寄存器(如累加器A、寄存器B、数据指针DPTR等)中的数据,对于其它的特殊功能寄存器中的内容的寻址方式不属于它。在汇编指令中,寄存器寻址在指令中直接提供寄存器的名称,如R0、R1、A、DPTR等。例如:MOVA,R0其功能是把R0寄存器中的数送给累加器A,在指令中,源操作数R0为寄存器寻址,传送的对象为R0中的数据。如指令执行前R0中的内容为20H,则指令执行后累加器A中的内容为20H。3.2.3存储器数寻址存储器数寻址针对的数据是存放在存储器单元中,对于存储器单元的内容通过提供存储器单元地址使用。根据存储器单元地址的提供方式

6、,存储器数的寻址方式有:直接寻址、寄存器间接寻址、变址寻址。一.直接寻址直接寻址是指数据在存储器单元中,在指令中直接提供存储器单元的地址。在MCS-51系统中,这种寻址方式针对的是片内数据存储器和特殊功能寄存器。在汇编指令中,指令中直接以地址数的形式提供存储器单元的地址。例如:MOVA,20H其功能是把片内数据存储器20H单元的内容送给累加器A。如指令执行前片内数据存储器20H单元的内容为30H,则指令执行后累加器A的内容为30H。指令中20H是地址数,它是片内数据存储单元的地址。在MCS-51中,数据前面不加“#”是存储单元地址而不是常数,

7、常数前面要加符号“#”。对于特殊功能寄存器,在指令中使用时往往通过特殊功能寄存器的名称使用,而特殊功能寄存器名称实际上是特殊功能寄存器单元的符号地址,因此它们是直接寻址。例如:MOVA,P0其功能是把P0口的内容送给累加器A。P0是特殊功能寄存器P0口的符号地址,该指令在翻译成机器码时,P0就转换成直接地址80H。二.寄存器间接寻址寄存器间接寻址是指数据存放在存储单元中,而存储单元地址存放在寄存器中,在指令中通过提供存放存储单元地址的寄存器来使用对应的存储单元。形式为:@寄存器名。例如:MOVA,@R1该指令的功能是将以工作寄存器R1中的内容

8、为地址的片内RAM单元的数据传送到累加器A中去。指令的源操作数是寄存器间接寻址。若R1中的内容为80H,片内RAM地址为80H的单元中的内容为20H,则执行该指令后

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。