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

机器语言,机器语言就是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中得到栈顶地址。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...
    Gibbs基阅读 37,346评论 8 114
  • 计算机通过执行指令序列来使机器得以工作,所以对于每一系列的计算机都有指定的一组指令集供计算机使用,这组指令...
    未来科技工作室阅读 8,096评论 1 10
  • 王爽汇编全书知识点大纲 第一章 基础知识 机器语言 汇编语言的产生 汇编语言的组成 存储器 cpu对存储器的读写 ...
    2c3ba901516f阅读 2,441评论 0 1
  • 汇编总结 汇编的发展史 机械语言 由0和1组成的机器指令(如:0101 0001 1101 0110) 汇编语言(...
    iChuck阅读 1,330评论 1 8
  • 越底层越单纯!真正的程序员都需要了解的一门非常重要的语言,汇编! 机器语言 我们所写的语言最终安装在机器上的是什么...
    瑞阳gg阅读 607评论 0 0