编辑: hgtbkwd 2016-06-11

11010111 位寻址区

七、位寻址方式指令给出位地址.一位数据在存储器位寻址区. 例: MOV C,40H;

Cy(位地址40H) 设指令执行前 Cy=1,位地址40H存储器单元如图, 执行指令后, Cy= ? * MCS-51指令系统中共有111条指令,按功能可分为以下四大类:・ 数据传送类・ 算术操作类・ 逻辑操作类・ 控制转移类 3.3 指令的类型、字节和周期 * 3.4 数据传送指令 实现寄存器、存储器之间的数据传送.

1、内部传送指令:片内数据存储器数据传送.

2、外部传送指令:片外数据存储器数据传送.

3、交换指令: 片内数据存储器数据传送.

4、堆栈操作指令:片内数据存储器数据传送.

5、查表指令: 程序存储器数据传送. *

(一)内部传送指令:实现片内数据存储器中数据传送. 指令格式: MOV 目的操作数,源操作数 寻址方式:立即寻址、直接寻址、寄存器寻址、寄存器间址. MOV A,Rn ;

A←Rn,Rn=R0~R7 MOV A,direct ;

A←(direct),MOV A,@Ri ;

A←(Ri),Ri=R

0、R1MOV A,#data ;

A←dataMOV Rn,direct ;

Rn←(direct)MOV @Ri,direct ;

((Ri))←(direct)MOV direct1,direct2 ;

(direct1)←(direct2)MOV DPTR,#d1d2 ;

DPTR←d1d2 * 操作码 目的 源 操作内容 字节数 执行时间 MOV A, #datadirect@RiRn (A)←#data(A)←(data)(A)←((Ri))(A)←(Rn)

2211 1111 Rn, #datadirectA (Rn)←#data(Rn)←(data)(Rn)←(A)

221 121 Data, #dataAdirect@RiRn (data)←#data(data)←(A)(data)←(data)(data)←((Ri))(data)←(Rn)

32322 21221 @Ri, #datadirectA ((Ri))←#data((Ri))←(data)((RO)←(A)

221 121 * 例:顺序执行下列指令序列,求每一步执行结果. MOV A,#30HMOV 4FH,AMOV R0,#20HMOV @R0,4FHMOV 21H,20H ;

A= 30H;

(4FH)= 30H;

R0= 20H;

(20H)= 30H;

(21H)= 30H * 1. 一条指令中不能同时出现两个工作寄存器:非法指令:MOV R1,R2 MOV R2,@R0 2. 间址寄存器只能使用 R

0、R1. 非法指令: MOV A,@R2 3. SFR区只能直接寻址,不能用寄存器间接寻址.非法指令: MOV R0,#80H MOV A,@R0(以上指令的作用是将8052的内部RAM80H内容送A) *

(二)外部传送指令 实现片外数据存储器和A累加器之间的数据传送. 指令格式:MOVX 目的操作数,源操作数 寻址方式:片外数据存储器用寄存器间址方式. 1. DPTR作16位数据指针,寻址64KB片外RAM空间 MOVX A,@DPTR;

A←(DPTR) MOVX @DPTR,A;

(DPTR)←A 2. Ri作8位数据指针,寻址256B片外RAM空间 MOVX A,@Ri;

A←(Ri) MOVX @Ri,A ;

(Ri)←A * 例:实现片外数据存储器数据传送 (2000H)和(2100H). MOV DPTR,#2000HMOVX A,@DPTRMOV DPTR,#2100HMOVX @DPTR,A ;

DPTR= 2000H;

A= X;

DPTR= 2100H;

(2100H)= X 片外数据存储器不能直接寻址. 下列为非法指令: MOVX A,2000H MOVX 2100H,2000H *

(三) 查表指令 实现从程序存储器读取数据到A累加器,只能使用变址间接寻址方式.多用于查常数表程序,可直接求取常数表中的函数值. 1.DPTR为基址寄存器MOVCA,@A+DPTR ;

A?(A+DPTR) 查表范围为 64KB 程序存储器任意空间,称为远程查表指令 . 2. PC为基址寄存器MOVCA,@A+PC;

A?(A+PC) 常数表只能在查表指令后256B范围内. (PC内容为下一条指令的起始地址.) * 查表法求Y=X2.设X(0≤X≤15)在片内RAM的20H单元中,要求将查表求Y,存入片内RAM21H单元.1)ORG 1000HSQU:MOV DPTR,#TAB ;

确定表首地址(基地址)MOV A,20H ;

取X(偏移量)MOVC A,@A+DPTR;

查表求Y=X2MOV 21H,A ;

保存YRET ;

子程序结束…其它程序段ORG 3000H ;

常数表格首地址TAB:DB 00,01,04,09,…,225;

平方表 *

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题