指令系统学习.pptx
《指令系统学习.pptx》由会员分享,可在线阅读,更多相关《指令系统学习.pptx(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言的特点:汇编语言的特点:(1)汇编指令与机器指令一一对应,执行效率高,占用存储空间小,速度快。程序从效率的角度讲一般比高级语言更优化。(2)能直接访问寄存器、存储器等,能直接管理和控制系统硬件资源。(3)开发编程繁琐,要求程序员必须对CPU、系统硬件资源有较为深入的了解,不利于该方法的推广。(4)缺乏通用性,不方便移植,不同平台的汇编语言常相互不支持。MCS51汇编语言是诸多语言中的一种(标准语言),各汇编语言是诸多语言中的一种(标准语言),各公司往往开发了自己的汇编语言,未必与公司往往开发了自己的汇编语言,未必与51汇编兼容汇编兼容。第1页/共62页指令=操作码+操作数操作码表示该指
2、令所能执行的操作功能。操作数表示参加操作的数本身或操作数所在的地址。标号:操作码助记符 第一操作数,第二操作数;注释LOOP:MOVA,#5FH;A#5FH二、二、MCS-51的指令格式的指令格式第2页/共62页三、三、MCS-51MCS-51系列单片机的指令系统系列单片机的指令系统111111条条指令,共分指令,共分五大类五大类:数据传送类;(29条)算术运算类;(24条)逻辑运算类;(24条)控制转移类;(17条)位操作类。(17条)第3页/共62页指令中操作数的描述符号指令中操作数的描述符号:Rn工作寄存器R0R7Ri间接寻址寄存器R0、R1如:R1Direct直接地址,包括内部128B
3、RAM单元地址、26个SFR地址。如:3AH#data8位常数如:#7AH#data1616位常数如:#01A3Haddr1616位目的地址如:01A3Haddr1111位目的地址如:105Hrel8位带符号的偏移地址如:-19H(补码形式:E7H)DPTR16位外部数据指针寄存器bit可直接位寻址的位如:2FH.7第4页/共62页A累加器B寄存器BC进、借位标志位,或位累加器间接寄存器或基址寄存器的前缀/指定位求反(x)x中的内容括号仅在注解中使用(x)x中的地址中的内容当前指令存放的地址第5页/共62页-寻找操作数所在地址的方式1.立即寻址MOVA,#20HMOVDPTR,#2345H2.
4、直接寻址MOVA,20H3.寄存器寻址MOV20H,R34.寄存器间接寻址MOVR0,#60H注意:Ri(i=0或1)MOVA,R0MOVDPTR,#1234HMOVXA,DPTR3-3-2 2 寻址方式寻址方式 第6页/共62页5.变址寻址MOVCA,A+PC;PCPC+1,A(A+PC)MOVDPTR,#2345H;DPTR赋值MOVA,#10H;A赋值MOVCA,A+DPTR;A(A+DPTR)注意:专用于程序存储器的访问6.相对寻址SJMPNEXTJNZDOWN7.位寻址MOVC,2FH.7SETB2AH常常并不需要我们去计算相对偏移量,直接用标号更方便快捷第7页/共62页一、内部RA
5、M数据传送类1、一般数据传送指令回忆前述操作数描述符:A,direct,Rn,Ri,#data,DPTR等。经排列组合可写出下列指令:MOVA,Rn;ARnMOVA,direct;A(direct)MOVA,RiMOVA,#dataMOVRn,AMOVRn,directMOVRn,#data3-3-3 3 数据传送类指令数据传送类指令 举一简单例子关于简接寻址第8页/共62页MOVdirect,RnMOVdirect,directMOVdirect,RiMOVdirect,#dataMOVRi,AMOVRi,directMOVRi,#dataMOVDPTR,#data16;唯一的16位数据传送
6、指令。(direct)AMOVdirect,A;举例提一下PSW的状态标志位是否影响的问题第9页/共62页工作寄存器之间不能直接传送注意:MOVRn,RnMOVRi,RiMOVRn,RiMOV#data,A等等指令是非法指令。第10页/共62页(2)(direct)2、栈操作指令PUSHdirectPOPdirect不影响任何标志位。PUSHdirect指令执行中,机器自动进行两步操作:(1)(SP)+1例1、设(SP)=09H,(DPTR)=0123H,分析:执行PUSHDPLPUSHDPH后,各单元中的内容。(SP)(SP)第11页/共62页POPdirect指令执行中,机器也自动进行两步
7、操作:(1)(direct)(SP)(2)(SP)(SP)1例2、设(SP)=0BH,(0BH)=01H,(0AH)=23H执行POPDPHPOPDPL后,各单元中的内容。第12页/共62页结论:1)PUSH与POP操作过程刚好相反;2)进、出栈规则:先进后出,后进先出。应注意指令书写先后顺序;3)可用于“保护现场,恢复现场”。第13页/共62页3、字节交换指令XCHA,RnXCHA,direct整字节交换XCHA,RiXCHDA,Ri半字节交换,低4位互换,高4位不变SWAPA高4位与低4位交换-举例第14页/共62页二、外部RAM数据传送MOVXA,RiMOVXA,DPTRMOVXRi,A
8、MOVXDPTR,A1)只能采用间接寻址方式。2)与外部RAM打交道的只可以是累加器AMOVXdirectdirect是非法的甚至MOVXAdirect都不允许第15页/共62页例3、试编写一程序段,实现将外部RAMFAH单元中的内容传送到外部RAM04FFH单元中。解:MOVDPTR,#04FFHMOVR0,#0FAHMOVXA,R0MOVXDPTR,A再举一例第16页/共62页三、访问外部ROM的指令/查表指令MOVCA,A+DPTR以DPTR为基址MOVCA,A+PC以PC为基址MOVC含义是传送某表的常数。以DPTR为基地址的指令,可在ROM的64KB范围内查表;-远程查表指令而以PC
9、为基地址的指令只能在(PC)+1为中心上、下256B范围内查表。-近程查表指令它们都是单字节指令第17页/共62页例4、设(A)=一个BCD码常数,试用查表法获得其相应的ASCII码。解法:MOVDPTR,#TABMOVCA,A+DPTRTAB:DB30HDB31HDB32H,33H,34H,35H第18页/共62页小结:数据传送类指令有几种类型?是否影响标志位?第19页/共62页包括:加、减、乘、除;加一、减一。一、加法指令ADDA,Rn;AA+Rn以下类同。ADDA,directADDA,RiADDA,#data影响状态标志位,比如C.无符号数相加时:若C=1,说明有溢出(其值255)。带
10、符号数相加时:若OV=D7cD6c=1,说明有溢出。3-3-4 4 算术运算类指令算术运算类指令举例举例第20页/共62页ADDCA,Rn;AA+Rn+C以下类同。ADDCA,directADDCA,RiADDCA,#data 上述四条指令多用于多字节数相加。INCA;AA+1,以下类同。INCRnINCdirectINCRiINCDPTR第21页/共62页41H例1、设R0=7FH;(7FH)=40H执行:INCR0INCR0R0=(7FH)=80H书例 来增进对各加位指令的理解来增进对各加位指令的理解第22页/共62页DAA;二-十进制调整指令。针对BCD码执行过程中,CPU能根据加法运算
11、后,累加器中的值和PSW中的AC及C标志位的状况自动选择一个修正值(00H、06H、60H、66H)与原运算结果相加,进行二十进制调整。(A30)9 9时或(ACAC)=1=1时,(A30)(A30)+6(A74)9 9或(C C)=1=1时,(A74)(A74)+6选择修正值的规则:第23页/共62页例2、设A=56H为56的压缩BCD码数,R3=67H执行ADDA,R3DAA结果为:123其中修正值为多少?其中修正值为多少?66H注意:1)DA指令只能跟在加法指令后面使用;2)调整前参与运算的两数是BCD码数;3)DA指令不适用于减法指令。例3、设A=30H(压缩BCD码数),执行:ADD
12、A,#99HDAA相当于实现了301=29的操作。第24页/共62页二、减法指令SUBBA,Rn;AARnC,以下类同。SUBBA,directSUBBA,RiSUBBA,#data减法指令全是带C的。注意:开始时不需要带注意:开始时不需要带C C的减法,且的减法,且C C的状态不明,故减法开始的状态不明,故减法开始之前一般先清零之前一般先清零C C。DECA;AA1,以下类同。DECRnDECRiDECdirect第25页/共62页例4被减数在片内RAM30H-31H单元中,减数在40H-41H单元中,低位数对应低位址,高位数对应高位地址,其差值存入50H-51HCLRCMOVA,30HSU
13、BBA,40HMOV50H,AMOVA,31HSUBBA,41HMOV51H,A第26页/共62页例5、设R0=7FH,在内RAM中,(7EH)=00H,(7FH)=40H执行:DECR0DECR0DECR0结果为:R0=(7EH)=(7FH)=7EHFFH3FH第27页/共62页三、乘法和除法指令乘法:对两个8位无符号数相乘MULAB;AB,积的低积的低8位在位在A中,积的中,积的;高高8位在位在B中;中;C总为总为0。用OV标志表示积的大小,若大于255(即FFH),此刻B0,则(OV)=1.除法:DIVAB;AB,商在商在A中,余数在中,余数在B中。中。;若若B=0,则结果不定,(则结果
14、不定,(OV)=1,;(;(C)=0。举例:十进制:37第28页/共62页例6、试将A中的二进制数转换为3位BCD码(16位进制表示的形式),其中,百位数存放于31H单元,十位数和个位数压缩后存于30H单元中。解:MOVB,#100DIVABMOV31H,AMOVA,#10XCHA,BDIVABSWAPAADDA,BMOV30H,A与书中例类似理解该程序理解该程序5 5分钟分钟为什么不用:为什么不用:MOVB,#10第29页/共62页小结:算术运算类指令都有哪些类型?影响状态字吗?第30页/共62页共分两大类:单字节逻辑操作,双字节逻辑操作,共24条。一、单目逻辑操作指令CLRA;(A)0CP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指令系统 学习
限制150内