教学课件微机原理(第2版)3.8 查表指令应用ppt(全).pptx
教学课件微机原理(第2版)3.8 查表指令应用22.3 存储器结构与地址空间学习内容:查表指令的应用目标:掌握编程中查表指令的使用方法第2章 8051微控制器硬件结构33.3 典型指令的应用第3章 8051指令系统和汇编程序设计1.近程查表指令MOVC A,A+PC ;(PC)(PC)+1 ;(A)(A)+(PC);A中内容看作无符号数基址寄存器PC是下条指令首地址,即执行完查表指令后的PC,称为当前PC;PC值不可改变。变址寄存器A是下条指令到常数表格中被访问字节的偏移量,范围是 0-255。该指令只能查找本指令后256B范围内的数据表格,故称为近程查表。3.3.1 查表指令43.3 典型指令的应用第3章 8051指令系统和汇编程序设计2.远程查表指令MOVC A,A+DPTR ;(A)(A)+(DPTR),A中内容看作无符号数基址寄存器DPTR是常数,指向数据表格的首地址;变址寄存器A为表格首址到被访问数据的地址偏移量;DPTR、A都可以改变,A的范围是0-255;DPTR的范围是0000H-0FFFFH。该指令可以查找存放在64KB范围内的数据表格,故称为远程查表指令。3.3.1 查表指令53.3 典型指令的应用第3章 8051指令系统和汇编程序设计3.查表指令举例例3-11:设R3中的值小于等于0FH。分别使用远程查表指令和近程查表指令,查出R3的平方值,存回到R3中。3.3.1 查表指令(1)远程查表方式 ORG 0100HSUB1:MOV DPTR,#TABLEMOV A,R3MOVC A,A+DPTRMOV R3,ASJMP$(1)远程查表方式 ORG 0150H TABLE:DB 00,01,04,09,16,25,36,49,64,51H,64H,121,144,0A9H,0C4H,0E1HEND(2)近程查表方式 ORG 0100HSUB1:MOV A,R30101HADD A,#REL ;REL=3,0103HMOVC A,A+PC0104HMOV R3,A 0105HSJMP$3.3.1 查表指令第3章 8051指令系统和汇编程序设计TABLE:DB 00,01,04,09,16,25,36,49,(0107H)64,51H,64H,121,144,0A9H,0C4H,0E1HENDREL=3:修正值是MOVC指令后一条指令首址,与表头地址的间隔。103.3 典型指令的应用第3章 8051指令系统和汇编程序设计3.查表指令举例例3-11:设R3中的值小于等于0FH。分别使用远程查表指令和近程查表指令,查出R3的平方值,存回到R3中。3.3.1 查表指令 假设R3中的值为4(1)远程查表:DPTR指向数据表头的符号地址TABLE,待查数据(R3)送入A,则查表指令从TABLE+4这个该单元取出的数据就是4的平方值16。(2)近程查表:当前PC指向下一条指令首址(PC=0104H),待查数据(R3)送入A(A)=4),此时若不对A进行修正,则(A+PC)=0108H,从0108H单元取数得到01H,结果错误。对于近程查表指令,通常需要对A进行修正,修正方法是加上一个修正值REL,REL是当前PC到数据表首址的间隔字节数。本例中,间隔的2条指令共3字节,所以REL=3。修正后(A)=7,则将从010BH单元取数,得到16,结果正确。