- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机第3章的
?本章重点:指令的格式、寻址方式、指令功能及使用 ;MCS-51指令格式:;4.助记符
助记符表示指令的操作功能,是指令中唯一不能缺少的部分。;操作数的形式:
(2)工作寄存器名: 如R0~R7
(3)特殊功能寄存器名: 如A,PSW,P1
(4)标号名: 如START,TAB
(5)表达式: 如3+2。;#data8、#data16:分别表示8位、16位立即数。
direct:8位直接地址,表示片内RAM单元的字节地址(00H~7FH)或SFR的字节地址(符号)。
addr11、addr16:分别表示11位、16位地址码。
rel:相对转移指令中的偏移量,为8位带符号数(补码形式-128~+127)。
bit:片内RAM(20H~2FH)中的位地址(00H~7FH)或SFR的位地址。
A:累加器A;ACC则表示累加器A的地址。
Rn:当前寄存器组的8个工作寄存器R0~R7。
Ri:可用作间接寻址的工作寄存器,只能是R0、R1。
@:间接寻址的前缀标志。
$:当前指令的首地址
(x):作为源操作数时,表示x单元中的内容;作为目的操作数时,表示x单元中的数据作为地址的目的单元。
((x)):表示以x单元中的数据作为地址的单元中的内容。;一、立即寻址
立即寻址的特点是指在指令码中直接含有操作数,该操作数紧跟在指令操作码之后,执行指令时从ROM中直接读出,立即得到,称为立即数。书写指令时通常用前缀符号“#”表示。
例如:MOV A,#30H; ;五、变址寻址
以一个基地址加上一个偏移量地址形成操作数地址的寻址方式称为变址寻址。(以DPTR或PC的内容作为基地址、以A中的内容作为偏移量地址)。采用符号:@A+DPTR、@A+PC。
变址寻址只用于访问程序存储器ROM指令和变址寻址转移指令。
例如: MOV DPTR,#3000H ;立即数3000H送DPTR
MOV A,#02H ;立即数02H送A
MOVC A,@A+DPTR ;取ROM中3002H单元中的数送A ;六、相对寻址
以PC的当前值为基地址,加上指令中给出的相对偏移量rel得到目标转移地址后,再送入PC中,从而实现程序跳转。
转移范围:以PC当前值起始地址,相对偏移在-128~+127字节单元之间。
相对寻址方式为相对转移指令所采用,转移的目的地址为:
PC当前值=当前指令首地址+当前指令字节数
目的地址= PC当前值+rel;七、位寻址:通过位地址寻找操作数的寻址方式。
位寻址区域:片内RAM的位寻址区(20H~2FH)、具有位寻址的SFR。;操作数的7种寻址方式和寻址的空间;课堂练习:; MCS-51单片机的数据传送类指令共有29条,分为片内RAM数据传送指令、片外RAM数据传送指令、ROM数据传送指令、堆栈操作指令和交换指令4类。
主要功能:把源地址中的内容传送到目的地址中,但不改变源地址中的内容(交换指令除外)。
特点:除目的操作数为A的指令影响P位外,其它并不影响标志位。
一.用于片内RAM传送的指令( 16条)MOV ;1、以A为目的地址的数据传送指令;例如:MOV 30H,#7AH
MOV R0,#30H
MOV A,@R0
MOV DPTR, #1000H;判断对错:MOV Rn,Rn
MOV @Ri, @Ri
MOV Rn, @Ri
MOV #data, A。 ;课堂练习;二.片外RAM数据传送指令(共4条) MOVX
片外RAM单元的地址为16位,一般用DPTR间接寻址;也可使用Ri来间接寻址(低8位编址时)。;思考:将片内RAM 50H单元内容
→片外RAM 5000H单元;三.用于ROM传送的指令(共2条) MOVC;2.以PC的内容为基地址
以PC的内容为基地址的读ROM指令的机器码是83H,它是单字节指令,取出该指令后,PC的内容自动加1,加1后的这个PC值(称为PC当前值)与A中的地址偏移量相加,得到16位的程序存储器ROM地址,然后,将该地址单元的内容传送到累加器A。指令执行后,PC的内容不变,累加器A内容变为从ROM读出的内容。;例:在ROM 1000H开始存有5个字节数,编程将第二个字节数取出送片内RAM 30H单元中。程序段如下:
MOV DPTR,#1000H ;置ROM地址指针(基址)
文档评论(0)