微型计算机原理及应用61631.pptx

  1. 1、本文档共147页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第3章:寻址方式与指令系统;第三章:寻址方式与指令系统;9CH;3.1.2数字数据类型;3.2计算机指令格式;;3.2.2 80x86指令编码格式;OP:表示指令操作码,

D:表示指令中数据传送的方向。W:表示操作数类型。

2)寻址方式字节。它是指令的第二字节,规定操作数的寻址方式。是指令的可选字节,字节内容如下:;表3-1;3.3 8086CPU的寻址方式;内容回顾;专用地址寄存器;段寄存器

CS(Code Segment) 代码段寄存器

存放当前程序代码段的段地址(段基址),控制程序区。

DS(Data Segment) 数据段寄存器

存放当前数据段的段地址,控制数据区。

SS(Stack Segment) 堆栈段寄存器

存放当前堆栈段的段地址,控制堆栈区。

ES(Extra Segment) 附加段寄存器

存放当前附加段的段地址,控制数据区。;标志寄存器和指令指针

IP指令指针

16位寄存器,用来存放程序将要执行的下一条指令的地址偏移值,和CS一起形成了下一条指令的物理地址(CS:IP),类似于8位CPU中中的PC。

FLAGS标志寄存器(程序状态字寄存器PSW)

16位寄存器,用来存放8086CPU在工作过程中的运算结果中的状态标志位和微处理器操作的控制标志。;图3-6;2、寄存器寻址方式;3、存储器寻址;;(2)寄存器间接寻址;例如: MOV AX,[BX];(3)寄存器相对寻址

指令中的寄存器和偏移量给出操作数存放位置的有效地址。;;(4)基址加变址寻址方式;+1026;(5)相对的基址和变址寻址方式

指令中的两个寄存器和一个偏移量给出操作数存放位置的有效地址。物理地址=[DS]×10H+EA=[DS]×10H+;MOV AH,[BX+SI+2468H]

指令代码;题目1:已知当前BX=1200H,CS=1800H,IP=0500H,;4、I/O端口寻址;(l)直接端口寻址方式

端口地址的寻址范围是0-0FFH,端口地址直接由指令给出。举例:;(2)间接端口寻址方式

端口地址的寻址范围是0-0FFFFH,端口地址由DX寄存器给出。举例:;;;;图3-15;3.4 8086指令系统;3.4.1数据传送类指令;通用数据传送指令有以下五条;1.通用数据传送指令(1)最基本的传送指令

格式:MOV 目的操作数,源操作数

功能:把一个字节或字的源操作数送到目标操作数所在的单元。;注意:;立即数;指令辩误:;练习;(2)堆栈操作指令;SS;格式:PUSH 源操作数POP 目的操作数;注意:;(3??交换指令;2.累加器专用传送指令;举例:;(2)换码指令;;例:假设用户设计转换表TABLE如下图所示,;3.地址传送指令;格式:LDS/LES寄存器,源操作数

功能:把源操作数SRC指出的存储单元的4个存储单元取出,低地址的两字节送目的操作数,高地址的两字节送DS/ES段寄存器。;注意:

① 指令对标志无影响

② 源操作数必须是存储器寻址方式

③ 注意LEA与MOV的区别

④ LDS与LES;;4.标志传送指令(用于保存和恢复PSW)标志传送指令包括4条指令:;说明:;举例:;举例:

①欲将F中的进位标志和奇偶标志都设置为1,请写出指令序列。MOV AH,05H

SAHF

②欲将F的内容传送到AX中,请写出指令序列。PUSHF

POPAX;算术运算类指令一览表;算术运算类指令一览表 ( 续 );3.4.2 算术运算类指令;注意:;举例:;2.减法指令;注意:;3.乘法指令;AL;注意:

① 源操作数作为一个乘数,另一个AL或AX隐含给出。

② 存放结果隐含给出,AX或DX,AX。

③ 乘法运算指令MUL和IMUL在执行时,影响CF和OF,即乘积的高半部分不为0,则标志位位CF和OF均置为1,表示AH及DX中有乘积的有效数字,否则,CF、OF均置为0,但是AF PF SFZF是不确定的,因此这4标志位无意义。;4.除法指令;(2) 有符号数的除法指令;注意:

① 除法指令中,源操作数作为除数,被除数隐含给出。

② 除法运算后,6个状态标志不确定,无意义。

③ 除法运算的溢出问题,如源操作数除数是8位,则商在0—255

(-128—127),如源操作数除数是16位,则商在0—65535

(-32768—+32767),超出此范围,产生0号中断。

④ IDIV指令规定余数的符号和被除数的符号相同,如-51除以9,可以得到商为-5,余数为-6。;将字节扩展成字的指令格式:CBW

功能:将AL寄存器中的符号位扩展到AH中。即(AL)<80H,则(AH)=00H,否则(AH)=FFH

将字扩展成双字的指令格式:CWD

功能:用CWD指令将AX中的被除数扩展成双字。

即(AX)8000H,则(DX)=0000H,否

文档评论(0)

黄锦文 + 关注
实名认证
内容提供者

美女

1亿VIP精品文档

相关文档