版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 3.1 指令及其表示方法指令及其表示方法 3.2 寻址方式寻址方式 3.3 指令系统指令系统第第3 3章章 MCS-51MCS-51指令系统指令系统 3.1 指令及其表示方法指令及其表示方法 3.2 寻址方式寻址方式 3.3 指令系统指令系统第第3 3章章 MCS-51MCS-51指令系统指令系统3.1 指令及其表示方法指令(Instruction):CPU完成某一动作的指示和命令。指令系统(Instruction set) :微机所具有的一切指令的集合。指令系统越丰富,CPU的功能越强。指令的两种表示方法:1机器码(machine code):用二进制代码表示指令。2助记符(mnemoni
2、c):用表征指令功能的字符方式表示指令。MCS-51单片机指令系统共有111条指令。按照指令对应的机器码字节数,可分为:单字节指令49条、双字节指令 46条、三字节指令 16条。其中: 操作码(opecode)表示指令的操作种类。如MOV表示数据传送操作,ADD表示加法操作等。 操作数(operand)表示参与运算的数据或数据的有效地址。例, 指令 机器码 MOV A,23H E5 23 MOV A,#23H 74 23 SWAP A C4 MOV A,R3 EB MOV DPTR,#2068 90 20 68 MOV 50H,#64H 75 50 64 3.1 指令及其表示方法指令及其表示方
3、法 3.2 寻址方式寻址方式 3.3 指令系统指令系统第第3 3章章 MCS-51MCS-51指令系统指令系统寻址方式:寻觅操作数地址或指令地址的方式。MCS-51指令系统共有7种寻址方式: 立刻寻址、直接寻址、存放器寻址、存放器间接寻址、相对寻址、变址寻址和位寻址等。3.2 3.2 寻寻 址址 方方 式式1、立刻寻址(immediate addressing )普通是双字节指令,其中第一个字节是操作码,第二个字节是操作数,操作数在指令中直接给出,又称为立刻数。在立刻数前面必需加上前缀“#。如: MOV DPTR,#1234H 1234H是立刻数,功能是把16位立刻数1234H送到数据指针DP
4、TR中,如图。PCPC+1PC+2100100000001001000110100MOV DPTR,#1234H 机器码:90 12 34操作码操作码立刻数高位立刻数高位立刻数低位立刻数低位0001001000110100DPHDPL立刻寻址表示图MOV DPTR,#1234H 程序存储器例:例: MOV P1,#55H ;将立刻数;将立刻数55H送送P1口口 MOV 20H,#55 ;将立刻数;将立刻数55H送送20H 单元单元 MOV A,#0F0H ;将立刻数;将立刻数0F0H送累加器送累加器A MOV R4,#0FH ;将立刻数;将立刻数0FH送存放器送存放器R4中中 MOV R0,#
5、20H ;将立刻数;将立刻数20H送存放器送存放器R0口口2、直接寻址(direct addressing)在指令中直接给出操作数所在单元的地址,如 MOV A,3AH 功能:把片内RAM中3AH单元内的数据传送给累加器A。如图直接寻址表示图MOV A,3AH 88H3AH内部 RAM88HAPCPC+11110010100111010操作码操作码程序存储器MOV A,3AH 机器码:E5 3A直接寻址方式本卷须知:1寻址范围限于内部RAM的低128字节单元和特殊功能存放器SFR直接地址或名字符号给出。 如PUSH DPH=PUSH 83H。2访问累加器A时,用ACC表示累加器,以便与存放器寻
6、址方式区别。3、存放器寻址(register addressing) 在指令中将指定存放器的内容作为操作数,存放器用符号名表示。如: INC R0 功能:把存放器R0的内容加1,再送回R0中。存放器寻址范围:任务存放器R0-R7,A、B、DPTR及Cy。 如: MOV P1,A ;将累加器A的内容送到P1口 MOV P1,R4 ;将存放器R4的内容送到P1口 CLR A ;将累加器A清0 CPL A ;将累加器A中的内容取反 RL A ;将累加器A的内容循环左移4、存放器间接寻址(register indirect addressing )存放器中存放的是操作数的地址,从该地址中取出的才是操作
7、数。可作为存放器间接寻址的存放器有R0、R1、SP和DPTR,存放器前需加 “。如: MOV A,R0 设R0存放的是3AH,指令的功能是将3AH地址单元的内容送到累加器A中。如图存放器间接寻址表示图存放器间接寻址表示图MOV A,R0 65H3AH内部 RAM3AHAR065H存放器间接寻址的寻址范围:R0或R1为间接寻址存放器寻址片内RAM的低128单元和片外RAM低256单元。DPTR作为间接寻址存放器寻址 片外RAM64KB单元。SP作间接寻址存放器寻址 堆栈区,操作指令PUSH和POP 。5、变址寻址(index addressing )以DPTR或PC为基址存放器,A为变址存放器,
8、两者内容相加构成的16位程序存储器地址为操作数地址,又称基址+变址存放器间接寻址。如 MOVC A,A+DPTR 功能:把DPTR和A的内容相加后得到的程序存储器地址单元的内容送A。6、相对寻址(relative addressing )仅用于相对转移指令。指令中给出的操作数是寻觅指令的相对地址。相对寻址的有效地址:D=PC+relrel为相对地址7、位寻址(bit addressing )位寻址是位操作指令的寻址操作。位寻址区在片内RAM中: 120H2FH,共16个RAM单元,128个位,位地址为00H7FH; 2特殊功能存放器SFR中有11个存放器可以进展位寻址。练习P73:3.1第8小
9、题P73:3.2第3小题 3.1 指令及其表示方法指令及其表示方法 3.2 寻址方式寻址方式 3.3 指令系统指令系统第第3 3章章 MCS-51MCS-51指令系统指令系统3.3 指令系统 MCS-51单片机指令系统包括111条指令,按功能分为: 数据传送指令 算术运算指令 逻辑运算指令 控制转移指令 位操作指令指令的书写规那么表符 号含 义Rn表示当前选定存放器组的任务存放器R0R7Ri表示作为间接寻址的地址指针R0R1#data表示8位立刻数,即00HFFH#data16表示16位立刻数,即0000HFFFFHaddr16表示16位地址,用于64K范围内寻址addr11表示11位地址,用
10、于2K范围内寻址direct8位直接地址,可以是内部RAM区的某一单元或某一公用功能存放器的地址rel带符号的8位相对地址-128+127bit寻址位XX地址单元中的内容,或X作为间接寻址存放器时所指单元的内容 将 后面的内容传送到前面去 3.3.1 数据传送类指令数据传送类指令数据传送操作是指把数据从源地址传送到目的地址,源地址内容不变。 包括内部 RAM、存放器、外部RAM以及程序存储器之间的数据传送。数 据目的地址 源地址1. 内部8位数据传送指令15条 主要用于MCS-51单片机内部RAM与存放器之间的数据传送。格式: MOV , 1) 以累加器A为目的地址的传送指令4条 助记符相应操
11、作MOV A,RnRnAMOV A,direct(direct)AMOV A,Ri(Ri)AMOV A,#datadataA例:知相应单元的内容如下,请指出每条指令执行后相应单元内容的变化。 累加器A40H存放器R050H内部RAM:40H30H内部RAM:50H10H (1) MOV A,#20H (2) MOV A,40H (3) MOV A,R0 (4) MOV A,R0 (1) A=20H (2) A=30H (3) A=50H (4) A=10H 2) 以Rn为目的地址的传送指令3条助记符相应操作MOV Rn,AA RnMOV Rn,direct(direct)RnMOV Rn,#d
12、atadataRn3) 以直接地址为目的地址的传送指令5条助记符相应操作MOV direct,AA (direct)MOV direct, RnRn(direct)MOV direct2, direct1 (direct1)(direct2)MOV direct, Ri(Ri) (direct)MOV direct,#datadata(direct)4) 以存放器间接地址为目的地址的传送指令助记符相应操作MOV Ri,AA (Ri)MOV Ri,direct(direct)(Ri)MOV Ri,#datadata(Ri)2、16位数据传送指令1条MOV DPTR,#data 16 功能:把16
13、位常数送入DPTR。独一的16位立刻数传送指令。执行结果:把高位字节立刻数送入DPH,低位字节立刻数送入DPL。如:MOV DPTR,#1234H 结果:DPTR=1234H。综合练习:给出每条指令执行后的结果。 MOV 23H,#30HMOV 12H,#34HMOV R0,#23HMOV R7,#22HMOV R1,12HMOV A,R0MOV 34H,R1MOV 45H,34HMOV DPTR,#6712HMOV 12H,DPHMOV R0,DPLMOV A,R0(23H)=30H(12H)=34HR0=23HR7=22HR1=34HA=30H(34H)=34H(45H)=(34H)DPT
14、R=6712H(12H)=67HR0=12HA=67H段1:段2:3. 外部数据传送指令4条助记符相应操作MOVX A,DPTR(DPTR)AMOVX A, Ri(Ri)AMOVX DPTR, AA(DPTR)MOVX Ri, AA (Ri) 留意:内部RAM间可以直接进展数据传送,但与外部RAM进展数据传送只能经过累加器A。A与外部RAM之间传送数据时只能用间接寻址方式,首先将要读或写的地址送入DPTR或RiR0或R1中,然后再用读写命令。例:把外部数据存储器2040H单元中的数据传送到外部数据存储器2560H单元中去。 解:MOV DPTR,#2040H MOVX A,DPTR ;先将20
15、40H单元的内容传送到累加器A中 MOV DPTR,#2560H MOVX DPTR,A ;再将累加器A中的内容传送到2560H单元中例:将片外RAM 0000H单元的数据传送到片内RAM 60H单元。 解: MOV DPTR,#0000HMOVX A,DPTR;先将2040H单元的内容传送到累加器A中MOV 60H,A ;将累加器A中的内容传送到片内60H单元中4. 交换和查表类指令9条1) 字节交换指令3条助记符相应操作XCH A,RnRn AXCH A,direct(direct) AXCH A,Ri(Ri) A2) 半字节交换指令1条3) 累加器A中高4位和低4位交换1条助记符相应操作
16、XCHD A,Ri(Ri) 30 A 30助记符相应操作SWAP AA 74 A 304) 查表指令2条 用于查找存放在程序存储器中的表格。用于查找存放在程序存储器中的表格。助记符相应操作MOVC A,A+PC(A+PC)AMOVC A,A+DPTR(A+DPTR)A5) 堆栈操作指令2条 助记符相应操作PUSH directSP+1SP(direct)(SP)POP direct(SP)(direct)SP-1SP留意:累加器A入栈、出栈指令中A用ACC表示, 即PUSH/POP ACC 或 PUSH/POP 0E0H例:知当前SP38H,(10H)70H; 执行指令:PUSH10H 指令执
17、行后:SP=? (10H)=? (39H)=?答:SP39H,10H70H,39H70H。入栈操作表示图入栈操作表示图例:SP=40H,(40H)=68H,A=20H,POPACC指令执行后;SP?,(40H)?,A?答:SP3FH,(40H)68H,A68H出栈操作表示图出栈操作表示图例:设堆栈指针为30H,把A和DPTR中的内容压入,然后根据需求再把它们弹出,编写实现该功能的程序段。解: MOV SP,#30H ;设置堆栈指针,30H为栈底地址 PUSH ACC ;SP+1SP,SP=31H,ACC (SP) PUSH DPH ;SP+1SP,SP=32H,DPH (SP) PUSH DP
18、L ;SP+1SP,SP=33H,DPL (SP) POP DPL ;(SP)DPL,SP-1 SP,SP=32H POP DPH ;(SP)DPH,SP-1 SP,SP=31H POP ACC ;(SP)ACC,SP-1 SP,SP=30H 3.3.2 算术运算类指令 1. 加、减法指令22条 1) 加法指令8条助记符相应操作ADD A,RnA+Rn AADD A,directA+(direct)AADD A,RiA+(Ri)AADD A,#datadata+A AADDC A,RnA+Rn+Cy AADDC A,directA+(direct) +CyAADDC A,RiA+(Ri) +C
19、yAADDC A,#datadata+A+Cy A 留意: ADD与ADDC的区别为能否加进位位C。 指令执行结果均在累加器A中。2) 减法指令4条助记符相应操作SUBB A,RnA-Rn-Cy ASUBB A,directA-(direct) -CyASUBB A,RiA-(Ri) -CyASUBB A,#dataA-data-Cy A留意: 减法指令中没有不带借位的减法指令,在需求时,必需先将Cy清0。 指令执行结果均在累加器A中。3) BCD码调整指令1条助记符相应操作DA A将A中的二进制码自动调整为BCD码 留意:DA A指令只能跟在ADD或ADDC加法指令后,不适用于减法。 例:
20、阐明指令MOV A,#05H和ADD A,#08H及DA A的执行结果。解:MOV A,#05H ;05HA ADD A,#08H ;05H+08HA,A=0DH DA A ;自动调整为BCD码,A=13H 4) 加1、减1指令9条 助记符相应操作INC AA+1 AINC RnRn+1 RnINC direct(direct)+1(direct)INC Ri(Ri)+1(Ri)INC DPTRDPTR+1 DPTRDEC AA-1 ADEC RnRn-1 RnDEC direct(direct)-1(direct)DEC Ri(Ri)-1(Ri)例:分别指出指令INC R0和INC R0的执
21、行结果。设R0=30H,30H=00H。解: INC R0 INC R0 ; R0=31H;(30H)=01H,R0中内容不变5) 乘法指令1条 6) 除法指令1条助记符相应操作MUL ABABBA功能:8位无符号数相乘,高字节放入B,低字节放入A。助记符相应操作DIV ABA/B商AA/B余B3.3.3 逻辑运算类指令1) 逻辑与指令6条通常用于将一个字节中的指定位清0,其它位不变。助记符相应操作ANL A,directA(direct) AANL A,RnARn AANL A, RiA(Ri) AANL A, #dataAdata AANL direct, A direct)A(direc
22、t)ANL direct, #data(direct) data(direct)2) 逻辑或指令6条通常用于将一个字节中的指定位置1,其他位不变。助记符相应操作ORL A,directA (direct) AORL A,RnA Rn AORL A, RiA (Ri) AORL A, #dataA data AORL direct, A direct) A(direct)ORL direct, #data(direct) data(direct)3) 逻辑异或指令6条“异或原那么是一样为0,不同为1。助记符相应操作XRL A,directA (direct) AXRL A,RnA Rn AXRL
23、 A, RiA (Ri) AXRL A, #dataA data AXRL direct, A direct) A(direct)XRL direct, #data(direct) data(direct) 4) 累加器A清0和取反指令2条助记符相应操作CLR A0ACPL AAA5 循环移位指令4条 留意:执行带进位的循环移位指令之前,必需给留意:执行带进位的循环移位指令之前,必需给C C置位或清置位或清0 0。 助记符相应操作RL AD7D0 RR AD7D0 RLC ACD7D0RRC ACD7D03.3.4 控制转移类指令 控制转移类指令的本质是改动程序计数器PC的内容,从而改动程序的
24、执行方向。 控制转移指令分为:1无条件转移指令:程序无条件转移到指定处。2条件转移指令:指令中给出转移条件,执行指令时,先测试条件,假设满足条件,那么程序发生转移,否那么,仍顺序执行程序。 1. 无条件转移指令4条1) 长转移指令1条指令转移范围:64 KB助记符相应操作LJMP addr16addr16PC2) 绝对转移指令1条指令转移范围:2KB助记符相应操作AJMP addr11PC+2PC, addr11 PC.10PC.0 高5位不变3) 短转移指令 1条转移范围是前128后127字节。助记符相应操作SJMP relPC+2PC,PC+relPC小技巧:实践运用中,LJMP、AJMP
25、和SJMP后的addr16、addr11或rel都是用标号来替代的,不用写出详细地址。初学时,一切用SJMP或AJMP的地方都可以用LJMP来替代。4) 间接寻址的无条件转移指令1条 通常用于散转多分支程序。如处置功能键。 助记符相应操作JMP A+DPTRA+DPTRPCKEY: MOV DPTR,#KTAB MOV A,40H ADD A,A JMP A+DPTRKTAB: AJMP FUNC0 AJMP FUNC1 FUNC0: FUNC1: 要求不同功能键执行不同程序段。设每个功能键对应一个键值 X(0XFH)。 设X已存入片内RAM的40H单元中。 假设X=0,那么执行程序段FUNC
26、0 假设X=1,那么执行程序段FUNC11) 累加器A判0指令2条 转移范围:-128+127。两条指令都是根据A的内容能否为0来决议能否转移,指令执行后,A的内容不变。 2. 条件转移指令8条助记符相应操作JZ rel若A=0, 则PCPC+rel, 否则程序顺序执行JNZ rel若A0, 则PCPC+rel, 否则程序顺序执行例: MOV A,R0JZ L1MOV R1,#00HAJMP L2L1: MOV R1,#0FFHL2: END2) 比较转移指令4条 助记符相应操作CJNE A,#data,rel若Adata, 则PCPC+rel,否则顺序执行;若 Adata,则C=1,否则C=
27、0CJNE Rn,#data,rel若 Rndata,则PCPC+rel,否则顺序执行;若Rndata,则C=1,否则C=0CJNE Ri,#data,rel若(Ri)data,则PCPC+rel,否则顺序执行;若(Ri)data,则C=1,否则C=0CJNE A,direct,rel若A(direct),则PCPC+rel,否则顺序执行;若A(direct),则C=1,否则C=0转移范围:-128+127。3) 减1非零转移指令2条通常用于循环程序中控制循环次数。助记符相应操作DJNZ Rn,relRnRn-1,若Rn0,则PCPC+rel, 否则顺序执行DJNZ direct,rel(di
28、rect)(direct)-1,若(direct)0,则PCPC+rel,否则顺序执行例:程序循环执行100次.MOV R2,#100 ;设循环计数器初值LOOP: ;多次循环程序段 DJNZ R2,LOOP ;循环控制 ;循环终了4)判C标志指令2条 助记符相应操作JC rel若Cy=1,则PCPC+rel,否则顺序执行JNC rel若Cy1,则PCPC+rel,否则顺序执行5) 位条件转移指令3条 JBC与JB指令的区别是:前者转移后并把寻址位清0,后者只转移不清0寻址位。助记符相应操作JB bit,rel若(bit)=1,则PCPC+rel, 否则顺序执行JNB bit,rel若(bit
29、)=0,则PCPC+rel, 否则顺序执行JBC bit,rel若(bit)=1,则PCPC+rel,(bit)=0; 否则顺序执行,(bit)=0.3. 调用和前往指令5条子程序调用和前往指令也使程序发生转移。子程序调用过程与转移指令不同: 转移时,PC当前值没有入栈保管。而子程序调用时,PC值入栈保管,并可经过前往指令前往主程序。2) 绝对调用指令1条助记符相应操作ACALL addr11PC+2PC,SP+1SP, PC07 (SP)SP+1SP, PC815 (SP)addr11PC1001) 长调用指令1条助记符相应操作LCALL addr16PC+3PC,SP+1SP, PC07 (SP)SP+1SP, PC815 (SP)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 船舶厂质量管理体系办法
- 2026浙江宁波某机关事业单位招聘编外人员1人笔试备考题库及答案解析
- 2026上海松江区社区工作者公开招聘103人笔试模拟试题及答案解析
- 2026年威海职业学院第二批公开招聘高层次人才笔试参考题库及答案解析
- 北京市大兴区审计局机关招聘劳务派遣人员2人笔试模拟试题及答案解析
- 招聘2人!中国科学院青海盐湖研究所2026年下半年管理、支撑岗位招聘考试参考题库及答案解析
- 2026年上海市卢湾区公务员人员招聘笔试试题与答案详解
- 2026昆明市盘龙区文化和旅游局公益性岗位招聘2人考试备考试题及答案解析
- 2026福建莆田市第六医院公开招聘精神科医生3名笔试备考题库及答案解析
- 2026年广西壮族自治区玉林市公务员人员招聘笔试参考试题与答案详解
- 2026年质量管理体系内部审核员考试审核发现与报告备考习题及答案
- 2026年山东省潍坊市建设工程专业技术资格考试建筑工程题库及答案
- 湖北荆州市监利市2025-2026学年八年级上学期期末英语试题(含答案)
- 全国农业水产行业职业技能大赛水生物病害防治员选拔赛试题及答案
- 湖南省2027届高三九校联盟第一次联考英语试卷(含答案及解析)+听力原文及音频
- 大思政课视域下推进中小学学科德育的策略研究
- T/CNFAGS 16-2024绿色甲醇分级标准(试行)
- 学校物业外包管理方案与安全监管措施
- DB51∕T 2244-2016 农村公路路面典型结构设计指南
- 屋面防水技术规范
- 《电影剧本写作基础》悉德菲尔德
评论
0/150
提交评论