计算机系统基础袁春风(1)为什么要学习计算机?C语言程序的举例 用系统思维分析问题 理解该问题需要知道 编译器如何处理字面量 高级语言当中的运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器

#1.1为什么要学习计算机?
C语言程序的举例
用系统思维分析问题
理解该问题需要知道
编译器如何处理字面量
高级语言当中的运算规则
高级语言与指令之间的对应
机器指令的执行过程
机器级数据的表示和运算

计算机系统基础袁春风(1)为什么要学习计算机?C语言程序的举例 用系统思维分析问题 理解该问题需要知道 编译器如何处理字面量 高级语言当中的运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器
第一个问题是转成了无符号数进行比较的,
比较左边unsignted int应该比右边带符号数的大,
第二个问题是转成了int都是有符号数了
第三个问题是应该是相等的
10000000-1==01111111
计算机系统基础袁春风(1)为什么要学习计算机?C语言程序的举例 用系统思维分析问题 理解该问题需要知道 编译器如何处理字面量 高级语言当中的运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器

理解这种问题需要知道的是:
高级语言当中的运算规则
机器指令的含义和执行
计算机内部的运算电路
异常的检测和处理
虚拟的地址空间

计算机系统基础袁春风(1)为什么要学习计算机?C语言程序的举例 用系统思维分析问题 理解该问题需要知道 编译器如何处理字面量 高级语言当中的运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器
理解这种问题需要知道的是:
机器级数据的表示,
机器指令的执行
计算机内部的运算电路

计算机系统基础袁春风(1)为什么要学习计算机?C语言程序的举例 用系统思维分析问题 理解该问题需要知道 编译器如何处理字面量 高级语言当中的运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器
计算机系统基础袁春风(1)为什么要学习计算机?C语言程序的举例 用系统思维分析问题 理解该问题需要知道 编译器如何处理字面量 高级语言当中的运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器
计算机系统基础袁春风(1)为什么要学习计算机?C语言程序的举例 用系统思维分析问题 理解该问题需要知道 编译器如何处理字面量 高级语言当中的运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器
objdump
反汇编代码得知除以-1被优化成取负指令neg,所以没有发生除法溢出的问题
计算机系统基础袁春风(1)为什么要学习计算机?C语言程序的举例 用系统思维分析问题 理解该问题需要知道 编译器如何处理字面量 高级语言当中的运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器
计算机系统基础袁春风(1)为什么要学习计算机?C语言程序的举例 用系统思维分析问题 理解该问题需要知道 编译器如何处理字面量 高级语言当中的运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器
计算机系统基础袁春风(1)为什么要学习计算机?C语言程序的举例 用系统思维分析问题 理解该问题需要知道 编译器如何处理字面量 高级语言当中的运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器
计算机系统基础袁春风(1)为什么要学习计算机?C语言程序的举例 用系统思维分析问题 理解该问题需要知道 编译器如何处理字面量 高级语言当中的运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器
计算机系统基础袁春风(1)为什么要学习计算机?C语言程序的举例 用系统思维分析问题 理解该问题需要知道 编译器如何处理字面量 高级语言当中的运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器
关键差别在于一条指令:
fldl还有fildl

你在想什么?
看了前面的举例:你的感觉是什么呢?
j计算机好像不可靠,从机器的角度来说,他永远是对的
程序的执行不仅仅依赖于高级语言语法和语义,还有其他的好多其他方面有关
一点不错!理解程序的执行的结果要从系统层面考虑
本来学习编程和计算机基本原理就能够当程序员,没有想到还很复杂的,计算机专业不好学
学完计算机系统基础,就会对计算机系统有了清晰的认识,,以后再学学习其他的相关的课程就容易很多
感觉要把很多的概念和知识联系起来才能够理解程序的执行结果
你说对了,把许多的概念和知识联系起来就是李国杰院士提出的系统思维,即:站在计算机系统的角度考虑问题的

计算机系统基础袁春风(1)为什么要学习计算机?C语言程序的举例 用系统思维分析问题 理解该问题需要知道 编译器如何处理字面量 高级语言当中的运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器
计算机系统基础袁春风(1)为什么要学习计算机?C语言程序的举例 用系统思维分析问题 理解该问题需要知道 编译器如何处理字面量 高级语言当中的运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器
进程需要独立的逻辑控制流和独立的地址空间
过程调用使用栈存放参数和局部变量等,递归过程有大量的额外的指令,增加时间开销,可能会发生栈的出

什么是计算机系统?
程序执行结果不仅仅取决于算法和程序的编写,还取决于语言处理系统,操作系统,ISA,微体系结构
不同的计算机课程处于不同的层次
必须将各个层次关联起来解决问题

计算机系统基础袁春风(1)为什么要学习计算机?C语言程序的举例 用系统思维分析问题 理解该问题需要知道 编译器如何处理字面量 高级语言当中的运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器
计算机系统基础的内容提要
课程的目标:让学生清楚理解计算机是如何生成和运行可执行文件的
重点在高级语言以下的各个抽象层次
C语言程序设计层
数据的机器级表示,运算
语句和过程的调用的机器级表示
操作系统,变异和连接的部分内容
指令集体系结构ISA和汇编层
指令系统,机器代码,汇编语言
微体系结构以及硬件层次
CPU的通用结构
层次结构存储系统
计算机系统基础袁春风(1)为什么要学习计算机?C语言程序的举例 用系统思维分析问题 理解该问题需要知道 编译器如何处理字面量 高级语言当中的运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器
为了编程的时候少出错,
为了在程序出错的时候很快找打出错的地方
为了明白程序是怎样在计算机上执行的
为了强化系统思维
为了更好的理解计算机系统,从而编写出更好的程序
为了后续课程的学习打好良好的基础
为了编写出更快的程序
为了更好的认识计算机系统
计算机系统基础袁春风(1)为什么要学习计算机?C语言程序的举例 用系统思维分析问题 理解该问题需要知道 编译器如何处理字面量 高级语言当中的运算规则 高级语言与指令之间的对应 机器指令的执行过程 机器