9.3协处理器指令系统及应用.ppt

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

* 第9章 数学协处理器 9.3 协处理器指令系统及应用 9.3.1 指令句法 大多数指令(包括那些用于控制协处理器的)都有一个或两个参量作为输入,并且产生一到两个结果作为输出。 输入可以从寄存器栈或是存储器中获取, 但是当输入是从寄存器栈中取得, 那么NPX的操作是非常有效的。 有些指令操作隐式要求浮点栈顶元素(ST), 既可以是单独的也可能是与另一操作数的组合。 其他指令允许或要求程序员指定操作数。 同处理器指令一样,指令的参数指定(隐式的和显式的)一个源操作数和一个目的操作数。源操作数提供一个操作的输入而目的操作数接收结果, 目的操作数也可提供另一个输入。例如,处理器指令ADD AX,CX实现的功能是AX=AX+CX。在此情况下,CX寄存器是源而AX寄存器是目的。AX和CX都提供输入而AX接收操作的结果。 浮点指令句法并不那么直截了当。相同的基本助记符具有不同的解释,这取决于是使用了传统栈还是常规的指令操作数方式。 使用传统栈形式时,均采用隐式寻址,若有两个操作数,通常指的就是栈顶单元(作为源操作数)和栈顶的下一个单元ST(1)(作为目的操作数);若仅使用一个操作数, 则指的就是栈顶单元。 常规指令形式采用显式寻址。 句法上的差别由汇编器和调试器来决定指令形式。例如, FMUL指令可写成无操作数、只有一个操作数, 或是一个源和一个目的操作数。 如下面所示,每一条指令执行的操作不同: FMUL ; ST(1)=ST(1)*ST, FPOP FMUL ST(1) ; ST(1)=ST(1)*ST FMUL ST, ST(1) ; ST=ST*ST(1) 无显式操作数的指令FMUL的编码,等同于全部指定操作数的指令FMULP ST(1), ST。汇编器根据指令的形式来确定指令的操作码变量。 9.3.2 指令简介 1. 数据传送 表9.5 NPX数据传送类指令 2. 算术运算 表9.6 NPX算术指令 表9.6 NPX算术指令 表9.7 基本算术指令形式 3. 比较运算 表9.8 NPX比较指令 表9.9 比较指令所置的条件码 4. 常数加载 表9.10 NPX加载常数指令 5. 超越指令 表9.11 NPX超越指令 表9.12 用于导出高级函数的恒等式 续表 6. 协处理器控制指令 表9.13 NPX控制指令 续表 9.3.3 协处理器指令应用举例 例9.1 数据求和。 程序功能:将存储器中的十个数(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0)相加,结果放入存储器指定单元之中。 程序清单: STACK SEGMENT PARA STACK ‘STACK’ DW 200H DUP (0) STACK ENDS DATA SEGMENT PARA PUBLIC ‘DATA’ ARRAY DD 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0 ; 10个原始数据放在数组ARRAY中。 N DW 10D ; 数据长度。 DSUM DD ? ; 求和结果单元。 DATA ENDS CODE SEGMENT PARA PUBLIC ‘CODE’ CACULATE PROC FAR ASSUME CS: CODE, DS: DATA, SS: STACK, ES: NOTHING MOV AX, DATA MOV DS, AX MOV AX, STACK MOV SS, AX MOV CX, N FINIT ; 初始化协处理器。 FLDZ ; 加载+0.0到栈顶寄存器ST中, 作为累加初值。 START:MOV SI, CX ; 计算当前加数的地址偏移量。 DEC SI SHL SI, 1 ; SI=SI*4, 因为原始数据是双字长度。 SHL SI, 1 FADD ARRAY[SI] ; 将当前加数加到ST, ST中是每步累加结果。

文档评论(0)

youbika + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档