网站大量收购独家精品文档,联系QQ:2885784924

第三章 汇编程序设计最新.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 单片机汇编程序设计 3.1 MCS-51系列单片机汇编指令格式及标识 3.1 MCS-51系列单片机汇编指令格式及标识 3.2 MCS-51系列单片机的寻址方式 寻找操作数所在单元地址的方式。 在MCS-51单片机中,共使用了七种寻址方式: 操作数在指令中直接给出。 MOV A, #20H ;A← 立即数 20H ADD A,#05H ;A←(A)+立即数 05H 注意:(A)指A的内容; 符号“#”表明其后跟的是立即数; 立即数——常数。 操作数的地址由指令直接给出。 如: MOV A, 20H ;A ← (20H) MOV 30H,4AH ;(30H)←(4AH) 3. 寄存器寻址 操作数在寄存器中。 例: MOV A,R0 ; A ←(R0) 注意: 这种寻址方式中,寄存器可以是R0~R7这 8个通用寄存器和部分特殊功能寄存器(如累加器A、寄存器B、数据指针DPTR等。 4.寄存器间接寻址 例如: ORG 2000H SJMP 54H ; 每条指令在程序存储器ROM中占据一定的空间,以字节为单位。按指令 所占字节数 分类: 单字节(49条); 双字节(46条); 3字节(16条) 在使用传送指令时,可以根据实际情况选用恰当寻址方式。上面给出的各种类型的传送指令是Intel公司在设计MCS-51的硬件时就已经确定下来。编程人员只能像查字典一样去查找、使用。 不能根据主观意愿去“创造”指令。 源操作数和目的操作数中的Rn和@Ri不能相互配对。如,不允许有“MOV Rn,Rn”,“MOV @Ri,Rn” 这样的指令,在MOV指令中,不允许在一条指令中同时出现工作寄存器,无论它是寄存器寻址还是寄存器间接寻址。 如:LJMP AAAAH ; AAAAH?PC 【举例】: 已知某单片机的监控程序地址为A080H,试问用什么方法使单片机开机后自动的转向该监控程序? 2)绝对转移指令 3)相对转移SJMP指令 格式:SJMP rel ;PC ← PC + 2 + rel rel 为偏移量( +127~-128) rel(偏移量)的计算公式: rel=目标地址 – 源地址 – 2 (其中:2为SJMP指令的长度) 汇编程序设计步骤 (1)分析题意确定算法。对复杂的问题进行具体分析,找出合理的计算方法及适当的数据结构。 (2)根据算法画出程序框图。画程序框图可以把算法和解题步骤逐步具体化,以减少出错的可能性。 (3)编写程序。 实例3:已知30H单元中有一变量X,要求编写一程序按下述要求给Y赋值,结果存入31H单元。 X+1, X>0 Y = 0 , X = 0 –1 , X<0 题意:根据X的不同,程序编写时有三个出口,即有三个分支!!!! 设内部RAM20H单元和30H 单元中分别存放了两个8位的无符号数 X、Y, 若X≥Y 则让P1.0管脚连接的LED亮;若XY 则让P1.1管脚连接的LED亮。 X EQU 20H Y EQU 30H ORG 0000H MOV A,X CLR C JC L1 SJMP FINISH L1: FINISH: SJMP $ END 2.减法指令 1)带借位减法指令SUBB SUBB A,Rn ;A← A - Rn - C SUBB A,direct ;A← A -(direct)- C SUBB A,@Ri ;A← A –((Ri))- C SUBB A,#data ;A← A - #data – C

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档