- 1、本文档共88页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章MCS_51单片机的指令系统
*;3.1 指令格式和寻址方式
3.2 指令系统;*;*;*;*;*;*;*;*;*;*; 3. 寄存器寻址
寄存器寻址是在指令中指定某一寄存器的内容为操作数。对累加器A、通用寄存器B、数据指针寄存器DPTR和进位位CY,其寻址时具体的寄存器已隐含在其操作码中,而对选定的8个工作寄存器R0~R7则用操作码的低三位指明所用的寄存器。用户可用PSW中的RS1、RS0来选择寄存器组 。
例如:MOV A,R5;A←R5
功能:把R5中的内容(设R5=61H)送入累加器A中。该指令执行过程如图3-3所示。;*;*;*; 5. 变址寻址
变址寻址是以某个寄存器的内容为基地址,然后在这个基地址的基础上加上地址偏移量形成真正的操作数地址MCS-51单片机可由DPTR或PC作为基址寄存器,由累加器A作为偏移量寄存器。这种寻址方式常用于查表操作。
例如:MOVC A,@A+DPTR ;A←(A+DPTR)
功能:把DPTR中的内容和A中的内容相加作为16位的程序存储器地址,再把该地址对应单元的内容送入累加器A中。执行该指令过程如图3-5所示。;*;*; 设该指令存放于0100H、0101H单元,取出指令后,PC当前值为0102H;对A进行判断,若A=0,则PC内容与偏移量30H相加,得到转移目的地址0132H。故执行完该指令后,PC中的值为0132H,程序从0132H处开始执行。执行过程如图3-6所示。;*;*; 7. 位寻址
位寻址是指对片内RAM的位寻址区和某些有位地址的特殊功能寄存器进行位操作时的寻址方式。位地址与直接寻址中的字节地址形式完全一样,主要由操作码来区分。
例如:MOV C,07H
功能:把内部RAM 20H单元的D7位(位地址为07H)的内容传到位累加器C(即CY)中,其操作过程如图3-7所示。 ;*;*;*;*;*;*;*; (3) 以直接地址为目的操作数的指令(5条)
功能:把源操作数指定的内容送到由直接地址direct所指定的片内RAM中。使用寄存器、直接、寄存器间接和立即4种寻址方式。
MOV direct,A ;(direct)← A
MOV direct,Rn ;(direct )←Rn
MOV direct1,direct2
;(direct1)←(direct2)
MOV direct,@ Ri ; (direct) ←(Ri)
MOV direct,#data ; (direct) ←data
;*;*;*;*;*; [例3.6] 根据累加器A中的数(0~9)查平方表的子程序。
COUNT:PUSH DPH ;保护DPTR内容
PUSH DPL
MOV DPTR,#TABLE ;赋表首址
MOVC A,@A+DPTR ;查表并传送给A
POP DPL ;恢复DPTR原值
POP DPH
RET ;返回主程序控制
TABLE:DB 00,01,04,09,16,25
DB 36,49,64,81;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*; 1.无条件转移指令(4条)
无条件转移指令的功能是当程序执行完此类转移指令后,程序就无条件地转到指令所提供的目的地址去。
LJMP addr16 ;PC←addr16
AJMP addr11 ;PC←PC+2,PC10~0←addr11,
; PC15~11不变
SJMP rel ;PC←PC+2+rel
JMP @A+DPTR ;PC←A+DPTR;*;*;*;*;*;*;*;*;*; JZ和JNZ指令是判别累加器A的内容是否为0来确定是顺序执行还是转移。
CJNE是比较转移指令,通过比较前面两个操作数的大小,如果它们的值不相等则转移,相等则继续执行。指令执行后要影响进位位CY,若操作数1小于操作数2,则CY=1;若操作数1大于操作数2,则CY=0。
JC、JNC、JB和JNB指令的功能分别是判别进位位CY
和直接位地
文档评论(0)