首页 技术 正文
技术 2022年11月21日
0 收藏 306 点赞 5,034 浏览 965 个字

朱荟潼 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课http://mooc.study.163.com/course/USTC-1000029000

1.冯诺依曼体系结构

—核心:存储程序计算机
计算机在执行程序时须先将要执行的相关程序和数据放入内存储器中,在执行程序时CPU根据当前程序指针寄存器的内容取出指令并执行指令,然后再取出下一条指令并执行,如此循环下去直到程序结束指令时才停止执行。其工作过程就是不断地取指令和执行指令的过程,最后将计算的结果放入指令指定的存储器地址中。

2.X86汇编基础

(1)通用寄存器(32位)

EAX:累加寄存器,常用于运算;

EBX:基址寄存器,常用于地址索引;

ECX:计数寄存器,常用于计数;

EDX:数据寄存器,常用于数据传递;

ESP:堆栈指针,与SS配合使用,可指向目前的堆栈位置;

EBP:基址指针寄存器,可用作SS的一个相对基址位置;

ESI:源变址寄存器,可用来存放相对于DS段之源变址指针;

EDI:目的变址寄存器,可用来存放相对于ES 段之目的变址指针。

(2) 段寄存器

CS:代码段寄存器(存有代码)
DS:数据段寄存器
SS:堆栈段寄存器
ES:附加段寄存器

(3) eip特点:

a.自加1条指令。 从该指令执行完自动指向下一条指令。

b.只可被一下指令修改:call,ret,jmp,条件跳转

(4)cpu在实际取指令是根据 cs:eip 来定位一条指令.

(5)堆栈是向下增长的。

3.X86汇编指令

(1)寻址方式

20135337朱荟潼 Linux第一周学习总结——计算机是如何工作的

(2)Push,pop,ret,enter,leave

20135337朱荟潼 Linux第一周学习总结——计算机是如何工作的

20135337朱荟潼 Linux第一周学习总结——计算机是如何工作的

(3)Eax 寄存器

函数返回值默认用它存储,返回给上一级函数

(4)函数调用堆栈是由逻辑上多个堆栈叠加起来的

4.实验

(1)创建5337.c并查看

20135337朱荟潼 Linux第一周学习总结——计算机是如何工作的

20135337朱荟潼 Linux第一周学习总结——计算机是如何工作的

(2)编译

20135337朱荟潼 Linux第一周学习总结——计算机是如何工作的

20135337朱荟潼 Linux第一周学习总结——计算机是如何工作的

(3)修改成汇编语言

20135337朱荟潼 Linux第一周学习总结——计算机是如何工作的

把.XXX删去即可

20135337朱荟潼 Linux第一周学习总结——计算机是如何工作的

(4)栈的变化分析

针对实验中的分析(主函数main,俩子函数分别是g,f):

20135337朱荟潼 Linux第一周学习总结——计算机是如何工作的

(ps:分析栈的变化时,笔的颜色分别代表一个函数)

函数之间(子函数改名:a,b):

20135337朱荟潼 Linux第一周学习总结——计算机是如何工作的

学习总结

上学期学习过相关内容,所以这次课程的开始相对比较容易,同时对于这学期的学习内容也会努力学习,知识内容的掌握更加深刻。

朱荟潼+原创作品转载请注明出处+ 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,020
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,513
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,359
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,142
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,772
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,850