汇编语言初学

汇编语言

汇编也是一门编程语言,与Java,C++,python等高级语言无异,只不过汇编更加接近硬件,代码执行效率高。

代码执行效率:二进制>汇编>C>java

所有编程语言都有相应语法,汇编也不例外,语法是人定的,只是一套公共协议,目的是方便程序员进行程序开发。

常见的CPU架构:

  • X86架构:PC端主流 高性能高功耗
  • ARM架构:移动端主流 体积小低功耗
  • MIPS架构:龙芯3号 国产CPU

架构:一套规则

架构不等同于硬件

不同架构使用的指令集不一样,X86使用了CISC复杂指令集,ARM采用了RISC精简指令集。

寄存器

寄存器可以理解为是寄生在CPU上存放数据的容器。在计算机中,用于存放数据的容器有很多,比如内存条,硬盘等等。

寄存器是汇编语言的基石

寄存器的不同之处:

  • 寄存器靠近CPU,读写数据速度远大于内存。
  • 进行数据的临时储存。

缓存

寄存器和缓存是两个概念,由于CPU执行速度太快,而内存读写数据远远跟不上,这时需要借助缓存进行数据缓冲,相当于是寄存器和内存之间的中间桥梁,这样CPU在执行指令的时候能够有源源不断的数据供给。

寄存器的分类

在高级语言中,如果要对两个变量进行交换,我们通常的做法是使用一个temp临时变量,比如:

int a=1;

int b=1;

int temp;

//数据交换

temp=a;

a=b;

b=temp;

寄存器是一个存储容器,也可以通俗理解为是一个变量,那么CPU再进行数据交换时明显一个寄存器是不够的,在8086CPU中,通用寄存器有好几个,比如ax,bx,cx,dx 这些名称是固定的,CPU的不同名称也各不相同。每种CPU都有相应的通用寄存器,寄存器数量越多,运算效率越高。

  • 通用寄存器(通用):用于存放临时数据,可以简单理解为高级语言中的临时变量。
  • 段寄存器(特有):内存分段管理,X86架构中分为数据段,代码段和栈段,ARM架构中没有段寄存器。
  • 浮点寄存器(特有):专用于浮点数的运算。
  • 向量寄存器(特有):专用于向量运算。
  • 标志寄存器
  • 状态寄存器
  • …………

通用寄存器的命名

  • 在X86架构中,一共有四个通用寄存器,以16位X86为例,分别取名为ax,bx,cx,dx,最大只能装16位的数据。
  • 在ARM架构中,一共有31个通用寄存器,以64位ARM为例,从x0到x30.
  • 在MIPS架构中,一共有32个通用寄存器,从$0到$31.

在X86架构中,不同精度CPU通用寄存器名称有所区分:

 

e是扩展的意思,在386以前,CPU的寄存器的16位的,用AX,BX表示。

386及以后的CPU,他们的寄存器是32位的,所以就用多一个e来表示。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值