cpu及cpu寄存器.ppt

上传人:牧羊曲112 文档编号:5423864 上传时间:2023-07-05 格式:PPT 页数:28 大小:251KB
返回 下载 相关 举报
cpu及cpu寄存器.ppt_第1页
第1页 / 共28页
cpu及cpu寄存器.ppt_第2页
第2页 / 共28页
cpu及cpu寄存器.ppt_第3页
第3页 / 共28页
cpu及cpu寄存器.ppt_第4页
第4页 / 共28页
cpu及cpu寄存器.ppt_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《cpu及cpu寄存器.ppt》由会员分享,可在线阅读,更多相关《cpu及cpu寄存器.ppt(28页珍藏版)》请在三一办公上搜索。

1、2023/7/5,3.5 CPU与CPU寄存器,3.5.1 本单元的目标,1)明白CPU的工作原理2)知道CPU包含那些寄存器3)掌握每个寄存器的功能及访问方式4)了解与各个寄存器相关的一些指令,3.5.2 CPU组成部分,CPU Control 控制单元(调度中心),ALU 运算单元(加工车间),CPU Register CPU寄存器(仓库),3.5.3 CPU的工作原理炒饭,一盘扬州炒饭是如何做出来的?,3.5.3 CPU的工作原理炒饭,主料:青豆、胡萝卜、火腿、鸡蛋、米饭(最好是隔夜饭)、蒜籽、葱;调料色拉油、盐、鸡精;,3.5.3 CPU的工作原理炒饭,制作:1、首先将胡萝卜、火腿洗净

2、切成小丁块状,越小越好,当然了不能切成沫状。再将辅料洗净切成沫状,将鸡蛋搅碎放入少许葱沫在内。2、将锅内放上少许色拉油加至8成热,将切好的主料,同时也放入切好的蒜沫,放入锅里炒拌,炒到可以闻到香味时(此过程只需几秒钟)再将鸡蛋放入锅内炒拌,(这时需加大火候,这样鸡蛋会很松软,也不易炒糊),当鸡蛋炒至金黄色时,将其装盘。3、再放入少许色拉油加热至八成,将米饭放入锅内翻抄。此时,需将饭中加放少许食盐和鸡精,(鸡精不宜放太多,否则太鲜也不好吃)当米饭炒到在锅里可以蹦起饭粒时,再将刚才炒好的主料及辅料全部返锅炒拌,直到饭粒松软不粘为起锅最佳时间。,3.5.3 CPU的工作原理炒饭,做一盘扬州炒饭的大概

3、过程:1)厨房中事先准备好了做各种菜式的各种配料;2)厨师从所有的配料中选择炒饭需要的配料;3)厨师把挑选的配料按照一定的时间顺序放到锅里,然后厨师利用他高超的厨艺炒出美味的炒饭;4)厨师把做好的炒饭装在盘中。,3.5.3 CPU的工作原理工厂加工,工厂的加工过程1)准备好加工产品的各种原材料;2)物资调配部分对各种原材料进行调度分配,把它们送到生产线;3)生产线对各种原材料进行加工,生产出成品;4)生产出来的成品被送到仓库中存储。,3.5.3 CPU的工作原理,CPU的工作原理:1)单片机运行后,CPU控制单元从存储器中提取指令;2)控制单元把指令送到逻辑算术运算单元中;3)逻辑算术运算单元

4、对这些指令进行处理,得到相应的数据;4)控制单元再把运算单元处理后的数据存储到存储器中。,3.5.3 CPU的工作原理:23,CPU如何处理23?,3.5.4.1 CPU内部寄存器,五个内部寄存器 A、H:X、SP、PC、CCR,3.5.4.1 CPU内部寄存器:A,累加器A(Accumulator):8位寄存器作用大,被访问的频率高主要作用:存放CPU的操作数保存运算的结果,3.5.4.1 A作用1:存放操作数,有些直接操作累加器A的单目指令,或者一些不是直接操作累加器A的双目指令,需要把操作数先存放在A中。例1:单目指令LDA#%00000011;(A)=#%00000011LSLA;(A

5、)=#%00000110例2:双目指令LDA#1T;(A)=#1TADD#2T;(A)=#3T,实例程序:cpu_demo_累加器A,3.5.4.1 A作用2:保存结果,累加器A还可以保存计算的结果例3:加法中保存结果LDA#1T;(A)=#1TADD#2T;(A)=#3T例4:乘法中保存乘积的低八位(高八位存在X中)LDX#2TLDA#3T;(A)=#3TMUL;(A)=#6T,实例程序:cpu_demo_累加器A,3.5.4.1 与A有关的常用指令,CLRALDASTA,ADDSUBMULINCADECACMP,3.5.4.2 CPU内部寄存器:变址寄存器,变址寄存器(Index regi

6、ster):由H和X两个8位寄存器构成的16位寄存器,标志为H:X,H为高八位,X为低八位。,主要作用:H:X用于64KB存储空间寻址暂存数据和计算结果,3.5.4.2 存储空间寻址,例5:变址寻址CLR$8F;($8F)=0LDHX#$008F;(X)=#$8FLDA,X;(A)=(#$8F),实例程序:cpu_demo_变址寄存器,3.5.4.2 存放计算结果,例6:8位乘法运算中存放结果的高8位已知:$31*$6=$126LDX#$31;(X)=#$31LDA#$06MUL;(X)=#$01,实例程序:cpu_demo_变址寄存器,3.5.4.2 与H:X相关的常用指令,CLRXCLRH

7、LDXSTXLDHXSTHXTAXTXATXS,INCXDECXAIXMULCPXCPHXTSTX,3.5.4.3 CPU内部寄存器:PC,程序计数器(Program Pointer):16位寄存器,指向存放下一个指令或预取操作数的地址,指令码或操作数预取后,PC地址会自动增量指向下一个。“先取后增”。,复位后,自动装入$FFFE(高位)和$FFFF(低位)中的值作为程序入口,即$FFFE和$FFFF存放的为地址,非操作码。,运行实际的程序,看PC如何变化,3.5.4.4 CPU内部寄存器:CCR,条件码寄存器(Condition Code Register):8位寄存器:5个状态位、1个中断

8、屏蔽位,两个未用置1,实例cpu_demo_条件码寄存器CCR,演示各个状态的变化,3.5.4.4 CCR中各位状态的改变1,;在AC16中,复位时,禁止中断,I=1,CCR的初始状态为:V=0,H=0,I=1,N=0,Z=0,C=0 LDA#$80;V=0,H=0,I=1,N=1,Z=0,C=0;装入一个负数,N=1 NEGA;V=1,H=0,I=1,N=1,Z=0,C=1;0-(A)=0-(-128)=128,一个8位的有符号数所能表示的范围:-128127,128超出能表示的范围,故溢出,V=1CLRA;V=0,H=0,I=1,N=0,Z=1,C=1;将累加器中的值清零,故Z=1,条件码

9、寄存器中各位的状态会受到多种指令操作的影响。,3.5.4.4 CCR中各位状态的改变2,LDA#%00001000;V=0,H=0,I=1,N=0,Z=0,C=1ADD#%00001001;V=0,H=1,I=1,N=0,Z=0,C=0;#%00001000+#%00001001=#%00010001;3位向4位进位,故H=1 CLI;V=0,H=1,I=0,N=0,Z=0,C=0;开中断,不再禁止中断,故I=0LDA#3TSUB#4T;V=0,H=1,I=0,N=1,Z=0,C=1;3-4=-1,结果为负数,且有借位,故N=1,C=1,3.5.4.4 利用CCR中的标志进行跳转,预备知识:逻

10、辑左移指令LSLA,0,A,C,3.5.4.4 利用CCR中的标志进行跳转,程序中也往往会根据各个状态位的状态作出适当的跳转。例7:LDA#%01000010;(A)#%01000000 LSLA;把A中的值左移1位,移出的值放在标;志C中.移位后(A)=#%10000100,C=0 BCS C_High;如果C=1,则转到标志C_High;所在的位置C_Low:MOV#0T,Var LSLA;移位后(A)=#%000001000,C=1 BCS C_High BRA C_Low;转移到标志C_Low所在的位置C_High:MOV#1T,Var,3.5.4.4 利用CCR中的标志进行跳转,程序

11、中也往往会根据各个状态位的状态作出适当的跳转。例7:LDA#%01000010 LSLA BCS C_HighC_Low:MOV#0T,Var LSLA BCS C_High BRA C_LowC_High:MOV#1T,Var,LDA,LSLA,LSLA,C=1?,C=1?,3.5.4.4 直接操作CCR的指令,TPATAPSEICLRI,3.5.4.5 CPU寄存器其他说明,A,H,X,SP,PC,CCR不与其他存储器和FLASH 统一编址。对它们的操作往往是隐含寻址。对A,H,X,SP,CCR寄存器,用户可用指令直接操作赋值,同时CPU也将运算结果存入其中。对PC(程序指针)16位寄存器,用户无直接操作赋值指令,其内容仅由CPU处理。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号