[工学]专题四指令系统课件_第1页
[工学]专题四指令系统课件_第2页
[工学]专题四指令系统课件_第3页
[工学]专题四指令系统课件_第4页
[工学]专题四指令系统课件_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程名称:计算机硬件技术基础本讲内容: 专题四 MCS-51指令系统Hebei University of Technology主讲教师: 赵晓安河北工业大学计算机科学与软件学院计算机基础教学部河北省级精品课课程内容:MCS-51单片机原理及应用本讲的教学目标和教学方法教学目标: 使学生掌握MCS-51单片机指令的算数运算、逻辑运算、位操作、控制转移指令,为后续学习计算程序打好基础。教学方法: 1、比较法:与高级语言比较不同点 2、比喻法 3、启发式重点、难点重点: 1、算数运算指令 2、逻辑运算指令 3、位操作指令 4、控制转移指令难点: 1、BCD码减法的调整; 2、位操作与字节操作的区别

2、。 3、子程序调用与返回3.3.2 算术运算指令: 例3-13 2个字节数求和 例 3-16 DEC 例 3-19 例 3-20 (统招)3.3.3逻辑运算指令 例 3-23 3-24 3-25 3.3.4 位操作指令 例 3-27 本讲基本内容3.3.2 算数运算指令1、加法指令1)不带进位的加法指令 ADD2)带进位的加法指令 ADDC 3)加1指令 INC2、减法指令1)带借位减法指令 SUBB2)减1指令 DEC3、乘法指令 MUL4、除法指令 DIV5、二十进制调整指令 DA A 注意:对PSW的影响3.3.3 逻辑运算指令1、逻辑“与”、“或”、“异或”指令 ANL 、ORL、XR

3、L 2、移位指令 RL、RLC、RR、RRC3、清零、取反指令 CLR、CPL 3.3.4 位操作指令1、位传送指令 MOV 2、位变量修改指令 CLR、SETB、CPL3、位逻辑运算指令 ANL、ORL 3.3.2 算术运算类指令1、程序状态字 PSWCy:进位标志;布尔累加器AC:辅助进位标志(半进位)F0:用户标志RS1/RS0:寄存器选择OV:溢出标志P:奇偶标志D7 D6 D5 D4 D3 D2 D1 D0CyACF0RS1RS0OV-P算术运算类指令对PSW的影响指令助记符影 响 标 志指令助记符影 响 标 志ADD (加)ADDC (带进位加)SUBB (带借位减)Cy OV A

4、C MUL (乘)DIV (除)DA (二十进制调整)Cy OV AC0 0 注意:P352附表2 INC 指令 和 DEC指令对Cy 没有影响 凡是A 累加器作目的操作数的指令均影响P标志这是重点不同于高级语言2、加法指令不带进位的加法指令带进位的加法指令加 1 指令二-十进制调整指令1)不带进位的加法指令ADD A,Rn ; (A)-(A)+(Rn)ADD A, direct ;(A)-(A)+(direct)ADD A,Ri ;(A)-(A)+(Ri)ADD A,#data ;(A)-(A)+#data 例310 试分析8031执行如下指令后累加器A和PSW中各标志位的变化状况。 MOV

5、 A ,#9EH ;9EH =158 ADD A ,#71H ;71H =113Cy AC F0 RS1 RS0 OV P10000000 若把两个操作数看成无符号数,Cy1,表示结果超出(0255),运算结果为10FH,即271; 若把两个操作数看成带符号数,OV0,无溢出,结果正确,(A)0FH=15。 9EH=-98补 -98+113=15OVC8C7110 Cy1 2)带进位的加法指令ADDC A,Rn ;(A)-(A)+(Rn)+(C)ADDC A,direct ;(A)-(A)+(direct) +(C)ADDC A,Ri ;(A)-(A)+(Ri) +(C)ADDC A,#dat

6、a ;(A)-(A)+#data +(C)例312 设(A)0AAH,(R0)55H,Cy1,执行指令ADDC A,R0,求 (A),Cy,AC,OV,P,(PSW)解:竖式:(A)00H,Cy=1,AC=1,OV=0,P=0(PSW)11000000B=0C0H113、加 1 指令INC A ;(A)(A)+1INC Rn ;(Rn)(Rn)+1INC direct ;(direct)(direct)+1INC Ri ;(Ri) )(Ri) )+1INC DPTR ;(DPTR)(DPTR)+1例313 设20H21H单元存放一个16位二进制数X1(高8位存于21H单元),30H31H单元存

7、放另一个16位二进制数X2(高8位存于31H单元)。求X1X2,和存于20H21H,设两数之和不超过16位。解:程序如下:ORG2000HMOVR0 ,#20HMOVR1 ,#30HMOVA ,R0;取被加数低8位ADDA ,R1;求和的低8位MOVR0 ,A;存和的低8位INCR0;指向被加数高8位INCR1;指向加数高8位MOVA ,R0;取被加数高8位ADDCA ,R1;求和的高8位MOVR0 ,A;存和的高8位SJMP$;停机END (21H) (20H) + (31H) (30H)Cy(21H) (20H) ADDC ADD运算结果高8位存于21H单元,低8位存于20H单元。R0R1

8、4、二-十进制调整指令DA A 调整原则:形式上非BCD码 需要加 06H、60H、66H调整形式上是BCD码时:CY AC 调整原则 0 0 不调整 0 1 +06H 1 0 +60H 1 1 +66H例319 编写程序完成7893的BCD加法程序,并对调整过程进行分析。解:相应BDC加法程序为ORG 3000HMOV A ,#78H;(A)78HADD A ,#93H;(A)78H93H0BH , Cy=1DAA SJMP $END执行结果:(A)71H,考虑进位标志(Cy)1,操作结果为171H。 3、减法指令SUBB A,Rn ;(A)-(A)-(Rn)-(C)SUBB A,direc

9、t ;(A)-(A)-(direct) -(C)SUBB A,Ri ;(A)-(A)-(Ri) -(C)SUBB A,#data ;(A)减数 ,则差为正,借位标志为0;若被减数=源字节则(C)=0; 若目的字节源字节则(C)=1。指令:CJNE A,direct,rel;CJNE A,#data,rel;CJNE Rn,#data,rel;CJNE Ri,#data,rel条件:减1条件转移指令格式: DJNZ Rn,rel; rel:8位相对偏移量功能:(PC)(PC)+2,(Rn) (Rn)-1 IF (Rn)0 THEN (PC)(PC)+rel ELSE go on格式: DJNZ

10、direct,rel; rel:8位相对偏移量功能:(PC)(PC)+3, (direct) (direct)-1 IF (direct) 0 THEN (PC)(PC)+rel ELSE go on位控制:判Cy转移指令格式: JC rel; rel:8位相对偏移量功能:(PC)(PC)+2, IF (C)=1 THEN (PC)(PC)+rel ELSE go on格式: JNC rel; rel:8位相对偏移量功能:(PC)(PC)+2, IF (C)=0 THEN (PC)(PC)+rel ELSE go on位控制:判直接位寻址转移指令格式: JB bit,rel; rel:8位相对

11、偏移量功能:(PC)(PC)+3, IF (bit)=1 THEN (PC)(PC)+rel ELSE go on格式: JNB bit,rel; rel:8位相对偏移量功能:(PC)(PC)+3, IF (bit)=0 THEN (PC)(PC)+rel ELSE go on位控制:判直接位寻址转移指令格式: JBC bit,rel; rel: 8位相对偏移量功能: (PC)(PC)+3, IF (bit)=1 THEN (PC)(PC)+ 3 +rel ,(bit) 0 ELSE go on 判1成立先清零后转移。图316 JBC指令执行流程示意图关于rel机器语言中:rel 是-128,

12、+127内的补码汇编语言中: rel的书写形式 1、jc loop ;loop代表目标地址 2、jc $-5 ; $-5 也代表目标地址 3.3.5.2 子程序调用与返回指令1、子程序的调用过程与子程序嵌套2、调用指令(1)长调用指令 LCALL(2)绝对调用指令ACALL3、返回指令RET 子程序的调用过程与子程序嵌套主程序要调用子程序时通过CALL 指令子程序执行完后通过RET 指令返回防止自然进入子程序和自然退出子程序子程序嵌套正在执行主程序CPU正在执行子程序SubACPU正在执行子程序SubB子程序调用与返回指令长调用指令 LCALL addr16;(PC) (PC)+3 , (SP

13、) (SP)+1,(SP) (PC ) 07 , (SP) (SP)+1,(SP) (PC ) 815 , (PC ) 016 addr16 绝对调用指令 ACALL addr11;(PC) (PC)+2, (SP) (SP)+1, (SP) (PC ) 07 (SP) (SP)+1,(SP) (PC ) 815 , (PC ) 010 addr11 ,(PC ) 1115 不变 返回指令 RET; (PC ) 815(SP),(SP) (SP)-1 (PC ) 07 (SP),(SP) (SP)-1例3-31 已知:(SP)50H,符号地址“SUB”所对应的程序存储器ROM的实际地址为032

14、8H,在(PC)0123H处执行LCALL SUB后堆栈指针SP、堆栈中内容以及程序计数器PC中的内容是什么?执行结果: (PC)30123H30126H; 先后压入堆栈: (SP)151H压入26H,即(SP)=(51H)=26H (SP)152H压入01H,即(SP)=(52H)=01H (SP)52H, SUB0328H送入PC,即 (PC)0328H,程序转向目标地址0328H为首地址的子程序执行。例3-32 设(SP)50H,符号地址“SUB”所对应的程序存储器ROM实际地址为0328H,在(PC)0123H处执行指令:ACALL SUB执行结果:(PC)20123H20125H;先后压入堆栈: (SP)151H压入25H,即(SP)=(51H)=25H (SP)152H压入01H;即(SP)=(55H)=01H (SP)52H, SUB0328H送入PC,即(PC)0328H,程序转向目标地址0328H为首地址的子程序执行。 这里PC值的高5位内容不变,即把123H变成328H。寻址在包含0125H地址在内的同一个2kB范围内。 2kB范围:0000H07F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论