- 1、本文档共78页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
51单片机课件第二章的
第二章 MCS-51指令系统及汇编语言程序设计;§2.1 指令格式;一、单字节指令;二、双字节指令;三、三字节指令;MCS-51汇编语言的形式:;§2.2 寻址方式;一、立即寻址;二、直接寻址;三、寄存器寻址;四、寄存器间接寻址;五、基寄存器加变址寄存器间接寻址;六、相对寻址;§2.3 指令系统;一、数据传送类指令;1.以直接地址为目标和源操作数;2.累加器与外部数据存储器之间;Ⅰ.由DPTR内容指示外部数据存储器地址
(2)累加器内容送外部数据存储器;例:将外部数据存储器从5000H单元开始的50个工作单元清零。;Ⅱ.由Ri内容指示外部数据存储器地址
(1)外部数据存储器内容送累加器;例:设外部数据存储器2097H单元中内容为80H,在执行下列指令后,则A中的内容为80H。;Ⅱ.由Ri内容指示外部数据存储器地址
(2)累加器内容送外部数据存储器;3.程序存储器内容送累加器;例:(A)=30H, (DPTR)=8000H, 执行下列指令:;堆栈的特点:
a.在内部RAM中设定的一个后进先出的区域。
b.堆栈是字节操作。
c.入栈地址增加,出栈地址减少。;5.字节交换指令 ;数据传送类指令;二、算术运算类指令;1.加法指令;例:(A)=85H,(R0)=20H,(20H)=0AFH,执行指令: ADD A, @R0;2.带进位加法指令;3.增量指令;例:两个8位的无符号数相加和是8位。;4.十进制调整指令;5.带进位减法指令;例:设存储单元ST1和ST2中存入两个不带符号的二进制数,找出其中的大数存入ST3单元中。;程序清单:;6.减量指令;7.乘法指令;8.除法指令;三、逻辑操作类指令;1.简单逻辑操作指令;(3)左循环移位指令;(4)右循环移位指令;(5)累加器半字节交换指令;例:在40H,41H单元中分别存放着8位二进制数。要求取出这两个单元中的低半字节、合并成一个字节后,存至42H单元。;2.逻辑“与”指令;3.逻辑“或”指令;4.逻辑“异或”指令;四、位操作类指令;1. 数据位传送指令;2.位变量修改指令;3.位变量逻辑“与”指令;4.位变量逻辑“或”指令;例:P1口为输出口,试看执行下列指令后,结果如何?;5.位变量条件转移指令;五、控制转移类指令;1.无条件转移指令;(2)相对转移指令
功能:这是一条无条件转移指令,新的PC=当前PC+8位带符号??偏移量。
说明:目标地址的范围在-128~+127。;(3)长跳转指令
功能:这是一条无条件转移指令。
说明:目标地址的范围在64K程序存储器地址空间的任何地方。;(4)散转指令
功能:由累加器中8位无符号数与数据指针DPTR中的16位数据相加构成目标地址。
说明:利用该指令可实现程序的散转。不影响标志位。;例:如果累加器A中存入待处理命令编号(0~7),程序存储器中存放着标号为PMTB的转移表首址,则执行下面的程序,将根据A中命令编号转向相应的命令处理程序。;2.条件转移指令;3.比较不相等转移指令;4.减1不为0转移指令;例:延时程序:;5.调用及返回指令;(2)长调用指令
功能:这是一条无条件调用指令。把当前PC入栈,然后转到子程序入口地址。
说明:目标地址的范围在64K程序存储器地址空间的任何地方。不影响任何标志。;(3)返回指令;§2.4 伪指令;例2 带符号的加减运算;双字节原码加减法程序;续:;续:;续:;例:16进制转换成七段代码;续;续
文档评论(0)