美文网首页
iOS安全攻防----汇编进阶(总线/寄存器/字与字节)

iOS安全攻防----汇编进阶(总线/寄存器/字与字节)

作者: 朝阳小公举 | 来源:发表于2017-07-11 16:30 被阅读0次

总线

每一个CPU芯片都有许多管脚,这些管脚和总线相连,CPU通过总线跟外部器件进行交互

总线:一根根导线的集合

总线的分类:地址总线、数据总线、控制总线

地址总线

它的宽度决定了CPU的寻址能力

8086的地址总线宽度是20,所以寻址能力是1M( 2^20 )

数据总线

它的宽度决定了CPU的单次数据传送量,也就是数据传送速度

8086的数据总线宽度是16,所以单次最大传递2个字节的数据

控制总线

它的宽度决定了CPU对其他器件的控制能力、能有多少种控制

必须记住

1K( 2^10 )1M( 2^20 )1G( 2^30 )

1字节(Byte/B)=8位(Bit)

小练习

一个CPU 的寻址能力为8KB,那么它的地址总线的宽度为____

思路:从KB可知从10条线开始(1K=2^10 ),8K=1K*2^3.

8080,8088,80286,80386 的地址总线宽度分别为16根,20根,24根,32根.那么他们的寻址能力分别为多少____KB, ____MB,____MB,____GB?

8080,8088,8086,80286,80386 的数据总线宽度分别为8根,8根,16根,16根,32根.那么它们一次可以传输的数据为:____B,____B,____B,____B,____B,

从内存中读取1024字节的数据,8086至少要读____次,80386至少要读取____次.

内存

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

内存地址空间的大小受CPU地址总线宽度的限制。8086的地址总线宽度为20,可以定位2^20个不同的内存单元(内存地址范围0x00000~0xFFFFF),所以8086的内存空间大小为1MB

0x00000~0x9FFFF:主存储器。可读可写

0xA0000~0xBFFFF:向显存中写入数据,这些数据会被显卡输出到显示器。可读可写

0xC0000~0xFFFFF:存储各种硬件\系统信息。只读

寄存器

内部部件之间由总线连接

CPU的典型构成

对程序员来说,CPU中最主要部件是寄存器,可以通过改变寄存器的内容来实现对CPU的控制

不同的CPU,寄存器的个数、结构是不相同的(8086是16位结构的CPU)

8086有14个寄存器,都是16位的寄存器,可以存放2个字节

8086内部寄存器

通用寄存器

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个字节分别称为字的高字节和低字节

比如数据20000(4E20H,0100111000100000B),高字节的值是78,低字节的值是32

1个字可以存在1个16位寄存器中,这个字的高字节、低字节分别存储在这个寄存器的高8位寄存器、低8位寄存器中。

相关文章

  • iOS安全攻防----汇编进阶(总线/寄存器/字与字节)

    总线 每一个CPU芯片都有许多管脚,这些管脚和总线相连,CPU通过总线跟外部器件进行交互 总线:一根根导线的集合 ...

  • 有关汇编相关参考博客

    汇编之常识(一)汇编基础 CPU等硬件结构 数据总线 地址总线 控制总线 汇编之寄存器(二)寄存器 数据地址寄存器...

  • 逆向 - init

    book 汇编语言 LLVM CookBook 密码学 攻防实战 OS X 与 iOS 内核 iOS 应用安全 黑...

  • iOS安全攻防

    iOS安全攻防 iOS安全攻防

  • iOS 逆向

    iOS安全攻防了解iOS 逆向, 需要了解汇编的知识Hook 钩子, 勾住某个方法, 从而修改方法的实现 逆向简介...

  • ARM64 学习

    iOS汇编 真机 arm64汇编,GNU 模拟器 x86, AT&T 汇编 寄存器 指令 堆栈 通用寄存器 64b...

  • ios安全攻防之汇编

    越底层越单纯!真正的程序员都需要了解的一门非常重要的语言,汇编! 机器语言 我们所写的语言最终安装在机器上的是什么...

  • iOS安全攻防----汇编初识

    汇编语言(assembly language):使用符号代替机器语言,也称为符号语言,如:mov ax,bx。 平...

  • 2018-07-11

    汇编的学习 cpu工作的原理cpu由总线调用位置寄存器中存储的内存的位置,并读取内存,识别内存中的代码与数据,执行...

  • iOS安全攻防

    参考iOS安全攻防(二十三):Objective-C代码混淆代码混淆 md5 + base64[ios]安全攻防之...

网友评论

      本文标题:iOS安全攻防----汇编进阶(总线/寄存器/字与字节)

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