目前时间:


8
当前位置:自考无忧网 >> 笔记串讲 >> 工学类笔记串讲 >> 2012武汉大学自考计算机等级考试三级PC技术第二章要点(11)
9
   

2012武汉大学自考计算机等级考试三级PC技术第二章要点(11)

日期: 2012-03-13|已阅读: |来源:www.zikao51.com|作者:自考无忧网|打印

(4)除法指令
  ①DIV
  格式: DIV OPRD
  功能:无符号除法指令。用指定的源操作数OPRD去除累加器中的值,所得商和余数分别放在AL和AH(字节操作)或AX和DX(字操作)中。
  ②其他除法指令
  ●IDIV: 完成带符号数的除法运算。
  ●AAD: 完成AX中的两位未组合的十进制数在两个数相除之前进行核正。
  ●CBW: 字节转换为字。具体操作是按AL的符号位扩展到整个AH中。
  ●CMD: 字转换为双字。按AX的符号扩展到整个DX中。
  3.逻辑运算和移位指令(武汉自考)
  (1)逻辑运算指令①NOT
  格式: NOT OPRD
  功能:完成对操作数求反,然后送回原处。说明:此指令对标志位无影响。
  ②AND
  格式: AND OPRD1,OPRD2
  功能:对两操作数进行按位逻辑“与”运算,结果送目的操作数。目的操作数可为通用寄存器、存储器,源操作数可以是立即数、寄存器、存储器。
  ③OR
  格式: OR OPRD1, OPRD2
  功能:对两操作数进行按位“或”运算,结果回送目的操作数。操作数规定与AND相同。
  说明:“或”运算令标志位CF=0,OF=0,其“或”操作后的结果反映在标志位PF、SF和ZF上。
  ④XOR
  格式: XOR OPRD1,OPRD2
  功能:对两个操作数进行按位“异或”运算,结果回送目的操作数。
  说明:XOR执行后,标志位CF=0,OF=0,“异或”操作结果反映在标志位PF、SF和ZF上。
  ⑤TEST
  格式: TEST OPRD1,OPRD2
  功能:TEST指令的操作与AND指令完全相同,但结果不送目的操作数,仅反映在状态标志位上,TEST指令的操作数规定与AND相同,对标志位的影响亦与AND相同,即:CF=0,OF=0,结果反映在标志位PF、SF和ZF上。 (2)移位指令
  移位指令可将寄存器或存储单元的8位或16位的内容向左或向右移动1位或多位。
  ①SAL/SHL
  格式: SAL/SHL OPRD m
  功能:SAL(算述左移)和SHL(逻辑左移)指令将操作数OPRD左移m位,移位后空出的位填零。操作数可以是寄存器、存储器。m是移位次数,为1时取立即数,大于1时先将m赋予CL寄存器。
  ②SAR
  格式: SAR OPRD m
  功能:算术右移指令。将指定操作数右移m位,最低位进入标志位CF,其他位依次右移,但符号位(最高位)保持不变。m的规定与SHL相同。③SHR
  格式: SHR OPRD m
  功能:逻辑右移指令。与SAR类拟,最低位进入标志位CF,但移位后空位的最高位填0。
  (3)循环移位指令
  8086/8088有四条循环移位指令,它们是:
  ●ROL OPRD M ;左循环移位
  ●ROR OPRD M ;右循环移位
  ●RCL OPRD M ;带进位的左循环移位
  ●RCR OPRD M ;带进位的右循环移位
  4.串操作指令
  串可以是字节串(一组字节)或字串(一组字)。串指令有两类,每类有5种。一类是串操作命令,一类是控制操作重复执行的前缀命令。串操作时,下列寄存器及标志起着特定的作用,程序应根据操作的具体要求先赋予初值。SI寄存器 源串变址用DI寄存器 目的串变址用CX寄存器 重复次数寄存器AL/AX 扫描值(关键字)FLAGS中标志位:
  DF 0表示重复操作中DI、SI应自动增量,1表示自动减量。 ZF 用于控制扫描或比较操作结果。
  (1)基本串操作命令
  ①MOVS
  格式: MOVS OPRD1,OPRD2
  功能:将由SI作为偏移地址的源串中的一个字节或字,传送到由DI作为偏移地址的目的串,且相应修改偏移地址,以指向串中下一个元素。传送完一个字节或字后,则依据控制标志位DF和源、目的操作数的属性,修改偏移地址。在使用MOVS指令之前,必须将源、目的操作数的偏移地址分别送SI、DI,并设置DF。
  ②MOVSB/MOVSW
  字节串/字串传送命令,不带操作数,地址修改MOVSB命令以±1形式修改偏移地址,MOVSW以±2形式修改偏移地址。其余与MOVS相同。 ③CMPS
  格式: CMPS OPRD1,OPRD2
  功能:字节串或字串比较。从由SI作为偏移地址的源串中减去由DI为偏移地址的目标串(字或字节),减的结果不送至任何操作数,仅反映到标志位上。同时修改源、目的串的偏移地址,以指向串中的下一个元素。标志位AF、CF、OF、PF、SF和ZF反映两串元素之间的关系。
  ④CMPSB/CMPSW
  字节串/字串比较,无操作数。
  ⑤LODS OPRD
  读出字节串或字串。从由SI为偏移地址的源串中读出一个字节或一个字送AL或AX,同时修改偏移地址,指向串的下一个元素。此指令对标志位无影响。
  ⑥LODSB/LODSW
  字节或字操作,无操作数。
  ⑦SCAS
  格式: SCAS OPRD
  功能:搜索(扫描)串元素命令。从AL(字节操作)或AX的内容中减去由DI作为偏移地址的目标串元素。结果不改变累加器的值,只改变标志位。利用SCAS指令可以进行搜索,此时将搜索关键字放在AL(字节)或AX(字)中,用于查找字符串中有无此关键字,记下查找次数。
  ⑧SCASB/SCASW
  搜索串中字节或字元素,无操作数。
  ⑨STOS
  格式:STOS OPRD
  功能:存储字节或字串的指令。将AL(字节)或AX(字)中内容,存储到以DI为偏移地址的目的串中,同时修改偏移地址,指向串的下一个元素。
  ⑩STOSB/STOSW
  存储字节串/字串,无操作数。
  (2)重复前缀
  ①REP
  可作为串传送、串比较、串存储、串搜索指令的前缀。最常用的是串传送指令,使用时数据长度必须放在CX中。
  ②REPE/REPZ
  用于串传送、串搜索指令的前缀,使紧随其后的指令重复执行,直到CX=0或ZF=0为止。
  ③REPNE/REPNZ
  用于串比较或串搜索指令的前缀,使其重复执行直到XC=1或ZF=1为止。 5.程序控制指令
  8086/8088程序中指令的执行顺序是由代码寄存器CS和指针IP来决定的。程序转移指令用来改变这两个寄存器的内容,从而改变程序的执行顺序。转移指令分四组;无条件转移指令、条件转移指令、循环控制指令及有关中断指令。
  (1)无条件转移指令
  ①JMP
  格式: JMP OPRD(标号)
  功能:无条件转移到目的单元,无返回值。
  段内直接转移,范围为段内任何位址(±32K)。若转移范围在±127B之内时,则称之为段内短转移。例如:
  JMP SHORT NEXT ;段内短转移
  段间直接转移,可转到程序的任何位置,例如:JMP FAR PTR NEXT
  此时需用NEXT的段地址和偏移地址取代当前的CS和IP。段内间接转移,可转移到段内的任何位置,例如:JMP CX
  指令执行时用CX的内容取代当前IP,而CS不变。段间间接转移,可转移到程序的任何位置。例如:JMP SEGOFF
  指令执行时,在由SEGOFF的段和偏移量所确定的双字单元中,用较小地址的字单元内容取代IP,较大地址字单元内容取代CS。②CALL
  格式: CALL OPRD调用指令。
  ③RET
  返回指令。
  (2)条件转移指令
  条件转移指令以某些标志位或其逻辑运算为依据,满足条件时则转移。本类指令的转移的目的地址在±127字节以内。本类指令大体上分三类:
  ①依据单个标志位的条件转移指令
  依据单个标志位的条件转移指令如下表所示。
  依据单个标志位的条件转移指令
  指 令 转移条件 说 明
  JC
  JNC CF=1
  CF=0
  有进位/借位时转移
  无进位/借位时转移
  JE/JZ
  JNE/JNZ ZF=1
  ZF=0 相等/等于零时转移
  不相等/不等于零时转移
  JS
  JNS SF=1
  SF=0 符号位为1(负数)时转移
  符号位为0(正数)时转移
  JO
  JNO OF=1
  OF=0 有溢出时转移
  无溢出时转移
  JP/JPE
  JNP/JPO PF=1
  PF=0 奇偶位为1/偶时转移
  奇偶位为0/奇时转移
  ②用于无符号数的条件转移指令
  用于无符号数的条件转移指令如下表所示。
  本指令用于无符号数比较。
  用于无符号数的条件转移指令
  指 令 转移条件 说 明
  JA/JNB
  JAE/JNB
  JB/JNAE
  JBE/JNA CF=0且ZF=0
  CF=0或ZF=1
  CF=1且ZF=0
  CF=1且ZF=1 高于/不等于且不低于时转移
  高于或等于/不低于时转移
  低于/不高于、不等于时转移
  高于、等于/不等于时转移
  ③带符号数的条件转移指令
  带符号数的条件转移指令如下表所示。
  带符号数的条件转移指令
  带符号数的条件转移指令
  指 令 转移条件 说 明
  JG/JNLE (SF)XOR(OF)=0且ZF=0 高于/低于且不等于时转移
  JGE/JNL (SF)XOR(OF)=0
  或ZF=1 高于或等于/低于时转移
  JL/JNGE ( SF)XOR(OF)=1且ZF=0 高于/低于时转移
  JLE/JNG (SF)XOR(OF)=1
  或ZF=0 低于或等于/高于时转移
  上述指令用于带符号数的比较。(3)循环指令
  循环控制指令用来控制一个程序段的重复执行。
  ①LOOP
  格式: LOOP 标号
  功能:目标地址在+1~128字节以内,重复次数置CX中且CX≠0时循环。它等效于下述2条指令的组合:
  DEC CX
  JNE NEXT
  ②LOOPZ(或LOOPE)标号
  此指令有两种助记符。此指令使(CX)←(CX)-1,当CX≠0并且在标志位ZF=1的条件下,循环至目标操作数。
  ③LOOPZ(或LOOPE)标号
  指令使(CX)←(CX)-1,且判断只有当CX≠0,且标志位ZF=0的条件下,循环至目标操数。
  ④JCXZ 标号
  若CX=0,则此指令控制转移到目标操作数。
  (4)中断指令
  中断指令允许程序在需要时去启动中断服务程序。
  ①●INT n 启动由类型码n所规定的中断服务程序。
  ②●INTO 溢出中断。
  ③●IRET 中断返回。
  6.处理器控制指令
  (1)操作标志
  单独对标志进行操作的指令有:
  ①●CLC 清进位,CF=0
  ②●CMC 进位取反
  ③●STC 置CF=1
  ④●CLD 置DF=0
  ⑤●STD 置DF=1
  ⑥●CLI 置IF=0
  ⑦●STI 置IF=1
  (2)处理器暂停
  HLT 处理器暂停,直到出现中断复位信号。
  (3)处理器等待
  WAIT 等待状态,定期检查TEST信号。
  (4)处理器脱离
  SEC 换码指令,向外处理器提供数据。
  (5)总线封锁
  LOCK 总线锁定命令。
  (6)空操作指令
  NOP 除指令地址指针加1外,不执行任何操作。
  (二)80286扩展的指令
  80286指令系统完全兼容8086/8088指令系统。由于80286有实地址和虚地址保护两种工作方式,因而与8086指令系统比较,其绝大部分指令是相同的(仅做了少量增加)。例如,在数据传送指令组中,增加了PUSHA和POPA,用于过程调用、中断服务中恢复现场;在串操作指令中增加了INS和OUTS指令,以实现成批数据的输入和输出;在控制转移指令中,增加ENTER、LEAVE、BOUND等三条有关过程处理的指令。
  80286还增加了专门用虚地址保护方式的15条新指令。它们是:
  ●IGDT 装入全局描述符表寄存器。
  ●SGDT 存放全局描述符表寄存器。
  ●LIDT 装入中断描述符表寄存器。
  ●SIDT 存放中断描述符表寄存器。
  ●LLDT 从寄存器/存储器中装入局部描述符寄存器。
  ●SLDT 把同部描述了表寄存器放入寄存器/存储器。
  ●LTR 从寄存器/存储器中装入任务寄存器。
  ●STR 把任务寄存器存放到寄存器/存储器。
  ●LMSW 从寄存器/存储器装入机器状态字。
  ●SMSW 把机器状态字存放到寄存器/存储器。
  ●LSL 从寄存器/存储器装入段限。
  ●LAR 从寄存器/存储器装入访问权。
  ●ARPL 从寄存器/存储器中调整已请求的特权书。
  ●VERR 从寄存器/存储器读进行验证。
  ●VERW 从寄存器/存储器写进行验证。 (三)80386扩展的指令80386新增的指令组有:1.高级语言支持指令组
  BOUND 数组边界检查
  ENTER 为进入程序建立的参数块
  LEAVE 离开程序
  SETCC 按条件置字节
  2.保护指令组
  CLTS 任务切换标志置0
  SGDT 存放全局描述符表
  SIDT 存放中断描述符表
  STR 存放任务寄存器
  SLDT 存放局部描述符表
  LGDT 装入全局描述符表
  LIDT 装入中断描述符表
  LTR 装入任务寄存器
  LLDT 装入局部描述符表
  ARPL 调整请求特权级
  LAR 装入存取权
  LSL 装入段界限
  VERR/VERW 查证段能否读写
  LMSW 装入机器状态字
  SMSW 存放机器状态字
  3.位处理指令组
  BT 位测试
  BTS 位测试并置“1”
  BTR 位测试并复位
  BTC 位测试并求补
  BSF 向前位扫描
  BSR 向后位扫描
  4.数据传送指令组
  数据传送指令中增加的3条有关地址操作的指令:
  LFS 指针装入F段寄存器
  LGS 指针装入G段寄存器
  LSS 指针装入S(堆栈)段寄存器
  另外还对地址操作的3条指令功能进行了调整:
  LXA 装入有效地址
  LDS 装入D段寄存器
  LES 装入E段寄存器
  5.标志处理指令组
  标志处理指令中增加2条新指令:PUSHFD EFLAGS进栈POPFD EFLAGS出栈
  另外,在逻辑移位指令组中,增加了双位左移和双位右移命令SHLD/SHRD等等。
  (四)80486扩展的指令
  80486指令系统和80386基本相同,但为支持Cache和多重处理,80486在80386指令系统的基础上,又增加了如下几条新指令。
  它们是:
  ●BSWAP 在32位寄存器内交换字节顺序。
  ●XADD 执行原子交换并把它加到存储器操作数上,保留原值。
  ●CMPXCHG 用以存储器为基础的操作数执行原子比较和有条件的交换。
  ●INVD 使整个指令数据Cache无效。
  ●WBINVD 使数据Cache无效,通过二级Cache,写回到脏Cache行。
  ●INVLPG 使TLB中的符号无效。
 

上一篇:武大自考计算机等级考试三级PC技术第二章要点(10)
下一篇:
关键字:计算机等级考试 计算机三级 PC技术 自考笔记 复习资料 武大自考

友情连接   交换链接要求PR>=5   申请
合作院校:武汉大学 华中师范大学 武汉理工大学 中南财经政法大学 湖北工业大学 武汉航海职业技术学院 湖北大学 武汉工程大学

自考无忧网QQ群:8882816 湖北自考网QQ群: 8882951 广告联系QQ:8572643 投诉电话:15872396000
ICP备案号:鄂ICP备08104699号 本站法律顾问:周剑教授 邮箱:[email protected]
Copyright @ 2008-2011 自考无忧网 All Rights Reserved. 百度xml 谷歌xml rss