实验一:通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的 学号:20135114 姓名:王朝宪 注: 原创作品转载请注明出处   <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1 1)实验部分(以下命令为实验楼64位Linux虚拟机环境下适用,32位Linux环境可能会稍有不同) 使用 gcc –S –o main.s main.c -m32 命令编译成汇编代码,如下代码中的数字请自行修改以防与…
秦鼎涛  <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验一 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的 一.C语言源代码: int g(int x) { return x + 3; } int f(int x) { return g(x); } int main(void) { return f(8) + 1; } 二.实验楼截图: 三.分析汇编代码的工作过程中堆栈的变化: 跟C语言一样…
姓名:吕松鸿 学号:20135229 ( *原创作品转载请注明出处*) ( 学习课程:<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ) 一.存储程序计算机 1.1冯诺依曼体系结构:即具有存储程序的计算机体系结构 目前大多数拥有计算和存储功能的设备(智能手机.平板.计算机等)其核心构造均为冯诺依曼体系结构 从硬件来看 CPU与内存通过主线连接,CPU上的IP(可能是16.32.64位)总指向内存的某一块区域:I…
首先,我们先写一个简单的C语言程序,如下: int g(int x) { return x +3; } int f(int x) { return g(x); } int main(void) { return f(8) + 1; } 然后我们把源程序编译成一个汇编语言,指令如下 gcc -S -o main.s main.c -m32 得到结果,删去符号项得到结果 首先,main函数为该程序的开始入口,所以从main函数开始分析: 在line 17 ~ line 18是进入main函数(ent…
一.实验 使用gcc –S –o main.s main.c -m32 命令编译成汇编代码,如下代码中的数字请自行修改以防与他人雷同 int g(int x) { return x + 3; } int f(int x) { return g(x); } int main(void) { return f(8) + 1; } 源代码: 汇编代码: 去点.开头的代码后 堆栈变化: 我对“计算机是如何工作的”理解 通过以上一个小例子,清楚地展示了计算机是如何在堆栈中进行数据流的变化的.我的理解是,当…
反汇编一个简单的C程序 攥写人:杨光  学号:20135233 ( *原创作品转载请注明出处*) ( 学习课程:<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ) 实验要求:  实验部分(以下命令为实验楼64位Linux虚拟机环境下适用,32位Linux环境可能会稍有不同) 使用  gcc –S –o main.s main.c -m32 命令编译成汇编代码, 代码如下: int g(int x) { retu…
本文概要:通过一个简单的Qt程序来介绍Qt程序编写的基本框架与一些Qt程序中常见的概念 #include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton *button = new QPushButton("Quit"); QObject::connect(button, SIGNA…
1 概述 编写一个简单的ECHO(回复)程序来分析TCP客户和服务器之间的通信流程,要求如下: 客户从标准输入读入一行文本,并发送给服务器 服务器从网络输入读取这个文本,并回复给客户 客户从网络输入读取这个回复,并显示在标准输出上 通过这样一个简单的例子来学习TCP协议的基本流程,同时探讨在实际过程中可能发生的意外情况,从而更深层次的理解其工作原理: 客户和服务器启动时发生了什么? 客户正常终止发生了什么? 若服务器进程在客户之前终止,则客户会发生什么? 若服务器主机崩溃,则客户会发生什么? ……
一.实验截图 二.汇编代码分析: cpu首先执行main函数里的pushl %ebp和movl %esp %ebp.如下图: esp减去4就是向上移动4位到1,如下图: 把1赋值给esp,如下图: call f即为eip转到f执行,先push eip,再将f的地址传给eip. ... ... ... 太晚了,先略,以后补上,嘿嘿. 三.对于计算机是如何工作的? 首先是冯诺依曼体系,cpu不断的从内存中读取数据.而当每个程序要运行的时候,内存就把硬盘上的程序加载进来开始给cpu去执行. 基本就是这…
通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的(王海宁) 姓名:王海宁                             学号:20135103 课程:<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一,C语言代码(导出代码截图) 二,实验过程 (1) 创建一个命名c代码文件代码为 :vi 名字.c 将C代码转换为汇编代码在64位linux虚拟机中的代码为:gcc -S -o 文件名.c -…