微机原理与接口技术 第二版 作者 周明德 第3章 8086指令系统.pptVIP

微机原理与接口技术 第二版 作者 周明德 第3章 8086指令系统.ppt

  1. 1、本文档共129页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 8086指令系统 3.1 基本数据类型 3.1.1 字、双字的对齐 字、双字在内存中并不需要对齐至自然边界(字、双字的自然边界是偶数编号的地址)。 然而,为改进程序的性能,数据结构(特别是堆栈)只要可能,应对齐在自然边界上。 这样做的理由是:对于不对齐的存储访问,处理器要求做两次存储访问操作;而对于对齐的访问只要做一次存储访问操作。 3.1.2 数字数据类型 (1)无符号整数 它们的值的范围,对于字节是从0~255;对于字,从0~65535;对于双字,从0~232?1。 (2)符号整数 符号整数是保存在字节、字、双字中的带符号的二进制数。 负数的符号位为1,正数的符号位为0。 整数值的范围,对于字节,从?128~+127;对于字从?32?768~+32?767;对于双字,从?231~+231??1。 3.1.3 指针数据类型 3.1.4 串数据类型 串是位、字节、字或双字的连续序列。 3.2 8086的指令格式 指令有以下格式: label(标号):mnemonic(助记符) argument1(参数1),argument2(参数2),argument3(参数3) 其中标号是一标识符后面跟有冒号(:)。 助记符是一类具有相同功能的指令操作码的保留名。 操作数参数1、参数2和参数3是任选的。 3.3 8086指令的操作数寻址方式 8086机器指令有零个或多个操作数。某些操作数是显式规定的,有的是指令中隐含的。 一个操作数能定位在以下之一中: 指令自身中(立即数) 寄存器 存储单元 I/O端口 3.3.1 立即数 3.3.2 寄存器操作数 源和目的操作数能在以下寄存器中,取决于正在执行的指令: 16位通用寄存器(AX、BX、CX、DX、SI、DI、SP或BP); 8位通用寄存器(AH、BH、CH、DH、AL、BL、CL或DL); 段寄存器(CS、DS、SS、ES、FS和GS); FLAGS寄存器。 3.3.3 存储器操作数 1.规定段选择子 MOV ES:[BX], AX; 以下的默认段选择,不能被超越: 必须从代码段取指令; 在串操作中的目的串必须存储在由ES寄存器指向的数据段; 推入和弹出操作必须总是引用SS段。 2.规定偏移量 内存地址的偏移量部分或者直接作为一个静态值(称为位移量)规定或者由以下一个或多个成员通过计算得到地址: 位移量——一个8位或16位值; 基地址——在通用寄存器中的值; 索引——在通用寄存器中的值。 作为基地址或索引的通用寄存器限制如下: SP寄存器不能用作索引寄存器; 当SP或BP寄存器用作为基地址,SS段是默认的段。 (1)位移量 (2)基地址 (3)基地址?+?位移量 (4) 索引(变址)+位移量 (5)基地址+索引+位移量 3.汇编程序和编译器寻址方式 在机器码级,所选择的位移量、基寄存器、索引寄存器和比例系数是在指令中编码的。 汇编程序允许程序员用这些寻址成员的任何允许的组合以寻址操作数。 高级语言编译程序根据程序员定义的语言结构选择这些成员的适当组合。 3.3.4 I/O端口寻址 x86处理器支持多至包含65536个8位I/O端口的I/O地址空间。 3.4 8086的通用指令 3.4.1 数据传送指令 1.MOV指令 MOV DOPD, SOPD 2.交换指令 此指令的格式为:XCHG DOPD, SOPD 3.堆栈操作指令 (1)入栈指令 PUSH DOPD PUSH AX PUSH BX PUSH r W SP?=?SP?2, (SP)?=?r PUSH seg W SP?=?SP?2, (SP)?=?seg PUSH src W SP?=?SP?2, (SP)?=?src (2)出栈指令 POP DOPD POP r W r?=?(SP), SP?=?SP+2 POP seg W seg?=?(SP), SP?=?SP+2 POP dst W dst?=?(SP), SP?=?SP+2 (3)PUSHA推入通用寄存器至堆栈 PUSHA(Push All)将所有的16位(即8086)的通用寄存器推至堆栈。 Temp ←(S

您可能关注的文档

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档