第3章,AT89C51单片机,指令系统.ppt

3.1 指令系统概述 一、 基本概念 指令:指挥计算机(CPU)完成各种操作的基本命令。 目标程序在存储器中的存储形式 3.3 指令系统的寻址方式 3.4.1 数据传送指令 一般格式: MOV(MOVC、MOVX) 目的操作数,源操作数 除此之外,还有数据交换指令和堆栈操作指令。 功能: 将源操作数内容送入目的操作数指定的存储单元,指令执行后,源操作数内容不变,目的操作数内容被修改为源操作数内容。 一、片内数据存储器及寄存器的数据传送指令 指令图解 例-B1:已知R0=30H,片内数据存储器(30H)=50H,(40H)=60H,执行下列各指令后,A中内容是多少? ? MOV A,R0 ; ? MOV A,@R0 ; ? MOV A,40H ; ? MOV A,#40H ; 片内数据存储器及寄存器的数据传送指令 例-B2:分析执行下列程序段后,各相关存储单元和寄存器内容有何变化? MOV R1,#40H ;R1= MOV A,R1 ;A= MOV 30H,A ;(30H)= MOV 20H,30H;(20H)= MOV @R1,#30H ;(40H)= MOV 20H,@R1 (20H)= MOV B,#10H ;B= MOV DPL,20H ;DPL= MOV DPH,0F0H ;DPH= 片外数据传送指令 特点: ?只能与A之间进行数据传送 ?只能采用寄存器间接寻址方式 例-B4:编程将片外数据存储器2040H单元的内容传送到3000H单元。 ORG 1000H MOV DPTR,#2040H MOVX A,@DPTR ; MOV DPTR,#3000H MOVX @DPTR,A ; LP:SJMP LP 三、 查表指令 程序存储器主要用来存放程序,也可存放表格常数,要取出表格常数时,可以采用查表指令。 ?特点 ?只能将表格常数读入A中 ?表格常数采用变址寻址方式 指令功能说明 例:已知DPTR=2000H,A=E0H,则执行 MOVC A,@A+DPTR过程如下图所示: 应用 例-B5:用查表方法求片内数据存储器30H单元内容(0~9)的平方值,并存入31H单元。y=x2 分析:假设先将0~9的平方 值连续存放在程序存储器 2009H开始的单元中。则 每个平方值存放的单元地 址=表格首地址+自变量 自变量即为待求平方值的数。 方法1 :(使用MOVC A,@A+DPTR 指令) ORG 1FF0H MOV A,30H ;取数(即自变量,作偏移量送A) MOV DPTR,#2009H(或#TAB) ;表格首址送DPTR MOVC A,@A+DPTR ;查表取平方值 MOV 31H,A ;存结果 LP:SJMP LP ORG 2009H TAB: DB 0,1,4,9,16,25 DB 36,49,64,81 ;平方值表格 ? DB(定义字节伪指令) 方法2: :(使用MOVC A,@A+PC 指令) ORG 2000H 2000H E5 30 MOV A,30H ;取数 2002H 24 04 ADD A,#04H ;加差址 2004H 83 MOVC A,@A+PC ;查表 2005H F5 31 NPC:MOV 31H,A ;存结果 2007H 80 FE LP:SJMP LP 2009H 00 TAB:DB 0,1,4,9,16,25 200AH 01 DB 36,49,64,81 ;平方值表 ??? 差址=TAB-NPC=2009H-2005H=04H 方法2也可写成: ORG 2000H MOV A,30H ;取数 ADD A,#TAB—NPC ;加差

文档评论(0)

1亿VIP精品文档

相关文档