欢迎来到天天文库
浏览记录
ID:26657199
大小:741.35 KB
页数:150页
时间:2018-11-28
《单片机原理及应用c语言(6)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单片机原理及应用(C语言版)第3章MCS-51指令系统及汇编程序设计主编:周国运本章制作:周国运中国水利水电出版社第3章MCS-51指令系统及汇编程序设计目录3.1汇编语言概述3.2MCS-51单片机寻址方式3.3MCS-51单片机指令系统3.4MCS-51单片机伪指令3.5汇编语言程序设计举例本章讨论MCS-51单片机的指令系统及汇编语言程序设计。内容主要包括:汇编语言基本概念、寻址方式、指令系统、伪指令、汇编语言程序举例。本章是单片机程序设计的基础,即便是主要用C语言做设计程序,但对某些要求较高的部分,还是需要用汇编语言来写程序。3
2、.1汇编语言概述主要内容3.1.1指令和机器语言3.1.2汇编语言3.1.3汇编语言指令格式3.1.1指令和机器语言一、指令和指令系统指令:是计算机中CPU根据人的意图来执行某种操作的命令。指令系统:是一台计算机(CPU)所能执行的全部指令的集合。指令系统的强弱,决定了计算机智能的高低。3.1.1指令和机器语言二、程序和程序设计语言程序:人们编写的、使计算机完成某项工作的指令序列,称为程序。程序设计:编写程序的过程叫程序设计程序设计语言:编写程序的一整套规则、方法。程序设计语言分类:分为机器语言、汇编语言和高级语言等。3.1.1指令和机器语
3、言三、机器语言机器语言:用二进制编码表示每条指令,是计算机能够直接识别和执行的语言。目标程序:用机器语言编写的程序。例如“13+25”,在MCS-51中的机器码为01110100000011010010010000011001用十六进制表示指令码为:74H0DH把13放到累加器A中24H19HA加25,结果仍放回A中3.1.2汇编语言汇编语言:用助记符、符号、数字等表示指令的程序语言。例如,上面的“13+25”的例子可写成:汇编语言程序机器语言代码MOVA,#0DH74H0DHADDA,#19H24H19H相对于机器语言来说,汇编语言容易理
4、解和记忆。汇编语言和机器语言都属于低级语言。3.1.3汇编语言指令格式一、MCS-51汇编语言指令格式由四部分组成,其一般格式如下:[标号:]操作码[操作数][;注释]方括号中的内容可以没有,即可以没有标号、操作数和注释,至少要有操作码。其操作数部分最多可以是三项:[第1操作数][,第2操作数][,第3操作数]对MOV指令,有两项,第1操作数常称为目的操作数,第2操作数称为源操作数。3.1.3汇编语言指令格式例如:START:MOVA,#23H;23H→A“START”为标号“MOV”为操作码“A,#23H”为操作数“23H→A”为注释3.
5、1.3汇编语言指令格式二、MCS-51汇编指令构成1、单字节指令指令中既包含有操作码,也包含有操作数,有两种情况。1)指令码中隐含着对某个寄存器的操作如:“INCA”、“MULAB”、“RLA”、“CLRC”、“INCDPTR”等指令。2)由指令码中的rrr或i指定操作数3.1.3汇编语言指令格式这种情况是指令中使用了Rn或Ri如“MOVRn,A”编码格式为:11111rrrrrr的取值为:0~7,表示R0~R7又如“MOVA,@Ri”编码格式为:1110011ii取值为:0、1,表示R0、R13.1.3汇编语言指令格式2、双字节指令一个字
6、节表示操作码,另一个字节表示操作数或操作数的地址。3、三字节指令一个字节表示操作码,另两个字节表示操作数或操作数的地址。3.2MCS-51单片机寻址方式主要内容3.2.1立即数寻址3.2.2寄存器寻址3.2.3直接寻址3.2.4寄存器间接寻址3.2.5变址寻址3.2.6位寻址3.2.7指令寻址3.2.8寻址空间及指令中的符号寻址方式:就是指CPU寻找参与运算的操作数的方式,或者寻找数据保存位置的方式。7种寻址方式:立即数寻址、寄存器寻址、直接寻址、寄存器间接寻址、变址寻址、位寻址和指令寻址。寻址方式分两类:操作数寻址和指令寻址,在7种寻址方
7、式中,除了指令寻址之外,其余6种都属于操作数寻址。寻址方式是汇编语言程序设计中最基本的内容之一,必须要十分熟悉。3.2MCS-51单片机寻址方式3.2.1立即数寻址立即数寻址也叫立即寻址、常数寻址。其操作数就在指令中,是指令的一部分,紧跟在操作码后面,用“#”符号作前缀,以区别地址。例如:MOVA,#2CH;2CH→AMOVA,2CH;(2CH)→A前者表示把2CH这个数送给累加器A,后者表示把片内RAM中地址为2CH单元的内容送给累加器A。3.2.1立即数寻址立即数也可以是16位的,如:MOVDPTR,#1234HMOVTL2,#2345
8、HMOVRCAP2L,#3456H对于第2条指令,立即数的低8位送给了TL2,高8位送给了TH2;对于第3条指令,立即数的低8位送给了RCAP2L,高8位送给了RCAP2H。3.
此文档下载收益归作者所有