汇编基础(一)

2018-06-28  本文已影响0人  hfzhangzhang

语言的发展

机器语言: 由0和1组成的机器指令. 如:0101 0001 1101 0110
汇编语言(assembly language): 使用符号代替机器语言,也称为符号语言,如:mov ax,bx
高级语言: C\C++\Java\OC\Swift,更加接近人类的自然语言 如:int a = b;

我们的代码在终端设备上是这样的过程:

汇编.png
  • 汇编语言机器语言一一对应,每一条机器指令都有与之对应的汇编指令
  • 汇编语言可以通过编译得到机器语言机器语言可以通过反汇编得到汇编语言
  • 高级语言可以通过编译得到汇编语言 \ 机器语言,但汇编语言\机器语言几乎不可能还原成高级语言

汇编语言的特点

汇编的用途

越底层越单纯!真正的程序员都需要了解的一门非常重要的语言,汇编!

汇编语言的种类

架构 设备
armv6 iPhone, iPhone2, iPhone3G, 第一代、第二代 iPod Touch
armv7 iPhone3GS, iPhone4, iPhone4S,iPad, iPad2, iPad3(The New iPad), iPad mini, iPod Touch 3G, iPod Touch4
armv7s iPhone5, iPhone5C, iPad4(iPad with Retina Display)
arm64 iPhone6s , iphone6s plus,iPhone6, iPhone6 plus,iPhone5S ,iPad Air, iPad mini2

几个必要的常识

APP/程序的执行过程.png

总线

CPU

举个例子

8088的数据总线宽度是8,8086的数据总线宽度是16,分别向内存中写入89D8H如下图:注意:这里是16进制,后方的H是单词Hexadecimal的意思

做个小练习

内存

各类存储区的逻辑连接 各类存储器的逻辑连接-物理地址对应图 各类存储器的物理地址情况

寄存器

内部部件之间由总线连接

CPU的典型构成

通用寄存器

AX、BX、CX、DX这4个寄存器通常用来存放一般性的数据,称为通用寄存器(有时也有特定用途),通常,CPU会先将内存中的数据存储到通用寄存器中,然后再对通用寄存器中的数据进行运算

假设内存中有块红色内存空间的值是3,现在想把它的值加1,并将结果存储到蓝色内存空间

    *   CPU首先会将红色内存空间的值放到AX寄存器中:mov ax,红色内存空间
    *   然后让AX寄存器与1相加:add ax,1
    *   最后将值赋值给内存空间:mov 蓝色内存空间,ax

AX、BX、CX、DX这4个通用寄存器都是16位的,上一代8086的寄存器都是8位的,为了保证兼容, AX、BX、CX、DX都可分为2个独立的8位寄存器来使用
* H代表高位寄存器
* L代表低位寄存器

字和字节

在汇编的数据存储中,有2个比较常用的单位
字节:byte,1个字节由8bit组成,可以存储在8位寄存器中
:word,1个字由2个字节组成,这2个字节分别称为字的高字节和低字节

上一篇 下一篇

猜你喜欢

热点阅读