单片机原理及应用课件:第3章 MCS-51指令系统

举报
资源描述
12022/9/6第三章第三章 MCS-51指令系统指令系统v指令格式v指令寻址方式v数据传送指令v算术运算指令v逻辑运算指令v位操作指令v控制转移指令v调用和返回指令22022/9/6指令格式指令格式 1.1.汇编语言指令格式汇编语言指令格式 标号:操作码 操作数1,操作数2;注释 eg.LOOP:MOV A,#40H;40H-A 操作码和操作数是指令主体。标号标号:指令的符号地址。18个字母或数字,并以冒号“:”结尾。操作码操作码:指明指令功能。25个字母。系统定义 操作数操作数:指令操作对象数据、地址、寄存器名及约定符号。注释行注释行:说明指令在程序中的作用。可以没有第三章第三章 MCS-51指令系统指令系统32022/9/6常用操作码:(表)MOV 传送 ANL 逻辑与MUL 乘法RR 右循环SJMP 短跳转RET 子程序返回2.伪指令伪指令 汇编时不产生机器码,仅供汇编识别控制。第三章第三章 MCS-51指令系统指令系统42022/9/61)定位伪指令 格式:ORG m eg.ORG 0000H START:SJMP MAIN ORG 0030H MAIN:MOV SP,#30H 以START开始的程序汇编为机器码后从0000H存贮单元开始连续存放。2)结束伪指令 格式:END第三章第三章 MCS-51指令系统指令系统52022/9/63)定义字节伪指令 格式:DB X1,X2,Xn eg.ORG 7F00H DB 01110010B,16H,45,8,A 汇编后存贮单元内容为:(7F00H)=72H (7F01H)=16H (7F02H)=2DH (7F03H)=38H (7F04H)=40H 4)定义字伪指令 格式:DW Y1,Y2,Yn 第三章第三章 MCS-51指令系统指令系统62022/9/65)定义空间伪指令 格式:DS 表达 eg.ORG 0F00H DS 10H DB 20H,40H 汇编后,从0F00H开始,保留16个字节的内存单元,然后从0F10H开始,按照下一条DB伪指令给内存单元赋值,得(0F10H)=20H,(0F11H)=40H。第三章第三章 MCS-51指令系统指令系统72022/9/66)等值伪指令 格式:EQU 数据或汇编符 ORG 8500H AA EQU R1 A10 EQU 10H DELAY EQU 87E6H MOV R0,A10;R0(10H)MOV A,AA;A(R1)LCALL DELAY END EQU赋值后,AA为寄存器R1,A10为8位直接地址10H,DELAY为16位地址87E6H。第三章第三章 MCS-51指令系统指令系统82022/9/67)数据地址赋值伪指令 格式:字符名称 DATA 表达式 8)位地址赋值伪指令 格式:字符名称 BIT 位地址第三章第三章 MCS-51指令系统指令系统92022/9/6指令寻址方式指令寻址方式寻址方式:寻找操作数的方法寻址方式:寻找操作数的方法一、立即寻址方式立即寻址方式 指令中给出实际操作数据(立即数),一般用于为寄存器或存储器赋常数初值。eg.8位立即数:MOV A,#40H ;A 40H16位立即数:MOV DPTR,#2100H;DPTR 2100H第三章第三章 MCS-51指令系统指令系统102022/9/6二、直接直接寻址方式址方式 指令操作数是存储器单元地址,数据在存储器单元中。eg.存储器两个单元的内容如图所示,执行指令 MOV A,40H;A(40H)后 A=56H 直接寻址方式对数据操作时,地址是固定值,而地址所指定的单元内容为变量形式。第三章第三章 MCS-51指令系统指令系统112022/9/6 三、寄存器寄存器寻址方式址方式 指令的操作数为寄存器名,数据在寄存器中。eg.设指令执行前 A=20H,R0=40H,MOV A,R0;A(R0)执行指令后,A=40H,R0=40H四、寄存器的间接寻址方式寄存器的间接寻址方式 指令的操作数为寄存器名,寄存器中为数据地址。存放地址的寄存器称为间址寄存器或数据指针。eg.MOV A,R0;A(R0)设指令执行前A=20H,R0的地址为40H,内存如图所示。执行指令后,A=R0=(40H)=67H41H41H第三章第三章 MCS-51指令系统指令系统122022/9/6五、基寄存器加基寄存器加变址寄存器的址寄存器的间接接寻址方式址方式数据在存储器中,指令给出的寄存器中为数据的基地址和偏移量。数据地址=偏移量+基地址eg.MOVC A,A+DPTR;A(A)+(DPTR)设指令执行前 A=09H,DPTR=2000H,存储器单元内容如图所示。执行指令后,A=DPTR=12H2000H第三章第三章 MCS-51指令系统指令系统132022/9/6六、相相对寻址方式址方式 以以PCPC的内容作的内容作为为基地址,加上偏移量,所得基地址,加上偏移量,所得结结果送果送PCPC寄寄存器作存器作为转为转移地址。偏移量在移地址。偏移量在128128+127+127之之间间。eg.SJMP 80H;短跳转 第三章第三章 MCS-51指令系统指令系统142022/9/6七、位七、位寻址方式址方式 指令给出位地址。一位数据在存储器位寻址区。eg.MOV C,40H;A(位地址40H)设指令执行前C=1,位地址40H存储器单元如图 执行指令后,C=028H 0110001029H 11010111位寻址区第三章第三章 MCS-51指令系统指令系统152022/9/66位寻址方式:指令给出位地址寻址范围包括:(1)片内RAM中的位寻址区字节地址20H2FH,位地址是00H7FH。例如 MOV C,2BH(2)可位寻址的特殊功能寄存器位可供位寻址的SFR有11个,有寻址位83位。162022/9/6指令的指令的类型、字型、字节和周期和周期 MCS-51指令系统中共有111条指令,按功能可分为以下四大类:数据数据传送送类 算算术操作操作类 逻辑操作操作类 控制控制转移移类第三章第三章 MCS-51指令系统指令系统172022/9/6数据数据传送指令送指令 实现寄存器和存储器之间的数据传送,又可分为:内部内部传送指令送指令 外部外部传送指令送指令 查表指令表指令 堆堆栈操作指令操作指令 交交换指令指令第三章第三章 MCS-51指令系统指令系统182022/9/61.内部内部传送指令送指令:实现片内数据存储器中数据的传送。指令格式:MOV 目的操作数,源操作数 寻址方式:立即寻址、直接寻址、寄存器寻址和寄存器间址。MOV A,#data;Adata MOV A,direct;A(direct)MOV A,Rn;A(Rn),Rn=R0R7 MOV A,Ri;A(Ri),Ri=R0、R1 MOV DPTR,#d1d2;DPTRd1d2 MOV direct1,direct2;(direct1)(direct2)MOV Rn,direct;Rn(direct)MOV Ri,direct;(Ri)(direct)第三章第三章 MCS-51指令系统指令系统192022/9/6操作码目的源操作内容字节数执行时间MOVA,#datadirectRiRn(A)#data(A)(data)(A)(Ri)(A)(Rn)22111111Rn,#datadirectA(Rn)#data(Rn)(data)(Rn)(A)221121Data,#dataAdirectRiRn(data)#data(data)(A)(data)(data)(data)(Ri)(data)(Rn)3232221221Ri,#datadirectA(Ri)#data(Ri)(data)(Ri)(A)221121第三章第三章 MCS-51指令系统指令系统202022/9/6 eg.顺序执行下列指令序列,求每一步执行结果。MOV A,#30H;MOV 4FH,A;MOV R0,#20H;MOV R0,4FH;MOV 21H,20H;第三章第三章 MCS-51指令系统指令系统A=30H(4FH)=30HR0=20H(20H)=30H(21H)=30H 212022/9/6注意:1.一条指令中不能同时出现两个工作寄存器:非法指令:非法指令:MOV R1,R2 MOV R2,R02.间址寄存器只能使用 R0、R1:非法指令非法指令:MOV A,R2第三章第三章 MCS-51指令系统指令系统222022/9/62.外部外部传送指令送指令 实现片外数据存储器和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)第三章第三章 MCS-51指令系统指令系统232022/9/6 eg.实现片外数据存储器数据传送(2000H)(2100H)MOV DPTR,#2000H;MOVX A,DPTR;MOV DPTR,#2100H;MOVX DPTR,A;片外数据存储器不能直接寻址。下列为非法指令非法指令:MOVX A,2000H MOVX 2100H,2000H第三章第三章 MCS-51指令系统指令系统DPTR=2000HA=XDPTR=2100H(2100H)=X242022/9/6 3.查表指令 实现从程序存储器读取数据到A累加器,只能使用变址间接寻址方式。多用于查常数表程序,可直接求取常数表中的函数值。a)DPTR为基址寄存器MOVC A,A+DPTR;A(A)+(DPTR)查表范围为 64KB 程序存储器任意空间,称为远程查表指令。b)PC为基址寄存器MOVC A,A+PC;A(A)+(PC)常数表只能在查表指令后256B范围内。PC内容为下一条指令的起始地址。第三章第三章 MCS-51指令系统指令系统252022/9/6 eg.查表法求Y=X2。设X(0X15)在片内RAM的20H单元中,要求将查表求得的Y存入片内RAM21H单元。ORG 1000H SQU:MOV DPTR,#TAB;确定表首地址(基地址)MOV A,20H;取X(偏移量)MOVC A,A+DPTRMOVC A,A+DPTR;查表求Y=X2 MOV 21H,A;保存Y RET;子程序结束;其它程序段 ORG 3000H;常数表格首地址 TAB:DB 00,01,04,09,225;平方表第三章第三章 MCS-51指令系统指令系统262022/9/64.4.堆堆栈操作指令操作指令 实现片内数据存储器数据传送。入栈指令:PUSH direct;SP(SP)+1,(SP)(direct)出栈指令:POP direct;direct(SP),SP(SP)-1 eg.设 A=02H,B=56H,C=78H,执行下列指令后,A=,B=,SP=31H56H78HSBR:MOV SP,#30H;设栈底 PUSH A PUSH B PUSH C MOV A,#00H MOV B,#01H POP B POP A 第三章第三章 MCS-51指令系统指令系统272022/9/6 5.5.交交换指令指令 实现片内RAM区的数据双向传送。1.字节交换指令 XCH A,Rn;(A)(Rn)XCH A,Ri;(A)(Ri)XCH A,direct;(A)(direct)eg.设A=29H,执行指令 XCH A,2AH后,A=(2AH)=(2AH)=38H29H第三章第三章 MCS-51指令系统指令系统282022/9/62.半字节交换指令 XCHD A,Ri ;(A)03 (Ri)03 SWAP A ;(A)47 (A)03 eg.将片内RAM 2AH和2BH单元中的BCD码转换成压缩式BCD码存入20H单元。MOV A,#0 MOV R0,#2AH MOV R1,#2BH XCHD A,R0 S
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关资源
正为您匹配相似的精品文档
相关搜索

当前位置:首页 > 中学教育 > 初中教育


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