《控制理论基础II整理ppt.ppt》由会员分享,可在线阅读,更多相关《控制理论基础II整理ppt.ppt(54页珍藏版)》请在三一文库上搜索。
1、控制理论基础(II),交通大学精品课程系列,2007,课程负责人:杨汝清 教授 曹其新教授,顾问: 王显正 教授,11.1概述,11.2 指令分类,11.3 寻址方式,11.4 指令系统,11.5 数据传送类29条,11.6 算术操作类24条,11.7 逻辑运算类24条,11.8 控制转移指令17条,11.9 位操作指令17条,一台计算机所能执行的指令集合就是它的指令系统。 重点掌握 寻址方式 指令分类,11.1概述,机器语言 (指令的二进制编码表示) 但机器语言具有程序长、不易书写、难于阅读和调试、容易出错等缺点,那么使用符号指令就显得十分必要,通常把表示指令的符号称之为助记符。,汇编语言
2、而以助记符表示的指令就是计算机的汇编语言. 一条指令通常由两部分组成,即操作码和操作数。操作码用来规定指令进行什么操作,而操作数则表示指令的操作的对象。 单片机的指令是不定长的,在MCS-51指令系统中,有一字节、二字节、三字节等不同长度的指令.,11.2 指令分类,MCS-51 单片机指令系统共有指令111条,分为五大类 数据传送类:29条 算术运算类:24条 逻辑运算类:24条 控制转移类:17条 位操作类: 17条,11.3 寻址方式,寻址的“址”是指操作数所在的单元地址。因此寻址就是如何确定操作数单元地址的问题。共有七种寻址方式 寄存器寻址 MOV A,R2 直接寻址 MOV A,3A
3、H 立即寻址 MOV A, #3AH 寄存器间接寻址 MOV A,R0 变址寻址 MOVC A, A+DPTR 相对寻址 JC 03H 位寻址 SETB 3DH,1立即寻址,指令码中直接含有所需地址的操作数 MOV A,#30H MOV DPTR,#3000H 注意:#是唯一区别与地址的标志。,2直接寻址,指令码中含有操作数的地址,机器根据地址找到操作数 MOV A,30H 注意:若直接寻址的地址是SFR中的某一个时,可用名称符号 MOV A,TH0 MOV A,8CH,3寄存器寻址,所需的操作数在某个工作寄存器中(R0R7) INC R0 注意:指令表中INC Rn,n取07,4寄存器间接寻
4、址,指令码中含有操作数地址的寄存器号。实际上是二次寻址 间接寻址采用Ri或DPTR,是区别寄存器寻址的标记 若(RO)=30H,(30H)=0FFH MOV A , R0 MOV A , R0,5相对寻址,指令码中含有相对地址的偏移量 MOV A,40H ADD A,#30H SJMP SOUT ;PC=PC+2+rel 。 ; 。 。 SOUT:MOV 50H,A,SJMP rel,(PC)=(PC)+2+rel 例:835AH SJMP 35H 目的地址=835AH+02H+35H=8391H 例:835AH SJMP E7H 目的地址=835AH+02H-19H=8343H -19H=-
5、0001 1001 =1110 0111(补码),6变址寻址,基地址寄存器和偏移量 MOVC A, A+PC MOVC A, A+DPTR 注意:变址寻址区是程序存储器而不是数据存储器。 执行前,应预先在DPTR和A中存放地址,为指令执行提供条件。,7位寻址,指令中含有位地址 位地址和字节地址的区分通过指令区分: MOV A,20H MOV C,20H,可供位寻址的区域 片内RAM的20H2FH为位寻址空间(007FH) 某些SFR:地址能被8整除的SFR,共11个。 位地址的表示方法 MOV C,ACC.7 MOV 20H,C MOV 24H.0,C,11.4 指令系统,MCS-51汇编语言
6、是用42种操作码助记符描述33种操作功能,一种功能可能有几种助记符,与寻址方式结合共产生111条指令。 数据传送类:29条 算术运算类:24条 逻辑运算类:24条 控制转移类:17条 位操作类: 17条,11.5 数据传送类29条,传送数据可在ACC,R0R7,内部RAM,外部RAM间进行,其中A, R0R7的操作最多 传送类指令不影响PSW(除P位) 数据传送指令表,续表,例1 已知(70H)=60H,(60H)=20H,分析如下程序.,MOV R0,#70H; (R0)=#70H MOV A,R0 ; (A)=#60H MOV R1,A ; (R1)=#60H MOV 40H,R1 ; (
7、40H)=#20H MOV R0,R1 ; (60H)=#60H,例2 查表指令举例1,ORG 8000H 8000H: MOV A ,#40H 8002H:MOVC A,A+PC; (8003H+40H-PC) ;(44H-A) ORG 8040H DB 41H 42H 43H 44H,查表指令举例2,ORG 8000H MOV A ,#03H MOV DPTR,#8040H MOVC A,A+DPTR; A=? (44H) ORG 8040H DB 41H 42H 43H 44H,例3 分析如下程序执行完成后A,R0,PC的内容. 1010H:02H 1011H:04H 1012H:06H
8、 1013H:08H 1000H:MOV A,#0DH; 0DH-A 1002H:MOVC A,A+PC;(0DH+1003H)-A 1003H:MOV R0,A; A-R0,A=02H, R0=02H, PC=1004H,例4. 将累加器A中的低4位数据传送到数据存储器3000H单元中去.,MOV DPTR, #3000H ANL A, #0FH MOVX DPTR, A,数据传送类指令小结,内部RAM的数据传送方式,11.6 算术操作类24条,加、减、乘、除、增1、减1 影响PSW中的CY、AC、OV、P 不带进位加法4 带进位加法4 带借位减法4 加1指令5 减1指令4 十进制调整指令1
9、 乘除法指令2 算术操作指令,加、减法指令(ADD ADDC SUBB INC DEC),无符号数和有符号数由用户自己决定 均以ACC作为目的操作数 带符号数运算时,必须检查溢出位OV 若进行不带进位的减法时,用CLR C,将进位位清零即可。,DA A为十进制调整指令,紧跟加法指令ADD或ADDC之后,对BCD码加法运算进行修正.,1) BCD 码: 00001001 2) 计算机内是4位2进制数是逢16进位,不符合十进制的要求. 3) 例如 0101+1000=1101 不是BCD码 如果1101+0110=0001 0011 则变为BCD码. 4) 在加法指令后直接 加上指令 DA A,
10、计算机的硬件自动进行加6运算,乘除法指令,只能进行无符号的乘除法 虽影响OV,但意义不同 MUL AB;BA,OV=1表示乘积大于FFH DIV AB;AB, 0V=1,B=0,除法无意义,举例,MOV A,#5AH ADD A,#6B H 01011010 01101011(+ - 11000101 CY =? AC=? OV=?,11.7 逻辑运算类24条,读-修改-写指令 对数据进行逻辑处理 模拟各种硬件电路的逻辑功能 逻辑与ANL 逻辑或ORL 逻辑异或XRL 逻辑移位 RR RRC RL RLC 累加器清零与取反 CLR CPL,例:,A=7AH=0111 1010 , CY=1 R
11、LC A 1111 0101 = F5H , CY=0,P=0,带进位移位和不带进位移位,例: M1和M1+1单元存有16位二进制数,试编程将其扩大二倍,程序,CLR C MOV R1,#M1 MOV A,R1 RLC A MOV R1,A INC R1 MOV A,R1 RLC A MOV R1,A,11.8 控制转移指令17条,无条件转移 绝对转移LJMP 、AJMP 短转移SJMP 间接转移JMP A+DPTR 有条件转移JZ 、CJNE、 DJNZ 子程序调用与返回ACALL、 LCALL、RET 中断返回RETI, RET 空操作NOP,举例:把从40H单元开始的10个单元中的内容相
12、加.,MOV R2,#0AH MOV R0,#40H CLR A LOOP:ADD A,R0 INC R0 DJNZ R2,LOOP MOV SUM,A,11.9位操作指令17条,位传送 MOV BIT,BIT (错误) 位逻辑操作 与ANL、或ORL、取反CPL 位条件转移 JC、JNC、JB、JNB、JBC 位置位,清零(SETB、CLR),例1,例 1 内部数据存储器的60H、61H单元中连续存放着4位BCD码。试编写一段程序将这4位BCD码倒序排列,程序,MOV R0,#60H MOV R1,#61H MOV A,R0 SWAP A XCH A,R1 SWAP A MOV R0,A,例
13、2,已知片内RAM 50H单元中存放数值AAH,设堆栈指针为30H,把此数值压入堆栈,然后再弹出到40H单元中.,MOV SP, #30H ; 30H-SP PUSH 50H ;SP+1-SP,(50H)-(31H) POP 40H ; (31H)-(40H),SP-1-SP,例3,试编写计算1234H + 0FE7H的程序,将和的高8位存入41H单元,低8位存入40H单元.,MOV A, #34H ; 34H-A ADD A, #0E7H ; A+E7H-A MOV 40H, A ; A-(40H) MOV A, #12H ; 12H-A ADDC A, #0FH ; A+0FH+CY-A MOV 41H, A ; A-(41H),例4,试编写计算17H*68H 的程序,将乘积的高8位存入31H单元,低8位存入30H单元.,MOV A, #17H ; 17H-A MOV B, #68H ;68H-B MUL AB ;A*B-BA MOV 30H,A ;A-(30H) MOV 31H,B ;B-(31H),This is End of Chapter 10,
链接地址:https://www.31doc.com/p-2605156.html