计算机
zilan23
这个作者很懒,什么都没留下…
展开
-
判断一个数是否符合8位位图的原则
判断一个数是否符合8位位图的原则, 首先看这个数的二进制表示中1的个数是否不超过8个. 如果不超过8个, 再看这n个1(n<=8)是否能同时放到8个二进制位中, 如果可以放进去, 再看这八个二进制位是否可以循环右移偶数位得到我们欲使用的数. 如果可以, 则此数符合8位位图原理, 是合法的立即数. 否则, 不符合....原创 2020-02-24 18:40:27 · 1498 阅读 · 0 评论 -
ARM8位图立即数格式
operand2的常数表达式有如下规定:“该常数必须对应8位位图,即常数是由一个8位的常数循环右移偶数位得到的。”这句话的意思是说,当用12位第二操作数来表示一个32位立即数时,采用的是将8位数通过移位的方式来实现的,其中12位第二操作数的低八位存放被移位的“基本”数(取值范围为0到255),而高四位存放的是循环右移的位数,因为位四位二进制数,所以取值范围位为0到15,而对应的移位位数则为0到30...原创 2020-02-16 06:52:54 · 1393 阅读 · 1 评论 -
cache的访问过程详解 访问命中率hit rate 命中时间hit time 失效率miss rate 失效代价miss penalty
原创 2020-01-22 19:40:05 · 4080 阅读 · 0 评论 -
ARM7TDMI体系结构详解 & 各个后缀字母的含义
T:高密度16位Thumb指令集扩展D:支持片上调试M:64位乘法指令I:Embedded ICE硬件仿真功能模块冯·诺依曼(Von Neumann)结构,指令和数据共用一条32位总线。ARM7TDMI为V4版本,直接支持的数据类型字节(8位),半字(16位),字(32位)。(V4版本之后都支持这三种形式。)所有数据操作都以字为单位。装载和保存指令可以对字节、半字和字进行操作。AR...原创 2020-01-22 15:16:50 · 8802 阅读 · 0 评论 -
图着色寄存器分配
如果寄存器分配问题被抽象成图着色问题,那么图中的每个节点代表某个变量的活跃期或生存期(Live range)。活跃期定义是从变量第一次被定义(赋值)开始,到它下一次被赋值前的最后一次被使用为止。两个节点之间的边表示这两个变量活跃期因为生命期(lifetime)重叠导致互相冲突或干涉。一般说来,如果两个变量在函数的某一点是同时活跃(live)的,它们就相互冲突,不能占有同一个寄存器。详情参考知乎...原创 2020-01-21 15:28:52 · 2619 阅读 · 0 评论 -
图着色算法
图着色算法一般采用m叉搜索树,搜索策略采用深度优先。约束条件是在节点<x1, x2, … , xk>处,顶点k+1的邻接表中节点已经用过的颜色不能再用;如果邻接表中节点已用过m种颜色,则节点k+1没法着色,从该节点回溯到其父节点。详情参考知乎:https://zhuanlan.zhihu.com/p/55287942...原创 2020-01-21 15:20:00 · 3291 阅读 · 0 评论 -
图着色问题 概念
给定一个无向连通图G=(V, E),其中V为顶点集合{1, 2, …, n},E为边集合。图着色问题即为用K种颜色为图的顶点着色,每个顶点着一种颜色。要求G的每条边相连的两个顶点着不同颜色。...原创 2020-01-21 15:14:28 · 1442 阅读 · 0 评论 -
地址描述符 address descriptor 理解
记录运行时每个名字的当前值存放在哪个或哪些位置该位置可能是寄存器、栈单元、内存地址或者是它们的某个集合这些信息可以存放在该变量名对应的符号表条目中...原创 2020-01-20 04:20:49 · 653 阅读 · 0 评论 -
寄存器描述符 register descriptor 定义
定义:记录每个寄存器当前存放的是哪些变量的值英文:Name of variable(s), whose value is currently saved in register.原创 2020-01-20 04:19:26 · 309 阅读 · 0 评论 -
堆栈作用 3点
1) 保存现场现场,意思就相当于案发现场,总有一些现场的情况,要记录下来的,否则被别人破坏掉之后,你就无法恢复现场了。而此处说的现场,就是指 CPU 运行的时候,用到了一些寄存器,比如 r0,r1 等等,对于这些寄存器的值,如果你不保存而直接跳转到子函数中去执行,那么很可能就被其破坏了,因为其函数执行也要用到这些寄存器。因此,在函数调用之前,应该将这些寄存器等现场,暂时保持起来(入栈 push...原创 2020-01-19 04:53:59 · 1685 阅读 · 0 评论 -
堆栈 堆栈指针SP stack pointer R13 ARM
1.相关概念:只允许一端进行插入或删除。允许进行插入、删除操作的一端称为栈顶。另一端称为栈底。栈顶的当前位置是动态的,对栈顶当前位置的标记称为栈顶指针。当栈中没有数据元素时,称之为空栈。栈的插入操作通常称为进栈或入栈,栈的删除操作通常称为退栈或出栈。2.特点:先进后出。比如插入的顺序为A B C D,则出栈的顺序为D C B A。push:压栈 push(A)push(B)...原创 2020-01-19 04:40:44 · 846 阅读 · 0 评论 -
满递减堆栈
满递减堆栈定义:堆栈指针指向栈顶元素,且堆栈由高地址向低地址方向增长。原创 2020-01-19 03:33:19 · 3775 阅读 · 0 评论 -
满递增堆栈
满递增堆栈定义:堆栈指针指向最后压入的数据,且由低地址向高地址生成。原创 2020-01-19 03:34:31 · 2409 阅读 · 0 评论 -
链接寄存器LR Link Register ARM
用于保存函数调用的返回地址,即存放执行BL或者BLX指令后的PC的值。原创 2020-01-18 12:08:14 · 1792 阅读 · 0 评论 -
软盘和硬盘区别
相同点:软盘和硬盘都是磁盘,原理和磁带录音机类似 突然断电和摇晃都可能造成损伤不同点:软盘基板是塑料的,硬盘基板是金属的 硬盘读取时转速很高,产生的气流能使读取信息的驱动磁头悬浮而不直接接触盘面,提升了读写速度进化点:软盘被U盘等取代 硬盘和硬盘驱动器整合在一起,装进一个盒子里,固定在机箱里面不可更换和移动...原创 2020-01-07 03:06:18 · 4856 阅读 · 0 评论