随笔分类 - 汇编语言
摘要:Go的汇编器继承自Plan9的汇编器,但与Plan9汇编器仍有很多不同之处。 Plan9并不是Go语言中特有的东西,而是指贝尔实验室中开发的一个操作系统。 贝尔实验室九号项目(英语:Plan 9 from Bell Labs,常简称为Plan 9)是一个分布式操作系统,由贝尔实验室的计算科学研究中心
阅读全文
摘要:内核版本 Linux 4.7 Note:64位系统中,不再使用 来进行系统调用,取而代之的是 指令 %rax| System call| %rdi| %rsi| %rdx| %r10| %r8| %r9 | | | | | | | 0| sys_read| unsigned int fd| char
阅读全文
摘要:前言 C语言的过程调用机制(即函数调用)的一个关键特性是使用了栈数据结构提供的后进先出的内存管理原则,其实大多数编程语言都是如此。每一个函数的栈空间被称为栈帧,一个栈帧上包含了保存的寄存器、分配给局部变量的空间以及传递给被调用函数的参数等等。一个基本的栈结构如下图所示: 过程调用的参数是通过栈来传递
阅读全文
摘要:在IA32的操作系统中,段被分为了4个特权级,分别为0 3级,有时候我们也叫做ring0 ring3,其中,数值越小特权级越高。如下图所示: 图中,核心代码和数据所在的段的特权级都比较高,一般在ring0,而用户程序所在的段的特权级较低,一般在ring3。当低特权级的任务试图在未被允许的情况下访问高
阅读全文
摘要:在汇编语言中,或者你有学习过诸如微机原理或计算机组成原理等课程的话,那么你很可能听说过实模式和保护模式的概念。他们到底是什么,有什么不同,又如何寻址? 在王爽的《汇编语言》最后,有关于Intel微处理器的三种工作模式的介绍。 继Intel 8086推出之后,Intel又推出了划时代的80386微处理
阅读全文
摘要:CPU内部的寄存器中,有一种特殊的寄存器(对于不同的机器,个数和结构都有可能不同)具有以下三个功能: 用来存储某些相关指令的执行结果 用来为CPU执行相关的指令提供行为依据 用来控制CPU的相关工作方式 这种特殊的寄存器在8086CPU中称为标志寄存器。8086的标志寄存器有16位,其中存储的信息通
阅读全文
摘要:转移指令 在8086CPU中,转移指令可分为如下几类 无条件转移指令,如jmp 条件转移指令,如jcxz 循环指令,如loop 过程 中断 在此,只先讨论无条件转移中的jmp,其他东西以后再更 jmp为无条件转移指令,可以只修改IP,也可以同时修改CS和IP 依据位移进行转移的jmp指令 所谓依据位
阅读全文

浙公网安备 33010602011771号