美文网首页
汇编语言基础

汇编语言基础

作者: suntwo | 来源:发表于2019-08-02 09:00 被阅读0次

寄存器

寄存器是处理器内部的高速缓冲区,用于暂时存放数据。
寄存器的分类:
透明寄存器:这类寄存器不需要程序员进行操作。
可编程的寄存器:这是我们程序员需要学习的这类寄存器又分为通用寄存器和专用寄存器

32位通用寄存器:eax ebx ecx edx edi esi ebp esp
16位通用寄存器:ax bx cx dx di si bp sp
8位通用寄存器:al ah bl bh cl ch dl dh

专用寄存器的种类
标志寄存器:eflags
指令指针寄存器:eip
段寄存器:cs ds ss es gs fs

我们可以看到通用寄存器有8位16位和32位的,这是发展的结果,比如在一个32的系统中eax寄存器包含32个位,其中al是eax的最后8位,ax是eax的最后16位,因此ax也是包含al和ah的。
下面是一个图来表示各种寄存器关系


寄存器.png
寄存器结构.png

下面是我们通常使用的通用寄存器名称


通用寄存器.png

计算机存储器的分级

按照读取速度进行分等级
硬盘->内存->缓存->寄存器
这个顺序表示存取速度依次递增的顺序进行排序的并且存储器的大小是依次递减的但是价格是依次递增的,通常也是数据传递顺序,一个程序的运行首先从硬盘读入内存,然后将程序的代码按照顺序取指执行进行操作。

内存

内存又称主存储器,现在的内存通常是很大的,根据规定将主存储器分为很多的存储单元,每个存储单元占一个字节,按照存储单元进行编址,从0开始进行编址,这样每个存储单元都有一个唯一的地址,来标志这个存储单元,像这样的地址我们称之为物理地址。


物理地址.png

程序的寻址并不是按照物理地址进行寻址,IA-32处理器有三种存储模型,用于程序访问存储器。

  • 平展存储模型
  • 段式存储模型
  • 实地址存储模型

我们现在主要使用的是段式存储模型,我们现在了解下这种存储模型。
代码段:表示存放代码的即处理器需要执行的指令
数据段:表示存放数据的比如全局变量
堆栈段:用来存放临时地址和临时变量的
这三个段每个都可以达到最大内存

处理器内部和程序员编程时使用的是逻辑地址
逻辑地址=段基地址:偏移地址
段基地址:表示在主存中的起始位置
偏移地址:表示距离段基地址的位偏移量

专用寄存器

指令指针寄存器eip:保存程序执行到的位置顺序执行时进行自增,时刻指向指令执行到的位置.

代码段:段基地址cs,偏移地址eip
堆栈段:段基地址ss,偏移地址esp
数据段:段基地址ds,偏移地址

相关文章

  • 汇编语言

    基础知识: 汇编语言的主体是汇编指令,它决定了汇编语言特性 程序员用汇编语言写出源程序,再用汇编编译器将其编译成机...

  • 笔记——第一章

    @(读书笔记)[汇编语言,计算机] 基础知识 为什么要有汇编语言 CPU——电平脉冲(高低平)——二进制数字——机...

  • python是汇编语言还是高级语言?

    Python是不是汇编语言?不是,Python语言并不是汇编语言,它是一门高级的、面向对象、适合零基础学习的编程语...

  • 汇编语言:基础

    一篇前言 这是一系列的汇编语言学习的读书笔记,以及一些自己的理解系列文章。我想我会在循序渐进的学习中,写下对汇编的...

  • 汇编语言基础

    寄存器 寄存器是处理器内部的高速缓冲区,用于暂时存放数据。寄存器的分类:透明寄存器:这类寄存器不需要程序员进行操作...

  • 汇编语言 Ch1-基础知识 笔记

    汇编语言 Ch1-基础知识 笔记 ![](http://picture-repository-of-heamon7...

  • 汇编语言开篇

    1. 使用教材 王爽的《汇编语言(第3版)》和 小甲鱼_零基础入门汇编语言 2.习题答案 链接 3. 目标 以前没...

  • 2021-05-17(汇编1)

    汇编语言是很多相关课程(如数据结构、操作系统、微机原理等)的重要基础。其实仅从课程关系的角度讨论汇编语言的重要性未...

  • 汇编指令与C语言对比

    这两天在巩固基础,重拾汇编语言,对于汇编语言的思考,记录在此,仅仅是自己的思考笔记,可能有错误的地方,欢迎提意见。...

  • 汇编语言之基础

    本系列为学习<汇编语言> 王爽版 的学习笔记 [TOC] 汇编语言是什么? 汇编语言是直接在硬件之上工作的编程语言...

网友评论

      本文标题:汇编语言基础

      本文链接:https://www.haomeiwen.com/subject/jflkdctx.html