第一周 计算机系统概述
第一讲 为什么要学习计算机系统基础
c语言程序实例与计算机系统基础
-
例子1:-2147483648<2147483647 false int i=-2147483648;i<2147483647;true
-
编译器如何处理字面量?十进制转换成01序列
- 高级语言中运算规则
- 高级语言与指令之间的对应 条件表达式
- 机器指令的执行过程
-
机器级数据的表示与运算 系统思维分析问题
-
例二
sum(int a[],unsigned len){
int i,sum=0;
for(i=0;i<len-1;i++)
sum+=a[i];
return sum;
}
//len为0收访存异常。int却正常,len-1
- 高级语言中运算规则
- 机器指令的含义与执行
- 计算机内部的计算电路
- 异常的检测和处理
- 虚拟地址空间
例子
- 若x和Y为int 型,当x=65535,y=x^2,y=-131071
- 对于任何int变量x和y,(x>y)==(-x<-y>)总成立吗? 当x=-2147483648,y为任意(出-2147483648)时不成立 现实世界与计算机世界成立情况不一样
- 机器级数据的表示
- 机器指令的执行
- 计算机内部的运算电路
例子2
main.c
int d=100;
x=200;
int main(){
p1();
printf("d=%d,x=%d\n",d,x);
return 0;
}
p1.c
double d;
void p1(){
d=1.0;
}
- 打印结果d=0,x=1072693248
- 机器级数据的表示
- 变量的存储空间分配
- 数据的大端/小端存储方式
- 链接器的符号解析规则
例子3
数组拷贝到堆中
理解计算机是如何生成和运行可执行文件的 为了编程时少出错(直观) 为了再程序出错时很快找到出错的地方 强化系统思维 为了更好理解计算机系统,从而编写更好程序
第二讲
计算机是通过执行程序来完成各种任务的 程序 指令 数据