迷茫期总结

原因:
写这一个的原因是因为看了逆向感觉自己对汇编还是不是很理解欸
那我边看那本边回顾吧

汇编语言的组成

1、汇编指令:机器码的助记符,有对应的机器码。(核心)
2、伪指令:没有对于的机器码,由编译器执行。
3、其他符号:如 +、-、*、/等,由编译器识别,没有对应机器码。

CPU与寄存器

cpu是计算机的核心部件,它控制整个计算机的运作并进行运算,想让一个cpu工作,就必须给它提供指令数据,指令和数据在存储器中存放,也就是内存。存储器会被分成若干个存储单元,每个存储单元从0开始编号。1个存储单元可以存放一个byte,也就是8个二进制位。

cpu通过地址总线来指定存储单元,可见地址总线能传说多少个不同的信息,cpu就能对多少个存储单元进行寻址。

cpu与内存或其他器件之间的数据传送是通过数据总线来进行的,数据总线的宽度决定了cpu和外界的数据传送速度

cpu对外部器件的控制是通过控制总线来进行的,在这里控制总线是一个总称,控制总线是一些不同控制线的集合,有多少根控制总线,就意味着cpu提供了对外部器件的多少种控制,所以控制总线决定了cpu对外部器件的控制能力。

寄存器

对于一个汇编语言程序员来说,cpu中的主要部件是寄存器,寄存器是cpu中程序员可以用指令读写的部件,程序员通过改变各种寄存器中的内容来实现对cpu的控制。不同的cpu,寄存器的个数,结构是不同的。
8086cpu有14个寄存器,每个寄存器有一个名称,这些寄存器是:AX,BX,CX,DX,SP,BP,SI,DI,IP,PSW,CS,DS,SS,ES。

通用寄存器:

数据寄存器

AX (Accumulator):累加寄存器,也称之为累加器;

BX (Base):基地址寄存器;

CX (Count):计数器寄存器;

DX (Data):数据寄存器;

指针寄存器:

SP (Stack Pointer):堆栈指针寄存器;

BP (Base Pointer):基指针寄存器;

变址寄存器:

SI (Source Index):源变址寄存器;

DI (Destination Index):目的变址寄存器;

控制寄存器:

IP (Instruction Pointer):指令指针寄存器;

FLAG:标志寄存器;

段寄存器:

CS (Code Segment):代码段寄存器;

DS (Data Segment):数据段寄存器;

SS (Stack Segment):堆栈段寄存器;

ES (Extra Segment):附加段寄存器;

小总结

数据寄存器有 AX,BX,CX,DX 四个组成,

由于在 8086 之前的 CPU 为 8 位 CPU,所以为了兼容以前的 8 位程序,

在 8086 CPU 中,每一个数据寄存器都可以当做两个单独的寄存器来使用,

由此,每一个 16 位寄存器就可以当做 2 个独立的 8 位寄存器来使用了。

AX 寄存器可以分为两个独立的 8 位的 AH 和 AL 寄存器;

BX 寄存器可以分为两个独立的 8 位的 BH 和 BL 寄存器;

CX 寄存器可以分为两个独立的 8 位的 CH 和 CL 寄存器;

DX 寄存器可以分为两个独立的 8 位的 DH 和 DL 寄存器;

除了上面 4 个数据寄存器以外,其他寄存器均不可以分为两个独立的 8 位寄存器;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值