- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言指令集iqfh2g8o
寄存器以及寻址方式
汇编语言中涉及的寄存器
通用寄存器
AX,BX,CX,DX主要用作数据寄存器。
AX:一个16位的寄存器,做累加器使用,是算术运算中的主要寄存器,
乘法指令中用来存放操作数。而且所有的I/O指令都使用AX或者AL与外部传送信息。
为了方便使用将AX分为了 AH AL
BX:在计算存储器地址的时候,用作基址寄存器使用。
分为了 BH BL
CX:用来保存计数值,如在移位指令中,循环指令以及串处理指令中用做隐含的计数器。
分为了 CH CL
DX:在做双字长运算的时候,将DX和AX组合在一起存放一个双字节数,DX存放高16位。
此外在某些I/O操作中,DX还用来存放I/O的端口地址。
SP,BP,SI,DI四个16位的通用寄存器除了可以象数据寄存器一样在运算过程中存放数据外(只能以字-16为单位使用)
其主要的用途还是在存储器寻址的时候,提供偏移地址。因此它们也称为指针或者变址寄存器。
SP 堆栈指针寄存器,用来指出栈顶的偏移地址。
BP 基址指针寄存器,在寻址时候用作基地址寄存器使用,但是它必须用堆栈段寄存器SS一起来确定堆栈中的存储单元地址。
SI 源变址寄存器,在串处理指令中,SI用作因为的源变址寄存器和数据段寄存器DS一起使用,以确定数据段中的存储单元地址,
同时具有自动增量和自动减量的变址功能。
DI 目的变址寄存器,在串处理指令中,DI与附加段寄存器ES一起使用,已达到在附加段中寻址的目的,然后DI自动增量或者减量。
专用寄存器
8086中包含了3个16为的专用寄存器:IP,SP,FLAGS
IP 指令指针寄存器,用来存放将要执行的下一条指令地址的偏移量,它与代码段寄存器CS一起确定代码段中指令的地址。
在计算机系统中,控制程序的执行流程是通过控制IP的值来实现的。
SP 堆栈指针寄存器,与堆栈段寄存器SS联合确定堆栈中栈顶的地址,SP用来存放栈顶的偏移地址。
FLAGS 标志寄存器,这是一个存放条件码标志,控制标志的16的寄存器。
标志寄存器的主要用途体现在操作数的运算过程中:
条件码标志 用来记录程序中运行结果的状态信息,它们是根据有关指令的运行结果由CPU自动设置的。由于这些状态信息往往作为后 续条件转移指令的转移控制条件,所以称为条件码。
CF 进位标志,记录运算时最高有效位产生的有效值。
SF 符号标志,记录运算结果的符号,负数为1,其他置0。
ZF 零标志 ,记录运算结果是否为零,为零置1,否则置0。
OF 溢出标志,运算过程操作结果超出了机器可标识的范围产生溢出,溢出置1,否则置0。
AF 辅助进位标志,记录运算时第3位(半个字节)产生的进位。
PF 奇偶标志,为机器传送信息的过程中可能产生的代码错误情况提供检验条件,结果中1个数为偶数置1,否则置0。
控制标志码
DF 方向标志,在串指令中控制处理信息的方向,DF=1时候,控制从高位-低位方向处理,DF=0,控制从低位-高位处理。
TF 陷阱标志,用于调试时的单步方式操作,TF=1时候,每条指令执行后产生一个陷阱,由系统控制计算机,DF=0,CPU正常工作。
IF 中断标志,用于控制可屏蔽硬件中断,当IF=1允许8086响应中断请求,否则关闭中断。
段寄存器
8086微处理器中有4个段寄存器,在寻址内存单元时候,用它们直接或者间接存放段地址。
CS 代码段寄存器 存放当前执行的程序的段地址
DS 数据段寄存器 存放当前执行的程序所用的操作数的段地址。
SS 堆栈段寄存器 存放当前执行的程序所用的堆栈的段地址。
ES 附加段寄存器 存放当前执行程序中一个辅助数据段的段地址。
段寄存器和与其对应存放偏移地址的寄存器之间的组合关系
段寄存器 偏移地址寄存器
CS IP
SS SP或BP
DS BX、DI、SI
ES DI(用于串指令)
8086的寻址方式
a.立即寻址方式
操作数直接存放在指令中,紧跟在操作码之后,它作为指令的一部分存放在代码段中,这种操作数被称为立即数。
立即寻址方式一般用于给寄存器赋初值,并且只能用于源操作数字段而不能用于目的操作数字段。
例如:MOV AL,9 指令执行后(AL)=09H,在这里9被称为立即数,注意立即寻址方式中不能对段寄存器和标志寄存
文档评论(0)