网站大量收购独家精品文档,联系QQ:2885784924

[工学]5-指令系统.ppt

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

5.1 86系列汇编语言及指令的格式与寻址方式 5.2 传送类指令 5.3 数据操作类指令 5.4 串操作指令 5.5 控制类指令 习题 5.1.1 86系列汇编语言指令语句格式 标号是给该指令所在地址取的名字,必须后跟冒号“:”,它可以缺省,是可供选择的标识符。 标识符必须遵循下列规则: (4) 注释部分是可选项,允许缺省,如果带注释则必须用分号(;)开头,注释本身只用来对指令功能加以说明,给阅读程序带来方便,汇编程序不对它做任何处理。 例如: MOV AL,80H;将十六进制数80H送入AL MOV AX,1090H; 将1090H送AX,AH中为10H,AL中为90H 对16位操作数来说,寄存器可以为AX,BX,CX,DX,SI,DI,SP或者BP, 对8位操作数来说,寄存器可为AH,AL,BH,BL,CH,CL,DH,DL。 例如:  INC CX ;将CX的内容加1    ROL AH,1;将AH中的内容循环左移一位 采用寄存器寻址方式的指令在执行时,操作就在CPU内部进行,不需要使用总线周期,因此,执行速度快。 在一条指令中,可以对源操作数采用寄存器寻址方式,也可以对目的操作数采用寄存器寻址方式,还可以两者都用寄存器寻址方式。 如果要对其它段寄存器所指出的存储区进行直接寻址,则本条指令前必须用前缀指出段寄存器名。   例如:  CS:MOV BX,[3000H];将CS段的3000H和3001H两单元的内容送BX 设CS=5100H,则本指令在执行时,将54000H和54001H两单元的内容取出送BX。 和直接寻址的情况一样,如果指令前面没有用前缀指明具体的段寄存器,则寻址时默认的段寄存器通常为DS。 如寄存器为BP时,则对应的段寄存器为SS。 采用寄存器间接寻址时,允许在指令中指定一个位移量,这样,有效地址通过将一个寄存器的内容加上一个位移量来得到。位移量可以为8位,也可以为16位。 5.2 传送类指令 5.2.1 通用数据传送指令 包括: 基本传送指令MOV, 堆栈指令PUSH和POP, 数据交换指令XCHG。 MOV指令是形式最简单、用得最多的指令。 实现CPU内部寄存器之间的数据传送、 实现寄存器和内存之间的数据传送, 实现把一个立即数送给CPU的内部寄存器或者内存单元。 入栈指令 指令格式:PUSH 操作数: 功能:堆栈指示器SP自动减2;然后,将一个字以源操作数传送至栈顶。 堆栈中的内容是按后进先出的次序进行传送的,因此,保存内容和恢复内容时,要按照对称的次序执行一系列压入指令和弹出指令。 例如,在一段子程序中需要保护段寄存器DS和ES的内容,在子程序结束时,则要恢复相应的DS和ES内容, 程序如下: PUSH DS PUSH ES …… POP ES POP DS 例如: XCHG AL,BL;AL和BL之间进行字节交换   XCHG BX,CX;BX和CX之间进行字交换   XCHG [2530],CX;CX中的内容和2530,2531两单元的内容交换  XLAT是一条完成字节翻译功能的指令,称为换码指令。它可以使累加器中的一个值变换为内存表格中的某一个值,一般用来实现编码制的转换。 使用换码指令时,要求BX寄存器指向表的首地址,AL中为表中某一项与表格首地址之间的偏移量。 指令执行时,会将BX和AL中的值相加,把得到的值作为地址,然后将此地址所对应的单元中的值取到AL中去。 该表的最大容量为256字节。 (1) 将译码表定位到某个逻辑段的一片连续地址中,并将其表首址的偏移地址置入BX寄存器中。 (2) 将待翻译的十进制数字送入AL寄存器中。 (3) 执行XLAT指令。 5.2.2 地址传送指令 功能: 将存储器地址送到一个寄存器。 指令格式: 源操作数必须为内存单元地址,目的操作数必须为一个16位的通用寄存器。 这条指令常用来使一个寄存器作为地址指针。  将地址指针装到DS和另一个寄存器的指令 LDS指令的功能是把4个字节的地址指针(其中包括一个段地址和一个偏移量)传送到两个目的寄存器,其中,地址指针的后两个字节即段地址一定送到DS中。 比如,设2130H~2133H这4个单元中存放着一个地址,2130H和2131H中为地址的偏移量,2132H和2133H中为地址的段值,执行指令:  LDS DI,[2130H] 使2130H和2131H中的偏移量送到DI,2132H和2133H中的段值送到DS。 3. 将地址指针装到ES和另一个寄存器的指令 5.2.3 标志位传送指令 可完成标志位传送的指令共有4条:

文档评论(0)

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

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

1亿VIP精品文档

相关文档