汇编语言学习心得

 更新时间:2020年01月15日 10:43:47   作者:顾北清  
汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。这篇文章主要介绍了汇编语言学习心得,需要的朋友可以参考下

汇编语言

汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。

CPU的组成

CPU是由运算器(信息处理)、控制器(控制器件工作)、寄存器(信息存储)等器件组成,他们之间通过总线相连。

通用寄存器

通用寄存器时用于存放一般性数据的,以8086 CPU为例,8086 CPU所有的寄存器都是16位的,8086 CPU中的通用寄存器有AX、BX、CX、DX。为了兼容上一代CPU中的8位寄存器,这4个寄存器都可以拆成两个8位的寄存器使用,也就是将16位分成两个8位,AX可分为AH和AL,BX可分为BH和BL,CX可分为CH和CL,DX可分为DH和DL。这里的H可以记为High,高位,L可以记为Low,低位。

再来说一下数据宽度,因为寄存器有16位和8位两种,所以数据宽度可以分为字节和字,一个字节由8个bit组成,可以直接使用低位存储,一个字由两个字节,也就是16位,比如一个十六进制3E10,将这个十六进制存放到AX寄存器总,3E就存放在高位AH中,10存放在低位AL中。

内存单元的物理地址

之前说过数据是通过地址线存放在内存单元中的,那么就必须要确定这个内存单元的地址。

基础地址=段地址x16
基础地址+偏移地址=物理地址
所以物理地址=段地址x16+偏移地址,这里的16是十进制的16,也就是十六进制的A。
这里的段地址可以理解为一段一段的内存存储单元,但是段地址并不是固定的,可以认为10000H-100FFH是一个段,也可以将这段地址看成是10000H-1007F和10080H-100FFH组成的段,以10000H-100FFH为例,它的段地址是1000H,偏移地址为FF,这样基础地址就是1000Hx10H=10000H,这样就可以确定基础地址。再加上偏移地址,就可以确定这段内存。

段寄存器

既然可以通过段地址和偏移地址确定物理地址,那么就需要寄存器来存放段地址,8086 CPU中有4个段地址:CS、DS、SS、ES,偏移地址存放在IP寄存器中,这里以CS寄存器为例,可以简单的理解为通过CS(代码段寄存器)、IP(指令指针寄存器)两个寄存器可以确定CPU需要读取的指令的地址,也就是CPU会将CS:IP指向的内容当作指令执行。

操作指令

mov指令

mov指令称为传送指令,可以使用这个指令为寄存器赋值,例:mov ax,123 这个语句就类似于C语言中的赋值操作ax=123;

jmp指令

jmp指令叫做转移指令,可以用于设置CS、IP中的值(mov指令不能修改CS、IP中的值),例:jmp 2AE3:3,执行这个指令后,CS的值被修改为2AE3H,IP的值被修改为0003H,CPU将从2AE33H处读取指令。

8086CPU工作过程

(1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器

(2)IP指向下一条指令

(3)执行读取进指令缓冲器的指令

(4)重复上述三个步骤

好了,以上是小编给大家分享的汇编语言学习心得,希望对大家有所帮助!

相关文章

  • 汇编语言有关在屏幕区显示字符的四种方法(推荐)

    汇编语言有关在屏幕区显示字符的四种方法(推荐)

    这篇文章主要介绍了汇编语言有关在屏幕区显示字符的四种方法(推荐),每种方法给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 汇编语言loop命令的具体使用

    汇编语言loop命令的具体使用

    LOOP指令是根据ECX计数器循环,将语句块重复执行特定次数,本文主要介绍了汇编语言loop命令的具体使用,感兴趣的可以了解一下
    2024-03-03
  • DEBUG命令详解教程

    DEBUG命令详解教程

    DEBUG命令详解教程...
    2007-03-03
  • 汇编程序add指令的使用

    汇编程序add指令的使用

    add指令是CPU用来加法计算的汇编指令,本文主要介绍了汇编程序add指令的使用,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-03-03
  • ARM汇编判断之如何用汇编判断数组中正负数个数

    ARM汇编判断之如何用汇编判断数组中正负数个数

    这篇文章主要介绍了ARM汇编判断之如何用汇编判断数组中正负数个数,在汇编语言中程序的基本框架是不变的,这里我们可以直接把正向遍历的程序给贴过来,然后我们思考怎么运用判断后缀把数组中正数和负数分开,进行判断个数和分别求和,需要的朋友可以参考下
    2022-04-04
  • 汇编实现冒泡排序的方法示例

    汇编实现冒泡排序的方法示例

    这篇文章主要介绍了汇编实现冒泡排序的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 汇编语言 and和or逻辑运算指令的实现

    汇编语言 and和or逻辑运算指令的实现

    这篇文章主要介绍了汇编语言 and,or逻辑运算指令的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 汇编语言功能实现数据复制实例详解

    汇编语言功能实现数据复制实例详解

    这篇文章主要为大家介绍了汇编语言功能实现数据复制的实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • 汇编语言学习心得

    汇编语言学习心得

    汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。这篇文章主要介绍了汇编语言学习心得,需要的朋友可以参考下
    2020-01-01
  • 最好懂的汇编语言教程,解释CPU如何执行代码

    最好懂的汇编语言教程,解释CPU如何执行代码

    这篇文章主要介绍了最好懂的汇编语言教程,解释CPU如何执行代码。计算机真正能够理解的是低级语言,它专门用来控制硬件。汇编语言就是低级语言,直接描述/控制 CPU 的运行。如果你想了解 CPU 到底干了些什么,以及代码的运行步骤,就一定要学习汇编语言。
    2022-12-12

最新评论