




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本章内容本章内容寻址方式 指令的分类、格式及符号阐明 分类指令 掌握MCS-51指令系统的各种寻址方式掌握每条指令的格式、功能及用法掌握指令的操作过程中操作数的变化情况以及对标志位的影响。学会正确选用指令完成简单的义务学习目的学习目的 MCS-51指令系统共有255种操作代码,用汇编言语表达时,只需熟记42种助记符就能表示33种指令功能共111条指令。 MCS-51的指令系统共用了七种寻址方式。3.1.1 存放器寻址 以存放器的内容为操作数的寻址方式。 可进展存放器寻址的存放器有:任务存放器R0R7、A、B、DPTR和进位CY。MOV A , R0 ;A R0R0(35H)A结果结果A=35H
2、 指令码中直接含有所需的指令码中直接含有所需的操作数,操作数字前加操作数,操作数字前加“# #符符号为前缀。以区别直接地址。号为前缀。以区别直接地址。运用时一定要留意!运用时一定要留意! 1 1MOV AMOV A,44H ;A (44H)44H ;A (44H) 2 2MOV A, #44H ;A 44HMOV A, #44H ;A 44H 直接寻址指令的指令码中含有操作数地址。 功能:将片内RAM 56H单元中的内容34H送到累加器A中。如左图3.134H片内RAM 34H累加器A56H 图3.1 指令传送 3.1.4 存放器间接寻址 指令指定存放器中的内容为操作数的地址。 任务存放器R0
3、、R1和公用存放器DPTR可用于间接寻址,在存放器前加“符号作前缀。MOV A,R0 ;A R0MOV A,R0;A (R0)例如:R065H,65H26H如图3.2所示,执行结果A65H,执行结果A26H。留意:是它区别存放器寻址的标志。26H片内RAMA 65H 图3.2 R065H 相对寻址是将程序计数器PC中的当前内容与指令第二字节所给出的数相加,其和为跳指令的转移地址。 程序存储器A图3-3 指令过程 PC 26H0000H2000H2019H 80H 26H 2028H02H 20H A L U2019H3.1.6 变址寻址 以DPTR和PC基址存放器和累加器A变址存放器的内容和为
4、地址,寻址该地址单元,读取数据。 (1)MOVCA,APC;AAPC(2)MOVCA,ADPTR ;AADPTR 知知: :片外片外ROMROM的的2019H2019H单元中有一数单元中有一数34H34H,编写程序用变址寻址方法把这个数送入编写程序用变址寻址方法把这个数送入A A中,中,试进展分析。试进展分析。 解:根据标题要求,基址可定为解:根据标题要求,基址可定为2000H2000H,地址偏移量那么为,地址偏移量那么为06H06H,程序如下:,程序如下:MOVMOVDPTRDPTR,2000H2000H ;DPTR2000HDPTR2000HMOVCMOVCA A,A ADPTRDPTR
5、;A34HA34HMOVMOVA A,06H06H ;A06HA06H程序存储器A 图3.4 DPTR20 06H0000H34H 2019H 00H A L U 如图如图3.43.4所示所示, ,这里这里A A具有双重作用,具有双重作用,在指令执行前用来存放地址偏移量,在指令执行前用来存放地址偏移量,指令执行后为目的操作数。指令执行后为目的操作数。 当我们把八位二进制数中某一位作为操作数对待时,这个操作数的地址就称为位地址,对位地址寻址简称位寻址。 本节主要论述指令格式、指令的三种表示方式、指令字节数、指令分类和指令系统综述等五个问题。 指令格式是指令码的构造方式。表达方式为: 操作码用MC
6、S-51单片机所规定的助记符来表示,它命令CPU作何种操作。 注释是对该指令作用或功能的阐明,以便于阅读,不参与编译(可有可无,不是必备的)。注释部分前一定要用分号“;隔开。 通常,指令有二进制,十六制和助记符等三种表示方式 假设累加器A中已有一个加数20,那么可以完成206并把结果送入累加器A的加法指令的:二进制方式为: 0011100000000110B;十六进制方式为: 3806H;助记符方式为: ADDA,06H ;A A+06H MCS-51单片机通常可以分为单字节、双字节和三字节指令三种。 单字节指令只需一个字节。通常又可分为两类:1 1无操作数单节指令无操作数单节指令 这类指令的
7、指令码光有操作码字段,操作数是隐含在操作码中的。 这类指令的指令码有操作码字段和专门用来指示操作数所在存放器号的字段组成。 例如:八位数传送指令 MOVA,Rn其中,n的取值范围为07。2 2含有操作数存放器号的单字节指令含有操作数存放器号的单字节指令 双字节指令含有两个字,操作码字节在前,操作数字节在后。 这类指令的指令码的第一字节为操作码,第 二字节为操作数或操作数地址。 MCS-51 MCS-51单片机可以分为五类:单片机可以分为五类:1.指令分类指令分类2)算术运算指令算术运算指令4)位操作指令位操作指令3)逻辑运算指令逻辑运算指令1)数据传送指令数据传送指令5)控制转移指令控制转移指
8、令 这类指令的源操作数和目的操作数地址都在这类指令的源操作数和目的操作数地址都在单片机内部。单片机内部。 知:知:(30H)=12H、(31H)=13H、R0=30H、R1=31H,试问执行以下指令后,试问执行以下指令后A、30H、31H和和32H各是什么?各是什么? MOV A , R0 MOV R1,A MOV R0, #34h MOV 32h , R1执行后,执行后,A=12H ,30H=34H ,31H=12H ,32H=12HPC指向 ;2019单元MOV 7FH ,A ;结果7FH34HSJMP $ ;停顿 知外部RAM的60H单元中有一个数为30H,试编程把30H送到片外RAM的
9、2000H单元中。 解:上面虽都是片外RAM的地址单元,但不能直接传送,必需经过累加器A的转送,才干实现。程序如下:ORG 1000HMOV R1,#60H ;R1=60H MOVX A,R1 ;A30HMOV DPTR ,#2000H ;DPTR=2000HMOVX DPTR,A ;2000H30HSJMP $ ;停顿 知知:片内片内20H单元有一个数为单元有一个数为30H,片外,片外20H单单元有一个数为元有一个数为03H,编程把二个数相互交换。,编程把二个数相互交换。解:程序为:解:程序为:ORG 0030HMOV R0 , #20H ;R030HMOVX A ,R0 ; A03HXCH
10、 A , R0 ;A30H ,20H03HMOVX R0 ,A ;30H20H外部外部RAMSJMP $ ;停顿;停顿PUSHdirect ;SP SP+1,(SP) (direct)POP direct ;(SP) direct, SP SP-1 第一条指令称为压栈指令,用于把direct为地址的操作数传送到堆栈中去。 第二条指令称为出栈指令。 知:(20H)=M1,(50H)=M2编程用堆栈指令把20H和50H单元中内容相交换。解:由堆栈所具备的原那么,程序为:MOV SP ,#60H;栈底首地址为60HPUSH20H;SPSP1,61HM1PUSH50H;SPSP1,62HM2POP 2
11、0H ;20M2,SPSP-1=61H 该类指令是其中心,总共该类指令是其中心,总共49条,分为算术运算指令,逻辑运条,分为算术运算指令,逻辑运算和移位指令等三大类。算和移位指令等三大类。1、加法指令13条(1)不带进位位(Cy)加法(4条)ADD A, Rn ADD A, directADD A, RjADD A, #data 试分析执行如下指令后,累加器试分析执行如下指令后,累加器A和和PSW中各标志的变化情况如何?中各标志的变化情况如何?MOVA ,#5AHADD A , #6BH 解:第一条指令先向累加器解:第一条指令先向累加器A传送一传送一个数个数5AH,第二条为加法指令,机器执行,
12、第二条为加法指令,机器执行加法指令时按带符号数运算。加法指令时按带符号数运算。例例 3.10A= 0 1 0 1 1 0 1 0 Bdata= 0 1 1 0 1 0 1 1 B 90107+ ) 1 1 1 0 0 0 1 0 1 B 1CS1970CP 1AC2.带进位位(Cy)加法(4条)ADDC A, RnADDC A, #dataADDC A, directADDC A, Ri3.加1指令5条 INCA;AA1INCRn;RnRn1INCdirect;(direct)(direct)1INCRi;(Ri)Ri1INCDPTR;DPTRDPTR12、减法指令(8条)1带进位位带进位位C
13、y减法指令减法指令(4条条)000 0011CyACF0Rs1 Rs0OV1P2 2减减1 1指令指令4 4条条DEC A ;AA-1DEC Rn ;RnRn-1DEC direct ;direct(direct)-1DEC Ri ;(Ri)(Ri)-11. BCD加法加法对对A中两个紧缩中两个紧缩BCD数相加之和调整为数相加之和调整为2位位BCD码数。码数。1只能用在对只能用在对BCD码数进展码数进展ADD或或ADDC操操 作后运用。作后运用。2影响标志位:有进位时影响标志位:有进位时 C1。A= 0 1 0 0 0 1 0 0 Bdata=1 0 0 0 0 1 1 0 B 4486+ )
14、0 1 1 0 1 0 0 0 0 B 1 1 0 1 0 0 1 1 0 0 0 0 B 0 1 1 0 0 1 0 1 0 B 130 1 1 0 B 低4位9, 加6调整高4位9,加6调整 MCS51单片机中没有十进制减法调整指令,因此,这里的BCD减法运算必需采用BCD补码运算法那么。 例例 3.17 知:M1和M2中分别存有被减数80和减数25,试编程求差,并把结果存入M3单元中。 解:根据BCD减法的实施步骤,程序如下:两位BCD数的模100BCD减数加60调整BCD差BCD减数减数的补数 1 0 0 1 1 0 1 0 B0 0 1 0 0 1 0 1 B 1 1 1 1 0 1
15、 0 1 B 1 1 0 1 0 1 0 1 0 1 0 1 B 0 1 1 1 0 1 0 1 B 1 0 0 0 0 0 0 0 B +4、乘法和除法指令MULAB ;ABBA ,构成标志 C0积积255 OV1DIVAB ;ABAB,构成标志乘法指令除法指令 C=0除数除数0 OV1除数除数0 OV0 知:有两个8位无符号数乘数分别放在20H和21H单元中,试编写程序把相乘积的低8位放入22H单元中,积的高8位放入23H单元中。 解:求8位无符号单字节乘法,可直接利用乘法指令来实现,程序为: 共共20条,分为与、或、异或、条,分为与、或、异或、A操作指令。操作指令。一与指令一与指令ANL
16、 A,RnANL A,RiANL A,directANL A,#dataANL direct, AANL direct, #data; A A Rn; A A (Ri); A A direct; A A #data; direct direct A; direct direct #data二或指令二或指令 知:A0AAH和P20FFH,编程把累加器A中低4位送入P2口低4位,P2口高位不变。 解:程序思绪为:根据逻辑与、逻辑或二类指令进展合用来实现ORG0030HANL A,0FH ;屏蔽A中的高4位,低4位不变ANLP2,0F0H ;屏蔽P2中的低4位,高4位不变ORLP2,A ;装配数据,
17、结果送P2SJMP$ ;终了三异或指令三异或指令例例 3.21四累加器清零和取反指令四累加器清零和取反指令CPL ACLR A; A A; A 0 知:40H单元中有一数为34H,试写出对它求补的程序。 解:一个8位带符号二进制机器数的补码可以定义为反码加“1。为此,相应程序为:ORG 0030HMOV A ,40H ;A34HCPL A ;A/34HINC A ;A34H的补码MOV 30H ,A ;结果送回40H单元SJMP $ ;停顿RL A ;RR A ;A7A0ACyA7A0ACyA7A0AA7A0ARLC A ;RRC A ; 知:M和M1单元中有一个16位二进制数M为低8,编程将
18、其扩展到二倍留意:该数最大可扩展到65536。 解:一个16位二进制数扩展到二倍就等于是把它进展一次算术左移。由于MCS51单元片机的移位指令都是二进制8位的移位指令,因此16位数的移位指令必需用程序来实现。 算法为: M M+1 0 LJMPaddr16 ;Pcaddr16AJMP addr11 ;PcPC+2,PC100arrr11SJMP rel ;PcPC+2,PCPC+relJMP A+DPTR ;PcA+DPTR1、无条件转移指令、无条件转移指令F800HFFFFHF000HF7FFHE800HEFFFHE000HE7FFHD800HDFFFHD000HD7FFHC800HCFFF
19、HC000HC7FFHB800HBFFFHB000HB7FFHA800HAFFFHA000HA7FFH9800H9FFFH9000H97FFH8800H8FFFH8000H87FFH7800H7FFFH7000H77FFH6800H6FFFH6000H67FFH5800H5FFFH5000H57FFH4800H4FFFH4000H47FFH3800H3FFFH3000H37FFH2800H2FFFH2000H27FFH1800H1FFFH1000H17FFH0800H0FFFH0000H07FFH程序存储器程序存储器64K地址空间地址空间MCS-51系列单片机可以在系列单片机可以在64KB地址
20、范围内寻地址范围内寻址,绝对转移指令的转移范围只在址,绝对转移指令的转移范围只在PC当前值当前值所指的所指的2KB地址范围内。地址范围内。一页:一页: 256个地址单元个地址单元一区:一区: 8页,共页,共2KB地址单元;地址高地址单元;地址高5位决议区。位决议区。 64K: 32区,区,256页。页。 长转移指令长转移指令LJMP addr16 ; PC addr16 三字节指令,不影响标志位,可在三字节指令,不影响标志位,可在64KB地址范围内无条件转移。地址范围内无条件转移。 绝对转移指令绝对转移指令二字节指令,可在二字节指令,可在2KB地址范围内转移。地址范围内转移。AJMP addr
21、11 ; PC PC+2,PC10-0 addr11 知:SZ:AJMP addr11其中,SZ为AJMP addr11指令的标号地址,由该指令在程序存储器中位置确定,addr11为11位地址,试分析该指令执行后的情况以及指令码确实定方法。 解:设SZ=4100H,addr11=11010101101B,那么根据上述指令码格式可得绝对转移指令的指令码为: addr11 AJMPPCPC+1PC+2ROM2KB 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1操作码a9a10a11a7a0PC= 0 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 B=46ADHPC15
22、 PC11a0 . . 短转移短转移机器码: 80H rel 本指令是一条双字节双周期指令,在PC内容加2所指地址上,以rel:-128+127 为偏移量,在一页地址(-128+127)范围内实现短转移。SJMP rel ; PC PC+2+rel SJMP$;偏上. 变址寻址转移指令变址寻址转移指令JMP A+DPTR; PC A+DPTR机器码:机器码: 73H 该类指令是一条单字节双周期无条件转移指令。在64KB地址范围内无条件转移。 知:累加器A中放有待处置命令编号0-4,程序存储器中放有始址为MAIN的两字节长转移指令表,试编一程序能使机器按照累加器A中的命令编号转去执行相应的命令程
23、序。JB rel; A=0 PC PC+2+rel A 0 PC PC+2JNB rel; A0 PC PC+2+rel A=0 PC PC+22、条件转移指令、条件转移指令累加器累加器A判零转移判零转移(2条条) 知:外部RAM中DATA1为始址的数据块以零为终了标志,试编程将之送到以DATA2为始址的内部RAM单元中。 例例3.27 3.27 解:程序为: ORG 1000H MOV R0 ,#DATA1 ;外部RAM数据块始址送R0 MOV R1, #DATA2 ;内部RAM数据块始址送R1MAIN: MOVX A,R0 ;取外部RAM数据送A JZ QUIT ;假设A=0,那么跳转到Q
24、UIT处, ;否那么往下执行 MOV R1,A ;A中的数据送给内部RAM单元中 INC R0 ;修正外部RAM地址的指针 INC R1 ;修正内部RAM地址的指针 SJMP MAIN ;循环执行QUIT: SJMP $ ;停顿CJNE A, #data, rel ;不相等转移不相等转移;#data=A, PC PC+3, C 0 ;#dataA, PC PC+3+rel, C 1CJNE A, direct,rel;不相等转移不相等转移 ;假设假设A=(direct) ,那么那么PCPC+3,C0 ;假设假设A(direct) ,那么那么PCPC+3+rel, C0 ;假设假设Adata ,
25、那么那么PCPC+3+rel, C0 ;假设假设Rndata ,那么那么PCPC+3+rel, C0 ;假设假设(Ri)data ,那么那么PCPC+3+rel, C1DJNZ direct, rel ;(direct) (direct)-1 ;假设(direct)0,那么PCPC+3+rel ;假设(direct)=0,那么PCPC+3DJNZ Rn, rel;Rn Rn1 ;假设Rn=0 那么 PC PC+2 ;假设Rn0 那么PC PC+2+rel减一不为零转移减一不为零转移调用指令调用指令(2条条)ACALL addr11;PC PC+2 ;SP SP+1 ;(SP) PC70 ;SP
26、 SP-1 ;(SP) PC158 维护前往地址维护前往地址 ;PC100 addr11 a)短调用是一条双字节指令,格式为:3、子程序调用和前往指令、子程序调用和前往指令机器码:机器码: a10 a9 a8 1 0 0 0 1 a7 a6 a5 a4 a3 a2 a1 a0 双字节指令,不影响标志位,在双字节指令,不影响标志位,在2KB地址地址范围内寻址,以调用子程序。页数决议于范围内寻址,以调用子程序。页数决议于addr11的高的高3位,页内地址决议于位,页内地址决议于addr11的低的低8位。位。b) 长调用指令长调用指令LCALL addr16;PC PC+3;SP SP+1,(SP) PC70;SP SP1,(SP) PC158;PC addr16 知:MAIN0200H,试问执行如下指令后,中数据如何变化?PC中内容是什么?MOVSP,65H MAIN: LCALL2000H 解:执行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电瓶车保险相关知识培训课件
- 北京五年级考试数学题及答案
- 电焊工职业健康知识培训课件
- 高温防护安全知识培训课件
- 2-Ethyl-ss-ketobutiryl-SCoA-2-Ethyl-ss-ketobutiryl-coenzyme-A-生命科学试剂-MCE
- 新解读《GB-T 25122.1-2018轨道交通 机车车辆用电力变流器 第1部分:特性和试验方法》
- 会考物理考试题及答案
- 电焊学徒基础知识培训总结
- 保定动力技校考试题目及答案
- 蚌埠四中近期考试试卷及答案
- 北京市各县区乡镇行政村村庄村名明细
- 工艺联锁(报警)管理制度
- GB∕T 9286-2021 色漆和清漆 划格试验
- DB35∕T 1844-2019 高速公路边坡工程监测技术规程
- 720全景照片制作方案及发布流程
- 工作责任心主题培训ppt课件(PPT 26页)
- 除尘器基础知识培训资料(54页)ppt课件
- 完整解读新版《英语》新课标2022年《义务教育英语课程标准(2022年版)》PPT课件
- 《国际商务(双语)》课程教学大纲
- 学术学位授权点学位授予基本标准编写指引
- 2011版义务教育生物课程标准word版
评论
0/150
提交评论