![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机系统基础
文章平均质量分 53
dareu_4523
这个作者很懒,什么都没留下…
展开
-
MIPS,程序的CPI,时钟周期计算(主频的计算)
一,主频二,程序的CPI三,MIPS四,时间如图例题:序列一的主频 = 1 / ( 2 * 10-9)s = 0.5 * 109 = 0.5GHZ程序的CPIMIPS:时间:序列二的就基本上也是这样算程序的CPIMIPS:时间:最后对比一下就能选出b...原创 2021-01-21 16:29:54 · 10437 阅读 · 2 评论 -
汇编语言的标志位
假设有2个数x,y目录一,OF二,CF三,SF四,ZF一,OFOF:算OF不管是有无符号数,如果正数加正数得到负数或者负数加负数得到正数,则OF=1其余OF=0二,CF如果做加法,Ci-1=0,如果做减法,Ci-1=1,比如有2个数,x和y都是8位的二进制数,第九位就是Ci如果x加y没有进位,则Ci=0,进位了就是Ci=1,CF = Ci ⊕ Ci-1 (⊕是异或的意思)三,SFx和y运算后符号位是1,则SF=1符号位是0,SF=0四,ZFx和y运算后结果是0,ZF=1结果不原创 2021-01-15 11:37:44 · 1541 阅读 · 0 评论 -
一个令人迷惑的指针行为
做了一个考试题发现:指针++或指针–后的值之差不等于两个指针相减,而是等于其值的差除以指针指向的类型大小#include <iostream>int main(){ int a[4] = { 1,2, 3 , 4 }; printf("%p %ld\n", a, a); printf("%p %ld\n", &a[1], &a[1]); printf("%p %d %ld\n\n", &a[1] - a, &a[1] -原创 2021-01-15 10:44:11 · 95 阅读 · 0 评论 -
结构体嵌套对齐以及结构体中含有数组的对齐,也基本总结了各类结构体对齐的问题
基本的结构体对齐知识点击这里①结构体嵌套对齐以及结构体中含有数组的对齐32位系统环境规则一:结构体中含有数组,数组元素类型和结构中其余的最大类型取较大者 对齐规则二:结构体S2中嵌套结构体S1,则按照S1的最大元素类型和S2中各元素类型取较大者对齐就是max(sizeof(struct S1),sizeof(max_type_of_S2))注释的数字表示偏移量(就是地址)#include<iostream>#include<vector>struct S1 { c原创 2021-01-14 11:26:34 · 3453 阅读 · 0 评论 -
结构体对齐问题(转)
一个结构体变量定义完之后,其在内存中的存储并不等于其所包含元素的宽度之和。例一:#include <iostream>using namespace std;struct X{ char a; int b; double c;}S1;void main(){ cout << sizeof(S1) << endl; cout << sizeof(S1.a) << endl; cout << size转载 2021-01-08 22:16:21 · 318 阅读 · 0 评论 -
算术,逻辑左移右移(转)
1、算术左移-逻辑左移算术左移和逻辑左移一样都是右边补0: 比如 00101011算术左移一位:01010110逻辑左移一位:01010110对于二进制的数值来说左移n位等于原来的数值乘以2的n次方比如00011010十进制是26,左移两位后是01101000转成十进制是104恰好是26的4倍。ps:这种倍数关系只适用于左移后被舍弃的高位不含1的情况,否则会溢出。2、算术右移,逻辑右移逻辑右移很简单,只要将二进制数整体右移,左边补0即可如10101101逻辑右移一位为01010110算术转载 2021-01-08 20:19:05 · 7935 阅读 · 0 评论 -
基本汇编指令
eax寄存器eax,32位寄存器,ax代表十六位,al代表低八位,ah代表高八位,并且函数返回值一般使用eax存放,al的l是low低八位,ah的h是high高八位如图eip寄存器eip存放将要执行的指令的地址leave指令leave指令等价于movl %ebp , %esppopl %ebp起到退栈作用!!ret指令把返回地址放到eip寄存器中call指令保存下一条指令的地址,并转向被调用函数...原创 2021-01-06 20:23:17 · 7673 阅读 · 0 评论 -
大数端存储和小数端存储
假设某个int变量i地址是0800H,机器数是01234567H我们知道十六进制数转化成二进制数是1个数变成4个0/1,所以,2个十六进制数恰好就是8位,1个字节所以01234567H的最高有效字节就是01,最低有效字节就是67大数端存储就是把最高有效字节放到小地址中,最低有效字节放到高地址中注:文章内容来自袁春风老师的《计算机系统基础》P57页...原创 2021-01-05 21:56:42 · 977 阅读 · 0 评论 -
计算机系统基础笔记
Q1:如何求负数二进制补码的绝对值因为求负数的补码,所以一般就认为给出的二进制数就是补码了把该补码每一位(包括符号位)按位取反后加1,得到的二进制数,把它看成无符号数,该无符号数就是该补码的绝对值举个例子1000 0000按位取反后0111 1111加一1000 0000把1000 0000看成无符号数,所以代表了128,因为这是负数的绝对值,所以1000 0000 表示了-128另外举个例子求 1000 0001的绝对值每一位都按位取反得到: 0111 1110加一得到:原创 2020-12-01 20:38:43 · 372 阅读 · 0 评论