汇编基础知识(二)



一、通用寄存器

寄存器AX、BX、CX、DX是8086CPU中的四个通用寄存器,主要用来存放一般性的数据。一个寄存器可以存放16bit。所以被称为16位寄存器。
因为8086CPU寄存器是16位结构,所以一个寄存器可以存放两个字节,同时为了兼容性,这四个寄存器中每一个寄存器也可以单独分为两个独立的寄存器。即AX=AH(高八位)+AL(低八位)。

这四个数据寄存器除了作为通用寄存器使用外,还有各自的特殊功能:
AX(Accumulate) 寄存器称为累加器,常用于存放算术、逻辑运算中的操作数或结果。另外,所有的I/O指令都要使用累加器与外设接口传递数据。
BX(base) 寄存器称为基址寄存器,常用来存放访问内存时的地址。
CX(count) 寄存器称为计数寄存器,在循环、串操作指令中用作计数器。
DX(data) 寄存器称为数据寄存器,在寄存器间接寻址中的I/O指令中存放I/O端口的地址。
此外,在做双字长乘除法运算时,DX 与AX合起来存放一个双字长数(32位),其中DX存放高16位,AX存放低16位。

索引暂存器:SI、DI
SI:来源索引暂存器,DI:目的索引暂存器

堆叠、基底暂存器:SP、BP
SP:堆叠指标暂存器,BP:基底指标暂存器

二、32位寄存器

EAX、ECX、EDX、EBX:是AX,BX,CX,DX的延伸,各为32位
ESI、EDI、ESP、EBP:是SI,DI,SP,BP的延伸,32位
EAX 是"累加器"(accumulator), 它是很多加法乘法指令的缺省寄存器。

EBX 是"基地址"(base)寄存器, 在内存寻址时存放基地址。

ECX 是计数器(counter), 是重复(REP)前缀指令和LOOP指令的内定计数器。

EDX 则总是被用来放整数除法产生的余数。

ESI/EDI分别叫做"源/目标索引寄存器"(source/destination index),因为在很多字符串操作指令中, ESI指向源串,而EDI指向目标串.

EBP是"基址指针"(BASE POINTER), 它最经常被用作高级语言函数调用的"框架指针"(frame pointer).
ESP 专门用作堆栈指针,被形象地称为栈顶指针,堆栈的顶部是地址小的区域,压入堆栈的数据越多,ESP也就越来越小。在32位平台上,ESP每次减少4字节。

参考博客

【1】https://blog.csdn.net/m0_56699208/article/details/121938517
【2】https://www.cnblogs.com/qq78292959/archive/2012/07/20/2600865.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值