zoukankan      html  css  js  c++  java
  • 2019-2020-1 20199327《Linux内核原理与分析》第三周作业

    操作系统是如何工作的

    计算机的三大法宝:

    1.存储程序计算机;

    2.函数调用堆栈机制;

    3.中断机制;

    函数调用堆栈

    堆栈的作用

    1.记录函数调用框架;

    2.传递函数参数,方法:从左到右;

    3.保存返回值的地址;

    4.提供函数内部局部变量的存储空间;

    相关寄存器和操作

    ESP:堆栈指针;

    EBP:基址指针;

    push:栈顶地址减少4个字节,并将操作数放入栈顶存储单元;

    pop:栈顶地址增加4个字节,并将栈顶存储单元的内容放入操作数;

    栈是从高地址向低地址增加的。

    其他关键寄存器

    CS:EIP总是指向下一条的指令地址。

    顺序执行:总是指向地址连续的下一条指令;

    跳转/分支:执行这样的命令时,CS:EIP的值会根据程序需要被修改;

    call:将当前CS:EIP的值压入栈顶,CS:EIP指向被调用函数的入口地址。

    ret:从栈顶弹出原来保存CS:EIP的值,放入CS:EIP中;

    内嵌汇编

    关键字

    asm:是GCC关键字asm的宏定义,是内嵌汇编的关键字。_asm_和asm可以互相替换使用,#define asm asm;

    volatile:是GCC关键字volatile的宏定义,编译器不要优化代码,汇编指令保持原样。_asm_和asm可以互相替换使用,#define volatile volatile;

    语法

    asm volatile

    汇编语言模板:
    
    输出部分:
    
    输入部分:
    
    破坏描述部分
    

    实验

    patch -pl < ../mykernel_for_linux3.9.4sc.patch4

    qemu -kernel arch/x86/boot/bzImage

    搭建实验平台后内核启动效果

  • 相关阅读:
    KMP算法
    Java中的字段和属性
    Java的垃圾回收机制
    一个初学所了解的jquery事件
    jQuery选择器
    hide(1000)跟show(1000)
    show/hide
    点击消失功能
    Java中集合Set的用法
    oracle的nvl和sql server的isnull
  • 原文地址:https://www.cnblogs.com/waxxx/p/11610272.html
Copyright © 2011-2022 走看看