美文网首页
汇编语言笔记(持续更新)

汇编语言笔记(持续更新)

作者: youngiii | 来源:发表于2017-10-10 09:38 被阅读102次

机器语言,机器语言就是0101组成的世界,计算机通过0101执行指令,但是总不能让程序员写0101吧? 既不好记,可读性又差,且容易出错,所以也就有了汇编语言,汇编语言主要是把特定的语句翻译成0101代码
执行的过程是:程序员->汇编指令->编译器->机器码(0101)->计算机

存储器

计算机中最小的存储单元是 bit,也就是一个二进制位
8bit = 1byte(字节)
一个存储单元可以存放1个byte,即8bit,如 0000 1100

CPU对存储器的读写

CPU是通过总线来跟存储器通信的,总线从逻辑上分为地址总线,控制总线,数据总线

  • 地址总线主要是对地址进行传输,每根导线都有低电平和高电平,用二进制来表示就是0和1,10根导线可以传送10位二进制数据,而10位二进制数据有2的10次方的数据组合。

  • 数据总线主要是对数据进行传输,8根数据总线一次可传送8位2进制

  • 控制总线是个总称,控制总线的宽度决定了CPU对外部器件的控制能力

寄存器

一个典型的CPU由运算器,控制器,寄存器等构成

  • 运算器进行信息处理
  • 寄存器进行信息存储
  • 控制器控制各种器件进行工作
  • 内部总线连接各种器件,在它们之间进行数据传送

通用寄存器

AX,BX,CX,DX这4个称为通用寄存器,通常用来存放一般性的数据,由于这些寄存器是16位的,为了兼容旧代CPU,所以可拆分了8位
AX = AH + AL
BX = BH + BL
CX = CH + CL
DX = DH + DL

寻找物理地址过程

段的概念

image.png

段寄存器

CS和IP是CPU中两个关键的寄存器,CS为代码寄存器,IP为指令指针寄存器,假设CS = M,IP为N,CPU将从Mx16+N单元开始读取一条指令并执行。执行过程:
1.cs与ip放入地址加法器,计算得到地址
2.地址总线传送该地址,然后在内存中找到该值
3.值通过数据总线传送回cpu的控制电路
4.送入到指令缓存器
5.执行控制器执行指令

修改CS、IP指令

修改普通寄存器的指令类似于 MOV ax,16move bx,123,表示把16送进ax寄存器,把123送进bx寄存器,大部分都可以通过mov指令来修改寄存器,mov指令被称为传送指令
但是,mov指令不能用于设置CS和IP,因为它们有专用的指令jmp,用法:jmp 段地址:偏移地址

寄存器(内存访问)

image.png

mov指令

1.将数据送入寄存器
2.将一个寄存器中的内存送入到另一个寄存器
3.将内存单元地址送入到寄存器 mov 寄存器名,内存单元地址mov a1, [0]
[...]表示一个内存单元,[...]中的0表示内存单元的偏移地址
段地址默认存放在DS中

image.png image.png image.png

CPU的栈机制

在8086CPU中,有两个寄存器,SS和SP,SS存放栈顶地址,SP存放偏移地址,任意时刻,SS:SP执行栈顶元素。push指令和pop指令执行时,CPU从SS和SP中得到栈顶地址。

相关文章

  • 汇编语言笔记(持续更新)

    机器语言,机器语言就是0101组成的世界,计算机通过0101执行指令,但是总不能让程序员写0101吧? 既不好记,...

  • 使用swift的100个tips

    持续更新的个人笔记

  • 顶置目录(方便查看)

    简书技巧 简书基础简书Markdown进阶(持续更新) 笔记 操作系统 趣味合集 趣味合集(持续更新......)...

  • CocoaPods安装 2017.4.md

    iOS CocoaPods 安装笔记(持续更新)Unable to add a source with url

  • Principle

    《Principles》 by Ray Dalio 阅读笔记 会持续更新 fundamental princip...

  • Python 之内建模块整理

    个人笔记、持续更新 Collections from collections import Iterable:eg...

  • 汇编语言 学习笔记(三)

    汇编语言学习笔记 四、汇编语言程序格式 语句基本格式 汇编语言程序中的语句由 4 项组成,格式如下: 名字(nam...

  • 汇编语言之基础

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

  • Python 之内置函数整理

    个人笔记、持续更新 -- Built-in function import builtins Math abs(n...

  • (持续更新)SLAM 笔记

    Disclaimer:个人理解,可能有误,欢迎指正主要参考资料:《视觉 SLAM 十四讲: 从理论到实践》 高翔,...

网友评论

      本文标题:汇编语言笔记(持续更新)

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