Linux内核分析 计算机是如何工作的? 学习笔记

本文详细介绍了X86架构下的汇编语言基础知识,包括冯·诺依曼体系结构、寄存器分类与功能、常见汇编指令如MOV、PUSH、POP、CALL和RET的使用方式,以及Linux内核下的AT&T汇编格式特点。

一、存储程序计算机工作模型

1、冯·诺依曼体系结构

2、API:程序员与计算机的接口界面。
3、ABI:程序与CPU的接口界面。

二、X86汇编基础

1、X86寄存器
(1)8位:
低位:AL,BL,CL,DL
高位:AH,BH,CH,DH
(2)16位:AX,BX,CX,DX
(3)32位:
累加器:EAX
基地址寄存器:EBX
计数寄存器:ECX
数据寄存器:EDX
堆栈基指针:EBP
变址寄存器:ESI,EDI
堆栈顶指针:ESP
(4)段寄存器:
代码段寄存器:CS,代码段的段值
数据段寄存器:DS,数据段的段值
附加段寄存器:ES、FS、GS,附加数据段的段值
堆栈段寄存器:SS,堆栈段的段值

2、CPU在实际取指令时根据cs:eip来准确定位一个指令。

三、X86指令

1、mov指令:
b,w,l,q分别代表8,16,32,64位
寄存器模式,以%开头的寄存器。
立即数是以$开头的数值。
(1)寄存器寻址:movl %eax,$edx edx=eax;
(2)立即寻址:movl $0x123,%edx edx=0x123;
(3)直接寻址:movl 0x123,%edx edx= *(int32_t*)0x123;
(4)间接寻址:movl (%ebx),%edx edx= *(int32_t)*edx;
(5)变址寻址:movl 4(%ebx),%edx edx=*(int32_t)(ebx+4);
2、Linux内核使用的是AT&T汇编格式,与Intel汇编格式略有不同。
3、eip寄存器不能被直接修改,只能通过特殊指令间接修改。
4、push指令
pushl %eax等价于:
subl $4,%esp
movl %eax,(%esp)
先栈顶指针esp减4,然后将eax寄存器的内容放入栈。
5、pop指令
pop %eax等价于:
movl (%esp),%eax
addl $4,%esp
先将eax寄存器的内容移出栈,然后栈顶指针esp加4。
6、call指令
call 0x12345等价于
pushl %eip
movl $0x12345,%eip(*)
先将eip压栈,然后将立即数0x12345放入eip。
eip是指令指针,所以它会从地址为0x12345开始取地址。
7、ret指令
ret等价于:popl %eip(*)
把call的时候保存的eip弹栈。
8、实例分析

四、三个法宝

1、存储程序计算机工作模型,计算机系统最最基础性的逻辑结构;
2、函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要,但有了高级语言及函数,堆栈成为了计算机的基础功能;

enter  
    pushl %ebp
    movl %esp,%ebp
leave  
    movl %ebp,%esp
    popl %ebp

函数参数传递机制和局部变量存储
3、中断,多道程序操作系统的基点,没有中断机制程序只能从头一直运行结束才有可能开始运行其他程序。

基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样与统计,通过模拟系统元件的故障与修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构与设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码与案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行与可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理与实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估与优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值