Assembly-(一)

今天来系统的学习汇编(Assembly)

这对一位逆向工程师和二进制安全工程师是必要的一步 也是不可或缺的一步 本专栏基于王爽老师的汇编语言教材进行

1.1 汇编语言的产生

汇编语言是这样来进行的
程序员 的代码 编写汇编指令后经过编译器后 被翻译成为机器码 然后计算机进行识别

1.2 汇编语言的组成

  • 汇编指令:机器码的助记符,有对应的机器码
  • 伪指令:没有对应的机器码,由编译器执行,计算机并不执行
  • 其他符号:如"+-*/"
    当然其核心为 汇编指令
    指令和数据都在存储器中存放
    对于指令和数据 说白了就是不同的表现形式
    例如:
1000100111011000 -> 89D8H 此时表现为数据

1000100111011000 -> mov ax,bx 此时表现为指令

1.3存储单元

存储器被分为若干个单元,每个存储单元从0开始编号,假如说 一个存储器为128个存储单元 编号从0-127
如图所示
在这里插入图片描述

电子计算机的最小信息单位为比特 一个字节有8个bit(比特)

以微型计算机为例,每个单位可以存储1个Byte(字节)
也就是8个比特
所以这里的内存空间可以存 128个字节

1.3.1常用的单位换算

  • 1KB=1024B
  • 1MB=1024KB
  • 1GB=1024MB
  • 1TB=1024GB

1.4CPU读取数据的过程

在这里插入图片描述
如图所示
当CPU想要读取内存中第三块的内容的时候

  1. CPU先使用地址线将地址信息3发出
  2. CPU通过控制线发出内存读命令,读取第3块内存里的内容
  3. 存储器将第3块内存里的内容11通过数据线发送至CPU6
    由于笔者的目的是为了更好的理解逆向中的寄存器等知识,所以这里对于计算机组成原理的部分不过与详细介绍了(地址线、数据线、控制线)
    (地址数量=2^地址线数)
    (数据量=数据线根数位 如 8根为 8位 典型的8088 CPU 16根为16位 8086cpu 分别为 1Byte 和 2Byte)

下一篇章将介绍学习寄存器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值