符号指令及其注释中常用的符号

上传人:豆浆 文档编号:53214765 上传时间:2018-08-28 格式:PPT 页数:92 大小:1.18MB
返回 下载 相关 举报
符号指令及其注释中常用的符号_第1页
第1页 / 共92页
符号指令及其注释中常用的符号_第2页
第2页 / 共92页
符号指令及其注释中常用的符号_第3页
第3页 / 共92页
符号指令及其注释中常用的符号_第4页
第4页 / 共92页
符号指令及其注释中常用的符号_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《符号指令及其注释中常用的符号》由会员分享,可在线阅读,更多相关《符号指令及其注释中常用的符号(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 机器指令的编码格式,一、单字节指令,1、8位编码仅为操作码:,如:INC A。该指令的编码为:0000 0100B,其十六进制表示为04H,累加器A隐含在操作码中。指令的功能是累加器A的内容加1。注意:在指令中用“A”表示累加器,而用“ACC”表示累加器对应的地址(E0H)。,高5位为操作码,低3位为

2、存放操作数的寄存器编码。如:MOV A,R0编码为1110 1000B,其十六进制表示为E8H(低3位000为寄存器R0的编码)。功能是将当前工作寄存器R0中的数据传送到累加器A中。,28位编码含有操作码和寄存器编码,二、双字节指令,第一字节表示操作码,第二个字节表示参与操作的数据或数据存放的地址。 如:MOV A,#50H 编码为0111 0100B,0101 0000B。其十六进制表示为74H,50H。功能是将立即数“50H”传送到累加器A中。http:/,三、三字节指令,指令的第一字节表示该指令的操作码,后两个字节表示参与操作的数据或数据存放的地址。如:MOV 20H,#50H编码为01

3、11 0101B,0010 0000B,0101 0000B。其十六进制表示为75H,20H,50H。功能是将立即数“50H”传送到内部RAM 的20H单元中。,3.1.2 符号指令的格式,一般格式为:操作助记符 目的操作数,源操作数;注释,多数指令为两操作数指令;当指令操作数隐含在操作助记符中时,在形式上这种指令无操作数;另有一些指令为单操作数指令或三操作数指令。指令的一般格式中使用了可选择符号“ ”,包含的内容因指令的不同可以有或无。,在两个操作数的指令中,通常目的操作数写在左边,源操作数写在右边。,如:ANL A,40H功能是将立即数“40H”同累加器A中的数进行“与”操作,结果送回累加

4、器。ANL为“与”操作的助记符,立即数“40H”为源操作数,累加器A为目的操作数。,注:在指令中,多数情况下累加器用“A”表示,仅在直接寻址方式中,用“ACC”表示累加器在SFR区的具体地址E0H。试比较,指令MOV A,30H的机器码为74H、30H;而指令MOV ACC,30H的机器码为75H、E0H、30H。,3.1.3 符号指令及其注释中常用的符号,Rn(n=07)-当前选中的工作寄存器组中的寄存器R0R7之一; Ri(i=0,1)-当前选中的工作寄存器组中的寄存器R0或R1; -间址寄存器前缀; #data -8位立即数; #data16-16位立即数; direct-片内低128个

5、RAM单元地址及SFR地址(可用符号名称表示);,addr11-11位目的地址; addr16-16位目的地址; rel-补码形式表示的8位地址偏移量,值在128127范围内; bit-片内RAM位地址、SFR的位地址(可用符号名称表示); /-位操作数的取反操作前缀; ()- 表示 地址单元或寄存器中的内容;http:/ -将箭头右边的内容送入箭头左边的单元中。,3.2 80C51的寻址方式,是寻找操作数或指令的地址的方式。,80C51的寻址方式有七种。即:寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址寄存器加变址寄存器变址寻址、相对寻址和位寻址。,若不特别声明,我们后面提到的寻址方式

6、均指源操作数的寻址方式。,操作数存放在寄存器中,指令中直接给出该寄存器名称的寻址方式。可以获得较高的传送和运算速度。,3.2.1 寄存器寻址,如: MOV A,R0,寄存器可以是:R0R7;A;B(以AB寄存器对形式出现);DPTR。,指令操作码之后的字节存放的是操作数的地址,操作数本身存放在该地址指示的存储单元中的寻址方式称为直接寻址。,3.2.2 直接寻址,如: MOV A,50H,直接寻址中的SFR经常采用符号形式表示。 寻址空间为:片内RAM低128字节;SFR。,寄存器中的内容为地址,从该地址去取操作数的寻址方式称为寄存器间接寻址 。,3.2.3 寄存器间接寻址,寻址的存储空间为片内

7、RAM或片外RAM。,片内RAM的数据传送采用“MOV”类指令,间接寻址寄存器采用寄存器R0或R1(堆栈操作时采用SP);,片外RAM的数据传送采用“MOVX”类指令,这时间接寻址寄存器有两种选择,一是采用R0和R1作间址寄存器,这时R0或R1提供低8位地址(外部RAM多于256字节采用页面方式访问时,可由P2口未使用的I/O引脚提供高位地址);二是采用DPTR作为间址寄存器。,寄存器间接寻址对应的空间为: 片内RAM(采用R0,R1或SP); 片外RAM(采用R0,R1或DPTR)。,如: MOV A,R0,指令编码中直接给出操作数的寻址方式称为立即寻址。在这种寻址方式中,紧跟在操作码之后的

8、操作数称为立即数。立即数可以为一个字节,也可以是两个字节,并要用符号“”来标识。由于立即数是一个常数,所以只能作为源操作数。立即寻址所对应的寻址空间为:ROM,3.2.4 立即寻址,如: MOV A,50H,以一个基地址加上一个偏移量地址形成操作数地址的寻址方式称为变址寻址。在这种寻址方式中,以数据指针DPTR或程序计数器PC作为基址寄存器,累加器A作为偏移量寄存器,基址寄存器的内容与偏移量寄存器的内容之和作为操作数地址。变址寻址所对应的寻址空间为:ROM,3.2.5 变址寻址,如: MOVC A,A+DPTR,相对寻址是以程序计数器PC的当前值(指读出该2字节或3字节的跳转指令后,PC指向的

9、下条指令的地址)为基准,加上指令中给出的相对偏移量 rel 形成目标地址的寻址方式 。rel 是一个带符号的8位二进制数,取值范围是128127,以补码形式置于操作码之后存放。,3.2.6 相对寻址,如: JC rel ; rel75H,对位地址中的内容进行操作的寻址方式称为位寻址。采用位寻址指令的操作数是8位二进制数中的某一位。指令中给出的是位地址。位寻址方式实质属于位的直接寻址。寻址空间为:片内RAM的20H2FH单元中的128可寻址位;SFR的可寻址位。,3.2.7 位寻址,习惯上,特殊功能寄存器的寻址位常用符号位地址表示。如: CLR ACC.0 MOV 30H,C,3.3 数据传送类

10、指令(29条),传送类指令占有较大的比重。数据传送是进行数据处理的最基本的操作,这类指令一般不影响标志寄存器PSW的状态。,传送类指令可以分成两大类。一是采用MOV操作符,称为一般传送指令;二是采用非MOV操作符,称为特殊传送指令,如:MOVC、MOVX、PUSH、POP、XCH、XCHD及SWAP。,3.3.1 一般传送指令,一、16位传送,这条指令的功能是将源操作数data16(通常是地址常数)送入目的操作数DPTR中。源操作数的寻址方式为立即寻址。,例如:执行指令 MOV DPTR,#1234H 后(DPH)=12H,(DPL)=34H。,二、8位传送,在5种源字节中,只有data不能用

11、作目的字节。所以可以用4种目的字节为基础构造4类指令。相应的源字节选择依据是:http:/ 源字节与目的字节不相同(除direct外); 寄存器寻址与寄存器间接寻址间不相互传送。,1以A为目的,这组指令的功能是把源字节送入累加器中。源字节的寻址方式分别为直接寻址、寄存器间接寻址、寄存器寻址和立即寻址四种基本寻址方式。 例:若(R1)= 20H,(20H)= 55H,执行指令 MOV A,R1 后,(A)= 55H。,2以Rn 为目的,这组指令的功能是把源字节送入寄存器Rn中。源字节的寻址方式分别为立即寻址、直接寻址和寄存器寻址(由于目的字节为工作寄存器,所以源字节不能是工作寄存器及其间址方式寻

12、址)。 例:若(50H)= 40H,执行指令 MOV R6,50H 后,(R6)= 40H。,3以direct 为目的,这组指令的功能是把源字节送入direct中。源字节的寻址方式分别为立即寻址、直接寻址、寄存器间接寻址和寄存器寻址。 例:若(R1)=50H,(50H)=18H,执行指令MOV 40H,R1 后,(40H)=18H。,4以Ri为目的,这组指令的功能是把源字节送入Ri内容为地址的单元,源字节寻址方式为立即寻址、直接寻址和寄存器寻址(因目的字节采用寄存器间接寻址,故源字节不能是寄存器及其间址寻址)。 例:若(R1)=30H,(A)=20H,执行指令 MOV R1,A 后,(30H)

13、=20H。,3.3.2 特殊传送指令,特殊传送指令的操作符为: MOVC、MOVX、PUSH、POP、XCH、XCHD和 SWAP。 功能分别为:ROM查表、外部RAM读写、堆栈操作和交换指令,一、ROM查表,1DPTR内容为基址MOVC A,A+DPTR ;A (A)+(DPTR) 该指令首先执行16位无符号数加法,将获得的基址与变址之和作为16位的程序存储器地址,然后将该地址单元的内容传送到累加器A。指令执行后DPTR的内容不变。,2PC内容为基址 MOVC A,A+PC ;A (A)+(PC) 取出该单字节指令后PC的内容增1,以增1后的当前值去执行16位无符号数加法,将获得的基址与变址

14、之和作为16位的程序存储器地址。然后将该地址单元的内容传送到累加器A。指令执行后PC的内容不变。,二、读写片外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字节的片外RAM空间。指令执行时,低8位地址在R0或R1中由P0口分时输出,ALE信号将地址信息锁存在地址锁存器中(多于256字节的访问,高位地址由P2口提供)。,读片外RAM的MOVX操作,使P3.7引脚输出的信号选通片外RAM单元,相应单元的数据从P0口读入累加器中。http:/,2写片外RAM,MOVX DPTR,A ;(DPTR)(A) MOVX Ri,A ;(Ri)(A) 第一条指令以16位DPTR为间址寄存器写外部RAM,可以寻址整个64K字节的片外RAM空间。指令执行时,在DPH中高8位地址由P2口输出,在DPL中的低8位地址,由P0口分时输出,并由ALE信号锁存在地址锁存器中。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号