单片机第3章.ppt
《单片机第3章.ppt》由会员分享,可在线阅读,更多相关《单片机第3章.ppt(92页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、3.1 指令格式及常用符号指令格式及常用符号本章分为七节,主要介绍:本章分为七节,主要介绍:3.2 80C51的寻址方式的寻址方式 3.3 数据传送类指令(数据传送类指令(29条条)3.4 算术运算类指令(算术运算类指令(24条)条)3.5 逻辑运算与循环类指令(逻辑运算与循环类指令(24条)条)3.6 控制转移类指令(控制转移类指令(17条)条)3.7 位操作类指令(位操作类指令(17条)条)3.1 指令格式及常用符号指令格式及常用符号3.1.1 3.1.1 机器指令的机器指令的编码编码格式格式一、一、单单字字节节指令指令1 1、8 8位位编码仅为编码仅为操作操作码码:如:如:INC A。该
2、该指令的指令的编码为编码为:0000 0100B,其,其十六十六进进制表示制表示为为04H,累加器,累加器A隐隐含在操作含在操作码码中。中。指令的功能是累加器指令的功能是累加器A的内容加的内容加1。注意:在指令中用注意:在指令中用“A”表示累加器,而用表示累加器,而用“ACC”表示累加器表示累加器对应对应的地址(的地址(E0H)。)。高高5位位为为操操作作码码,低低3位位为为存存放放操操作作数数的的寄寄存存器编码。如:器编码。如:MOV A,R0 编编码码为为1110 1000B,其其十十六六进进制制表表示示为为E8H(低低3位位000为为寄寄存存器器R0的的编编码码)。功功能能是是将将当当前
3、前工工作作寄寄存存器器R0中中的的数数据据传传送送到到累累加加器器A中。中。28位编码含有操作码和寄存器编码位编码含有操作码和寄存器编码二、双字二、双字节节指令指令 第一字第一字节节表示操作表示操作码码,第二个字第二个字节节表示参表示参与操作的数据或数据存放的地址。与操作的数据或数据存放的地址。如:如:MOV A,#50H 编码编码为为0111 0100B,0101 0000B。其十六。其十六进进制表示制表示为为74H,50H。功能功能是将立即数是将立即数“50H”传传送到累加器送到累加器A中。中。三、三字三、三字节节指令指令 指令的第一字指令的第一字节节表示表示该该指令的操作指令的操作码码,
4、后后两个字两个字节节表示参与操作的数据或数据存放的表示参与操作的数据或数据存放的地址。如:地址。如:MOV 20HMOV 20H,#50H#50H 编码编码为为0111 0101B0111 0101B,0010 0000B0010 0000B,0101 0101 0000B0000B。其十六。其十六进进制表示制表示为为75H75H,20H20H,50H50H。功能功能是将立即数是将立即数“50H50H”传传送到内部送到内部RAM RAM 的的20H20H单单元中元中。3.1.2 3.1.2 符号指令的格式符号指令的格式一般格式为:操作助记符操作助记符 目的操作数目的操作数,源操作数,源操作数;
5、注释;注释 多多数数指指令令为为两两操操作作数数指指令令;当当指指令令操操作作数数隐隐含含在在操操作作助助记记符符中中时时,在在形形式式上上这这种种指指令令无无操操作作数数;另另有有一一些些指指令令为为单单操操作作数数指指令令或或三三操操作作数数指指令令。指指令令的的一一般般格格式式中中使使用用了了可可选选择择符符号号“”,包包含含的的内内容因指令的不同可以有或无。容因指令的不同可以有或无。在在两两个个操操作作数数的的指指令令中中,通通常常目目的的操操作作数数写写在在左边,源操作数写在右边左边,源操作数写在右边。如:如:ANL A,40H 功能功能是将立即数是将立即数“40H”同累加器同累加器
6、A中的数中的数进行进行“与与”操作,结果送回累加器。操作,结果送回累加器。ANL为为“与与”操作的助记符,立即数操作的助记符,立即数“40H”为源操作数,累加器为源操作数,累加器A为目的操作数。为目的操作数。注:在指令中,多数情况下累加器用注:在指令中,多数情况下累加器用“A”表示,仅在直接寻址方式中,用表示,仅在直接寻址方式中,用“ACC”表示表示累加器在累加器在SFR区的具体地址区的具体地址E0H。试比较,指令试比较,指令MOV A,30H的机器码为的机器码为74H、30H;而指令;而指令MOV ACC,30H的机的机器码为器码为75H、E0H、30H。3.1.3 3.1.3 符号指令及其
7、注符号指令及其注释释中常用的符号中常用的符号Rn(n=07)-当前选中的工作寄存器组中的当前选中的工作寄存器组中的寄存器寄存器R0R7之一;之一;Ri(i=0,1)-当前选中的工作寄存器组中的当前选中的工作寄存器组中的寄存器寄存器R0或或R1;-间址寄存器前缀;间址寄存器前缀;#data-8位立即数;位立即数;#data16-16位立即数;位立即数;direct-片内低片内低128个个RAM单元地址及单元地址及SFR地址(可用符号名称表示);地址(可用符号名称表示);addr11-11位目的地址;位目的地址;addr16-16位目的地址;位目的地址;rel-补码形式表示的补码形式表示的8位地址
8、偏移量,值位地址偏移量,值在在128127范围内;范围内;bit-片内片内RAM位地址、位地址、SFR的位地址(可的位地址(可用符号名称表示);用符号名称表示);/-位操作数的取反操作前缀;位操作数的取反操作前缀;()-表示表示 地址单元或寄存器中的内容;地址单元或寄存器中的内容;-将箭头右边的内容送入箭头左边的单将箭头右边的内容送入箭头左边的单元中。元中。3.2 80C51的的寻寻址方式址方式是寻找操作数或指令的地址的方式是寻找操作数或指令的地址的方式。80C51的的寻址方式有七种寻址方式有七种。即:。即:寄存器寻寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、直接寻址、寄存器间接寻址、立即
9、寻址、址、基址寄存器加变址寄存器变址寻址、基址寄存器加变址寄存器变址寻址、相对寻址和位寻址。相对寻址和位寻址。若不特别声明,我们后面提到的寻址方式若不特别声明,我们后面提到的寻址方式均指均指源操作数源操作数的寻址方式。的寻址方式。操作数存放在寄存器中,操作数存放在寄存器中,指令中直接给出该寄存器名称的指令中直接给出该寄存器名称的寻址方式。寻址方式。可以获得较高的传送和运算速度。可以获得较高的传送和运算速度。3.2.1 3.2.1 寄存器寄存器寻寻址址如:MOV A,R0 寄存器可以是:寄存器可以是:R0R7;A;B(以(以AB寄存器对形式出寄存器对形式出现);现);DPTR。指令操作码之后的字
10、节存放的是操作数的地址,指令操作码之后的字节存放的是操作数的地址,操作数本身存放在该地址指示的存储单元中操作数本身存放在该地址指示的存储单元中的寻的寻址方式称为直接寻址。址方式称为直接寻址。3.2.2 3.2.2 直接直接寻寻址址如:MOV A,50H 直接寻址中的直接寻址中的SFR经常采用符号形式表示。经常采用符号形式表示。寻址空间为寻址空间为:片内:片内RAM低低128字节;字节;SFR。寄存器中的内容为地址,从该地址去取操寄存器中的内容为地址,从该地址去取操作数作数的寻址方式称为寄存器间接寻址的寻址方式称为寄存器间接寻址。3.2.3 3.2.3 寄存器寄存器间间接接寻寻址址 寻址的存储空
11、间为片内寻址的存储空间为片内RAM或片外或片外RAM。片内片内RAM的数据传送采用的数据传送采用“MOV”类指令,间接寻址寄存类指令,间接寻址寄存器采用寄存器器采用寄存器R0或或R1(堆栈操作时采用(堆栈操作时采用SP););片外片外RAM的数据传送采用的数据传送采用“MOVX”类指令,这时间接寻类指令,这时间接寻址寄存器有两种选择,一是采用址寄存器有两种选择,一是采用R0和和R1作间址寄存器,作间址寄存器,这时这时R0或或R1提供低提供低8位地址(外部位地址(外部RAM多于多于256字节采用字节采用页面方式访问时,可由页面方式访问时,可由P2口未使用的口未使用的I/O引脚提供高位地引脚提供高
12、位地址);二是采用址);二是采用DPTR作为间址寄存器。作为间址寄存器。寄存器间接寻址对应的空间为:寄存器间接寻址对应的空间为:片内片内RAM(采用(采用R0,R1或或SP););片外片外RAM(采用(采用R0,R1或或DPTR)。)。如:MOV A,R0 指令编码中直接给出操作数指令编码中直接给出操作数的寻址方式称为立即寻址。的寻址方式称为立即寻址。在这种寻址方式中,紧跟在操作码之后的操作数称为立即在这种寻址方式中,紧跟在操作码之后的操作数称为立即数。立即数可以为一个字节,也可以是两个字节,并要用数。立即数可以为一个字节,也可以是两个字节,并要用符号符号“”来标识。由于立即数是一个常数,所以
13、只能作来标识。由于立即数是一个常数,所以只能作为源操作数。为源操作数。立即寻址所对应的寻址空间为:立即寻址所对应的寻址空间为:ROM 3.2.4 3.2.4 立即立即寻寻址址如:MOV A,50H 以一个基地址加上一个偏移量地址形成操作数地址以一个基地址加上一个偏移量地址形成操作数地址的寻的寻址方式称为变址寻址。在这种寻址方式中,以数据指针址方式称为变址寻址。在这种寻址方式中,以数据指针DPTR或程序计数器或程序计数器PC作为基址寄存器,累加器作为基址寄存器,累加器A作为偏作为偏移量寄存器,基址寄存器的内容与偏移量寄存器的内容之移量寄存器,基址寄存器的内容与偏移量寄存器的内容之和作为操作数地址
14、。和作为操作数地址。变址寻址所对应的寻址空间为:变址寻址所对应的寻址空间为:ROM3.2.5 3.2.5 变变址址寻寻址址如:MOVC A,A+DPTR 相对寻址是以程序计数器相对寻址是以程序计数器PC的当前值的当前值(指读出该(指读出该2字节字节或或3字节的跳转指令后,字节的跳转指令后,PC指向的下条指令的地址)指向的下条指令的地址)为基为基准,加上指令中给出的相对偏移量准,加上指令中给出的相对偏移量 rel 形成目标地址形成目标地址的寻的寻址方式址方式。rel 是一个带符号的是一个带符号的8位二进制数,取值范围是位二进制数,取值范围是128127,以补码形式置于操作码之后存放。,以补码形式
15、置于操作码之后存放。3.2.6 3.2.6 相相对寻对寻址址如:JC rel;rel75H 对位地址中的内容进行操作对位地址中的内容进行操作的寻址方式称为位的寻址方式称为位寻址。采用位寻址指令的操作数是寻址。采用位寻址指令的操作数是8位二进制数中位二进制数中的某一位。指令中给出的是位地址。位寻址方式的某一位。指令中给出的是位地址。位寻址方式实质属于位的直接寻址。实质属于位的直接寻址。寻址空间为:片内寻址空间为:片内RAM的的20H2FH单元中的单元中的128可寻址位;可寻址位;SFR的可寻址位。的可寻址位。3.2.7 3.2.7 位位寻寻址址 习惯上,特殊功能寄存器的寻址位常用符号位习惯上,特
16、殊功能寄存器的寻址位常用符号位地址表示。地址表示。如:如:CLR ACC.0 MOV 30H,C3.3 数据数据传传送送类类指令(指令(29条)条)传送类指令占有较大的比重。数据传送是传送类指令占有较大的比重。数据传送是进行数据处理的最基本的操作,这类指令进行数据处理的最基本的操作,这类指令一般一般不影响标志寄存器不影响标志寄存器PSW的状态的状态。传送类指令可以分成两大类传送类指令可以分成两大类。一是采用。一是采用MOV操作符,称为一般传送指令;二是采用操作符,称为一般传送指令;二是采用非非MOV操作符,称为特殊传送指令,如:操作符,称为特殊传送指令,如:MOVC、MOVX、PUSH、POP
17、、XCH、XCHD及及SWAP。3.3.1 3.3.1 一般一般传传送指令送指令一、一、16位传送位传送 这条指令的功能是将源操作数这条指令的功能是将源操作数data16(通常(通常是地址常数)送入目的操作数是地址常数)送入目的操作数DPTR中。源操中。源操作数的寻址方式为立即寻址。作数的寻址方式为立即寻址。例如:例如:执行指令执行指令 MOV DPTR,#1234H 后后 (DPH)=12H,(,(DPL)=34H。二、二、8位传送位传送 在在5种源字节中,只有种源字节中,只有data不能用作目的字节。不能用作目的字节。所以可以用所以可以用4种目的字节为基础构造种目的字节为基础构造4类指令。
18、相应类指令。相应的源字节选择依据是:的源字节选择依据是:源字节与目的字节不相同(除源字节与目的字节不相同(除direct外);外);寄存器寻址与寄存器间接寻址间不相互传送寄存器寻址与寄存器间接寻址间不相互传送。1以以A为目的为目的 这组指令的功能是把源字节送入累加器中。源字这组指令的功能是把源字节送入累加器中。源字节的寻址方式分别为直接寻址、寄存器间接寻址、节的寻址方式分别为直接寻址、寄存器间接寻址、寄存器寻址和立即寻址四种基本寻址方式。寄存器寻址和立即寻址四种基本寻址方式。例:若(例:若(R1)=20H,(,(20H)=55H,执行指令,执行指令 MOV A,R1 后,(后,(A)=55H。
19、2以以Rn 为目的为目的 这组指令的功能是把源字节送入寄存器这组指令的功能是把源字节送入寄存器Rn中。中。源字节的寻址方式分别为立即寻址、直接寻址和源字节的寻址方式分别为立即寻址、直接寻址和寄存器寻址(由于目的字节为工作寄存器,所以寄存器寻址(由于目的字节为工作寄存器,所以源字节不能是工作寄存器及其间址方式寻址)。源字节不能是工作寄存器及其间址方式寻址)。例:若(例:若(50H)=40H,执行指令,执行指令 MOV R6,50H 后,(后,(R6)=40H。3以以direct 为目的为目的 这组指令的功能是把源字节送入这组指令的功能是把源字节送入direct中。源字中。源字节的寻址方式分别为立
20、即寻址、直接寻址、寄节的寻址方式分别为立即寻址、直接寻址、寄存器间接寻址和寄存器寻址。存器间接寻址和寄存器寻址。例:若(例:若(R1)=50H,(50H)=18H,执行指令,执行指令MOV 40H,R1 后后,(40H)=18H。4以以Ri为目的为目的 这组指令的功能是把源字节送入这组指令的功能是把源字节送入Ri内容为地址的内容为地址的单元,源字节寻址方式为立即寻址、直接寻址和单元,源字节寻址方式为立即寻址、直接寻址和寄存器寻址(因目的字节采用寄存器间接寻址,寄存器寻址(因目的字节采用寄存器间接寻址,故源字节不能是寄存器及其间址寻址)。故源字节不能是寄存器及其间址寻址)。例:若(例:若(R1)
21、=30H,(,(A)=20H,执行指令,执行指令 MOV R1,A 后,(后,(30H)=20H。3.3.2 3.3.2 特殊特殊传传送指令送指令特殊传送指令的操作符为:特殊传送指令的操作符为:MOVC、MOVX、PUSH、POP、XCH、XCHD和和 SWAP。功能分别为:功能分别为:ROM查表、外部查表、外部RAM读读写、堆栈操作和交换指令写、堆栈操作和交换指令 一、一、ROM查表查表 1DPTR内容为基址内容为基址 MOVC A,A+DPTR ;A(A)+(DPTR)该指令首先执行该指令首先执行16位无符号数加法,将获得的基址与变址位无符号数加法,将获得的基址与变址之和作为之和作为16位
22、的程序存储器地址,然后将该地址单元的内容位的程序存储器地址,然后将该地址单元的内容传送到累加器传送到累加器A。指令执行后。指令执行后DPTR的内容不变。的内容不变。2PC内容为基址内容为基址MOVC A,A+PC ;A(A)+(PC)取出该单字节指令后取出该单字节指令后PC的内容增的内容增1,以增,以增1后的当前值去后的当前值去执行执行16位无符号数加法,将获得的基址与变址之和作为位无符号数加法,将获得的基址与变址之和作为16位位的程序存储器地址。然后将该地址单元的内容传送到累加器的程序存储器地址。然后将该地址单元的内容传送到累加器A。指令执行后。指令执行后PC的内容不变。的内容不变。二、读写
23、片外二、读写片外RAM 1读片外读片外RAM MOVX A,DPTR ;A(DPTR)MOVX A,Ri ;A(Ri)第一条指令以第一条指令以16位位DPTR为间址寄存器读为间址寄存器读片外片外RAM,可以寻址整个,可以寻址整个64K字节的片外字节的片外RAM空间。指令执行时,在空间。指令执行时,在DPH中的高中的高8位位地址由地址由P2口输出,在口输出,在DPL中的低中的低8位地址由位地址由P0口分时输出,并由口分时输出,并由ALE信号锁存在地址锁信号锁存在地址锁存器中。存器中。第二条指令以第二条指令以R0或或R1为间址寄存器,也可为间址寄存器,也可以读整个以读整个64K字节的片外字节的片外
24、RAM空间。指令执空间。指令执行时,低行时,低8位地址在位地址在R0或或R1中由中由P0口分时输口分时输出,出,ALE信号将地址信息锁存在地址锁存器信号将地址信息锁存在地址锁存器中(多于中(多于256字节的访问,高位地址由字节的访问,高位地址由P2口口提供)。提供)。读片外读片外RAM的的MOVX操作,使操作,使P3.7引脚引脚输出的信号选通片外输出的信号选通片外RAM单元,相应单元的单元,相应单元的数据从数据从P0口读入累加器中。口读入累加器中。2写片外写片外RAMMOVX DPTR,A ;(;(DPTR)(A)MOVX Ri,A ;(;(Ri)(A)第一条指令以第一条指令以16位位DPTR
25、为间址寄存器写外为间址寄存器写外部部RAM,可以寻址整个,可以寻址整个64K字节的片外字节的片外RAM空间。指令执行时,在空间。指令执行时,在DPH中高中高8位地址由位地址由P2口输出,在口输出,在DPL中的低中的低8位地址,由位地址,由P0口分时口分时输出,并由输出,并由ALE信号锁存在地址锁存器中。信号锁存在地址锁存器中。第二条指令以第二条指令以R0或或R1为间址寄存器,也可为间址寄存器,也可以写整个以写整个64K字节的片外字节的片外RAM空间。指令执空间。指令执行时,低行时,低8位地址在位地址在R0或或R1中由中由P0口分时输口分时输出,出,ALE信号将地址信息锁存在地址锁存器信号将地址
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机
限制150内