《汇编语言复习资料.doc》由会员分享,可在线阅读,更多相关《汇编语言复习资料.doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、汇编语言复习资料第一部分 选择题第一章 基础知识1. 数组array在数据段的定义如下所示,在内存空间的存储值是什么,选出正确的一项( )array db 1,1,0AH,A,-2 A、1H1H0AH0AH 82h B、1H31H0AH41H FEHC、110A0A 12hD、31H31H41H41H 02h2. debug命令中显示内存单元内容的命令是( )A、aB、dC、eD、r3. debug命令中反汇编命令是( )A、qB、gC、tD、u4. 在DEBUG下,修改寄存器AX的命令是_。 AU AX BR AX CR DA AX5. 从200H开始反汇编的DEBUG命令是_。AU 200
2、 BR 200 CD 200 DU6. 仅查看用户程序中数据段10号存储单元的DEBUG命令是_。 AD DS:A A BD DS:A CD DS:10 10 DD DS:107. 计算机编程语言的发展顺序是( )A、机器语言 汇编语言 高级语言B、汇编语言 机器语言 高级语言C、高级语言 汇编语言 机器语言 D、高级语言 机器语言 汇编语言8. 将124转换成十六进制数的结果是_。 A7CH B7DH C7EH D7BH9. 计算机对字符、符号采用统一的二进制编码。其编码采用的是_。ABCD码 B二进制码 CASCII D十六进制码第二章 80x86计算机组织10. 对汇编语言源程序进行翻译
3、的程序是_。 A连接程序 B汇编程序 C编译程序 D目标程序11. 在汇编语言中,能够翻译成二进制代码的指令是_。 A汇编指令 B伪指令 C机器指令 D宏指令12. 将高级语言程序翻译成机器语言代码的实用程序是_。 A编译程序 B汇编程序 C解释程序 D目标程序13. 下列寄存器中,哪一个不能用来保存偏移地址( )A、AXB、SIC、DID、BX14. 下列哪个寄存器是用来保存堆栈栈顶元素的地址( )A、BPB、SPC、SID、DI15. 程序流程是由下列那对寄存器组来控制的( )A、DS: SIB、SS: SPC、CS: IPD、ES: DI16. 用来保存现场状态的寄存器是下列哪一个( )
4、A、CSB、AXC、FLAGSD、IP17. 在标志寄存器中表示溢出的标志是_。AAF BCF COF DSF18. 某存储单元的物理地址是56789H,可以作为它的段地址有() A.6789HB.56789HC.56780HD.5678H19. 在数据段偏移地址1000H1003H的内容为:12H 34H 56H 78H,执行指令MOV AX , 1002H 后,AX寄存器的内容为( )A、3456HB、5634HC、5678HD、7856H20. 已知DS=12A0H,ES=22A0H,SS=33A0H,BP=0174H,指令MOVAX,DS:BP源操作数的物理地址是()。 A.12A07
5、4HB.22B74HC.33B74HD.12B74H21. 已知(DS)=2000H,(BX)=1002H,(21001H)=12H,(21002H)=34H,(21003H)=56H,则执行 MOV AX, BX之后,AX的值是( )A1002HB5634HC3456HD1234H22. 两个操作数运算时,下列哪种结果会发生溢出_。 A两个负数相加,结果为负 B两个正数相加,结果为负 C一正一负相加,结果为负 D两个正数相加,结果为正23. 堆栈段的逻辑地址由_组成。 ADS:BX BES:DI CCS:IP DSS:SP24. 物理地址的计算公式是 。 A段地址10+偏移地址 B偏移地址1
6、0+段地址 C段地址10H+偏移地址 D偏移地址10H+段地址25. 在8086系统中,数据寄存器组为_。 ASI、DI、SP、BP BAX、BX、CX、DXCCS、DS、ES、SS DCF、SF、ZF、OF第三章 寻址方式和指令系统26. 指令MOV AX,DS:1000H,源操作数的寻址方式是_。 A立即寻址 B直接寻址 C寄存器寻址 D基址变址寻址27. 指令MOV DX,BPDI 源操作数的寻址方式是_。 A立即寻址 B直接寻址 C寄存器寻址 D基址变址寻址28. 若(AX)=2530H,(BX)=18E6H,MOV BX,AL指令正确的执行结果为_。 ABX寄存器的值为2530H B
7、BL寄存器的值为30H C18E6H单元的值为30H D18E6H单元的值为2530H29. 指令MOV AX,COUNTBX完成的操作是_。 A从存储单元读出一个字送入AX B从存储单元读出一个字节送入AX C将AX中的一个字写入存储单元 D将AX中的一个字节写入存储单元30. 指令MOV DX,DELTABXSi的源操作数保存在_。 A代码段 B堆栈段 C数据段 D附加段31. 操作数地址由BX寄存器指出,则它的寻址方式是_。 A直接寻址 B寄存器寻址 C立即寻址 D寄存器间接寻址32. 一条指令中目的操作数不允许使用的寻址方式是_。 A寄存器寻址 B立即寻址 C变址寻址 D寄存器间接寻址
8、33. 用直接寻址将AL的内容保存到16号单元,可用_指令。AMOV DS:0016H,AL BMOV AL,DS:0016HCMOV DS:0010H,AL DMOV AL,DS:0010H34. 指令MOV BX,-2+1执行后,BX中的内容(16进制)为( )A.0FFFEH B.0FFFFH C.0001H D.8001H35. 串操作指令中,目的串操作数的段地址一定在( )寄存器中。A. CSB. SSC. DSD. ES36. 重复前缀指令rep规定重复次数必定在()寄存器中。 A.DXB.DLC.CXD.CL 37. 在LOOP、LOOPE、LOOPNE类指令里隐含的计数器是(
9、)A、AXB、BXC、CXD、DX38. 若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( )A. 1400HB. 77F8HC. 0000HD. 0FFFFH39. 设AL=0AH,下列指令执行后能使AL=05H的是()A.XOR AL,0FHB.AND AL,0FHC.TEST AL,0FHD.OR AL,0FH40. 数据定义num db 2 dup (3,4,5) / len equ $-num ,其中len为( )。 A.6 B. 2 C. 3 D. 541. 下列程序段执行后LEN的值是()ADDR DB 3,4,5,6789EADDR DB 1LEN
10、 EQU EADDR - ADDR A.6HB.6HC.7HD.8H42. DEC BYTE PTR SI 指令中的操作数的数据类型是( )A.字B. 字节C. 双字D.四字43. 下面各传送指令中,正确的是( )A.MOV DI,SI B.MOV DX+DI,ALC.MOV WORD PTR BX,0100HD.MOV AL, BX 44. 关于字节乘法指令错误的说法是_。 A被乘数隐含在AL中 B乘数和被乘数都是字节型 C被乘数隐含在AX中 D乘积是字型45. 关于字除法错误的说法是_。 A16位被除数AX与8位源操作数相除 B32位被除数DX、AX与16位源操作数相除 C商在AX寄存器,
11、余数在DX寄存器中 D带符号除法的商和余数都是补码表示的数第四章 指令格式46. 经过汇编产生的二进制目标文件是_。 A.ASM B.OBJ C.EXE D.MAP47. 汇编语言源程序是指_。 A系统提供的MASM B用户编写的.asm C汇编生成的.LST D连接生成的.EXE48. 不能用MOV指令赋初值的段寄存器是_。 ADS BES CCS DSS49. 在COUNT DB 5这条存储单元定义伪指令中,COUNT称为_。 A助记符 B变量 C符号 D标号50. 将10个字数据3456H存放在存储单元中的伪指令是_。 ADW 10H DUP(3456H) BDW 10 DUP(3456
12、H) CDW 10H DUP(5634H) DDW 10 DUP(5634H)51. 将字符串“INPUT”保存到存储单元MESS,正确的伪指令是_。 AINPUT DB MESS BMESS DB INPUT CINPUT DB “MESS” DMESS DB“INPUT”52. _可用来指出一条汇编指令所在存储单元的符号地址。 A变量 B数组名 C标号 D偏移量53. 用指令MOV BX,SEG COUNT指令,可以得到存储单元COUNT的_。 A物理地址 B段地址 C偏移地址 D属性54. SP栈指针内容是1200H,执行两条PUSH指令之后,SP的值为_。 A1202H B1204H
13、C11FCH D11FEH55. 获得BUFFER单元有效地址的汇编指令为_。 AMOV BX,BUFFER BLEA BX,BUFFER CMOV BX, BUFFER DLDS BX,BUFFER56. 有数据定义LISTDB21H,36H,18H,39H,执行MOVAX,WORDPTRLIST+2,则AX=()。 A.3600HB.0036HC.1839HD.3918H 57. 8086的存储器是分段的,定义一个段的伪指令是()。 A.PROC和ENDPB.NAME和END C.SEGMENT和ENDSD.SEGMENT和ASSUME 第五章 循环与分支指令58. 在分支指令中,利用符号
14、进行判断的指令是_。 AJC BJS CJZ DJO59. 在执行条件转移指令前,不能形成条件的指令有_。 ACMP BSUB CAND DMOV60. 在条件转移指令中,结果不为0则转移的指令是_。 AJNS BJZ CJS DJNZ61. 两个带符号数比较,不大于则转移的指令是_。 AJLE BJBE CJL DJAE62. 在条件判断时,采用操作数相与运算的判断指令是_。 ATEST BCMP CAND DJCXZ63. 将AL的2、6位屏蔽为0,其余位保持不变,指令为_。 AAND AL,42H BAND AL,0BBH COR AL,26H DADD AL,0FBH64. 用户程序中
15、的数据段的段地址,用_指令给出。 AMOV AX,CODE BMOV CS,CODE MOV CS,AX MOV DSCS CMOV CS,DATA DMOV AX,DATAMOV DS,CS MOV DS,AX65. 下列描述错误的是_。ALOOP指令以CX为循环计数器BLOOPE指令循环的条件是CX不等于0且ZF=0CLOOPE指令循环的条件是CX等于0且ZF=1DLOOPNE指令循环的条件是CX不等于0且ZF=066. 串处理操作需要循环重复执行,_不能出现在串处理指令中。 AREP BREPZ CREPNZ DLOOP67. 在串传送指令中,串的转送方向由_标志位决定。 ADF BCF
16、 CZF DOF68. 串传送指令中,源串和目的串的偏移地址由_寄存器指出。 ABX和DX BDS和DX CSI和DI DSI和CX69. 串扫描SCAS指令要求目的串放在_中。 A数据段 B代码段 C堆栈段 D附加段70. 串扫描SCASW指令隐含地将_寄存器作为查找的内容。 AAX BBX CCX DAL71. LOOPNE指令的循环计数值放在_寄存器中。 ACL BBX CCX DIP72. 循环指令的控制条件除CX寄存器之外,还可把标志位_作为控制条件。 ACF BSF CZF DOF73. 循环指令LOOPNZ终止循环的条件是_。 ACX=0且ZF=0 BCX=0或ZF=1 CCX产
17、0且ZF=0 DCXv0或ZF=074. 串传送指令MOVSW,执行CLD指令后,每传送一次,串的_。 A偏移地址+1 B偏移地址+2 C偏移地址-1 D偏移地址-275. 在串处理指令中,设置方向标志为1的指令是_。ASTD BCLD CHLT DCWD第六章 子程序结构76. 如果子程序的属性为FAR,下列说法错误的是_。 A可以段内直接调用 B可以段间间接调用 C可以段间直接调用 D只能段间调用77. 在子程序调用过程中,断点指的是_。 ACALL指令本身 BCALL的下一条指令 CCALL的下一条指令的地址 D子程序名78. 执行CALL SUBRl指令后,完成的操作是_。 A将SUB
18、Rl的偏移地址入栈保存 B将断点的偏移地址入栈保存 C将断点的偏移地址IP D将SUBRl的段地址CS,偏移地址IP79. 子程序的属性是用_定义的。 ACALL指令 BPROC过程定义伪指令 CFARPTR DRET指令80. 执行段间返回RET指令时,从堆栈中_。A先弹出断点的偏移地址,再弹出段地址B先弹出断点的段地址,再弹出偏移地址C弹出断点的偏移地址D弹出断点的段地址81. 子程序结构中,保存现场指的是_。 A保存CALL指令 B保存断点的地址 C保存主程序用到的寄存器 D保存子程序用到的寄存器82. 用CALL指令调用子程序时,从子程序返回到主程序_。 A用JMP指令 B用INT21
19、H指令 C只能用RET指令 D既可以用RET又可以用JMP83. 如果在子程序中进行了现场保护,那么子程序中_。 A恢复现场在RET指令之前 B恢复现场在RET指令之后C直接用RET指令返回 D直接用JMP指令返回第七章 宏汇编84. 有关宏的作用,下列说法不正确的是_。 A宏可以被多次调用 B宏调用时不用保存断点 C宏定义体中不可以有标号 D宏展开是汇编程序完成的85. 宏定义时,是通过_实现参数传递的。 A哑元和实元 B堆栈 C寄存器 D存储单元86. 宏调用是通过_实现的。 A汇编指令 B宏指令 C宏展开 D机器指令87. 宏定义的伪指令是_。APROCENDP BmacROENDM C
20、SEGMENTENDS DSTRUCENDS88. 宏定义体中的标号通过_伪指令用来指定。 APUBLIC BMACRO CEXTRN DLOCAL89. 有关宏展开的说法正确的是_。A在宏展开时,所有的伪指令被加入 B用宏定义体替换宏指令C哑元表中的哑元仍然保留D可以将宏指令变为机器代码90. 宏与子程序的区别是_。 A宏可以被多次调用 B宏是一段程序 C宏可以实现参数传递 D宏调用时不用返回第八章 输入输出程序设计91. 下面哪个指令的是将一个字符数据输出到端口25H的正确指令。Aout 25h, alBout al, 25hCmov 25h,al Dmov al,25h92. 下面哪个指
21、令的是将一个字数据从端口1000H输入的正确指令。Mov dx,1000hIn ax,dxAin 1000h, alBin al, 1000hCmov 1000h,al Dmov al,1000h93. CPU对软件中断的处理,下列说法正确的是_。 A中断允许标志IP必须为1 B通过8259A中断控制器管理中断 C不需要得知中断类型号 D执行INTn指令时立即转入中断处理94. 在中断处理系统中,中断向量指的是_。 A中断类型号 B中断子程序 C中断子程序的入口地址 D中断源95. 有关中断向量表的说法正确的是_。 A中断向量表就是中断向量 B中断向量表中保存的是中断向量 C中断向量表中保存的
22、是中断类型号 D中断向量表中保存的是中断子程序96. 在8086指令系统中,取出中断向量的指令是_。 AMOV AH,35H BMOV AH,25H INT 21H INT 21H CMOV AH,31H DMOV AH,4CH INT 21H INT 21H97. 编写中断子程序时,下列说法错误的是_。 A允许中断嵌套 B不允许开中断 C应该保护和恢复现场 D必须用IRET指令返回第九章 BIOS和DOS中断98. 从键盘输入一串字符使用DOS功能调用的_。 A1号功能 B2号功能 C 9号功能 D10号功能99. DOS功能调用中,功能号应写入_寄存器中。 AAL BAH C DL DDH
23、100. 显示一个字符的DOS功能调用要求将字符放入_。 ADS:DX BDS:BX CBL DDL第二部分 概念及简答1. 请将左边的词汇和右边的说明联系起来,括号内填入所选的A,B,C。 (1) CPU ( ) A.保存当前栈顶地址的寄存器。 (2) 存储器 ( ) B.指示下一条要执行的指令的地址。 (3) 堆栈 ( ) C.存储程序、数据等信息的记忆装置,PC机有RAM和ROM两种。 (4) IP ( ) D.以后进先出方式工作的存储器空间。 (5) SP ( ) E把汇编语言程序翻译成机器语言程序的系统程序。 (6) 状态标志 ( ) F. 唯一代表存储器空间中的每个字节单元的地址。
24、(7) 控制标志 ( ) G能被计算机直接识别的语言。(8) 段寄存器 ( ) H. 用指令的助记符、符号地址、标号等符号书写程序的语言。(9) 物理地址 ( ) I把若干个模块连接起来成为可执行文件的系统程序。(10)汇编语言 ( ) J保存各逻辑段的起始地址的寄存器。PC机有四个寄存器CS、DS、SS、ES。(11) 机器语言( ) K控制操作的标志,如DF位(12) 汇编程序( ) L. 记录指令操作结果的标志,共六位:OF、SF、ZF、AF、 PF、CF(13) 连接程序( ) M. 分析、控制并执行指令的部件,由算逻单元(ALU)和寄存器组等组成。(14) 指令 ( ) N由汇编程序
25、在汇编过程中执行的指令。(15) 伪指令 ( ) O. 告诉CPU要执行的操作(一般还要指出操作数地址),在程序运行时执行。2. 2假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据段中变量名VAL的偏移地址值为0050H,试指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?(1)MOV AX,0ABH (2)MOV AX,BX (3)MOV AX,100 (4)MOV AX,VAL (5)MOV AX,BX (6)MOV AX,ES:BX (7)MOV AX,BP (8)MOV AX,SI (9
26、)MOV AX,BX+10 (10)MOV AX,VALBX(11)MOV AX,BXSI (12)MOV AX,VALBXSI3. 简述存储器的逻辑地址、物理地址和有效地址。答:用段地址和偏移地址表示存储单元的地址为逻辑地址,逻辑地址不是唯一的,同一地址可以有不同的表示,用20位的二进制表示存储单元的地址称为物理地址,每一个地址都是唯一的,由逻辑地址形成物理地址的过程是将段地址左移4位加偏移地址。计算偏移地址是由相关项组成的,由这些相关项计算得到地址称为有效地址(EA)4. 堆栈操作的原则是什么?堆栈操作的过程是怎样进行的?堆栈的操作是采用后进先出的原则。堆栈操作的过程是在压栈时先将SP2S
27、P,然后将要压入的字压入到SS:SP所指示的单元中;在弹栈时,先将SS:SP所指示的字单元中的内容弹出来送到目标地址中,然后将SP+2SP。5. 简要说明标志寄存器。标志寄存器(Flag Register)又称程序状态字(Program Status Word),是8086/088中唯一按位操作的寄存器,该寄存器为16位,有效的标志位共9位。其中,CF,PF,AF,ZF,SF,OF为状态标志,用于反映最近一次影响标志位的算术或逻辑运算中运算过程、运算结果的一些性质;TF,IF,DF为控制标志,用于控制CPU对某些特定事件的处理方式以及CPU的工作模式。6. 什么是伪操作?伪操作又成为伪指令,它
28、们不像机器指令那样是在程序运行期间由计算机来执行的,而是在汇编程序对源程序汇编期间由汇编程序处理的操作,它们可以完成如处理器选择、定义程序模式、定义数据、分配存储区、指示程序结果等功能。7. 什么是子程序?子程序又称为过程,它相当于高级语言中的过程和函数。在一个程序的不同部分,往往用到类似的程序段,这些程序的功能和结构形式都相同,只是某些变量的赋值不同,此时就可以把这些程序段写成子程序形式,以便需要时可以调用它。8. IO机构中一般有哪几种寄存器,请简要说明。I/O接口部件中一般有三种寄存器:一是用作数据缓冲的数据寄存器;二是用作保存设备和接口的状态信息,供CPU对外设进行测试的状态寄存器;三
29、是用来保存CPU发出的命令以控制接口和设备的操作的命令寄存器。这些寄存器都分配有各自的端口号,CPU就是用过不同的端口号来选择各种外部设备的。9. 简述宏指令与子程序的主要区别。宏与子程序都可以用一个名字定义一段程序,以简化源程序的结构和设计。二者的区别:(1)在源程序中,通过书写宏名来引用宏,而子程序是通过CALL指令来调用; (2)宏调用是通过宏扩展来实现的,宏引用多少次,就相应扩展多少次,所以,引用宏不会缩短目标程序;而子程序代码在目标程序中只出现一次,调用子程序是执行同一程序段,因此,目标程序也得到相应的简化10. 简述汇编程序对宏调用作宏展开的过程。宏展开就是用宏定义的宏体取代源程序
30、中的宏指令,同时用宏调用中的实元来取代定义中的变元。在取代时,实元与变元一一对应时,就将第一个实元取代第一个变元,第二个实元取代第二个变元,其它依此类推。当实元个数多于变元个数时,则多余的实元不予考虑,当实元的个数少于变元个数时,则多余的变元作空处理。11. 什么是中断,中断的分类(也是中断来源),简述中断过程。中断是使CPU中止正在执行的程序而转去处理特殊事件的操作。软件中断:由中断指令INT引起,由于CPU的某些错误而引起(除法错中断、溢出中断),为调试程序(debug)设置的中断(单步中断、断点中断)。硬件中断:硬件中断来自处理机的外部条件,如I/O设备或其它处理机等,又称为外中断,有两
31、个来源,一个是非屏蔽中断,一种是来自各种外部设备的中断。中断过程:当程序中发生中断时,即向CPU发出中断信号,取中断类型号N、FLAGS内容入栈、当前CS入栈、当前IP入、禁止硬件中断和单步中断、从中断向量表中取出中断程序的入口地址、执行中断处理程序、中断返回。12. 已知DOS系统功能调用(INT 21H)AH功能调用参数返回参数07键盘输入(无回显)AL=输入字符编写程序段,检测从键盘输入的字符是否是字母Y(ASCII:59H),如不是则继续输入字符检测。13. 什么是BIOS和DOS功能调用,如何调用?BIOS是固化在只读存储器ROM中的基本输入输出程序。DOS是用来控制和管理计算机的硬
32、件资源、方便用户使用的程序集合。DOS和BIOS提供了大量的可供用户直接使用的系统服务程序。在汇编程序中可以通过软件中断调用这些功能。调用过程:(1)将调用参数装入指定的寄存器;(2)如需功能号,把它装入AH;(3)如需子功能号,把它装入AL;(4)按中断号调用BIOS或DOS中断;(5)检查返回参数是否正确。第三部分 程序分析及编程参考实验第四部分 指令系统复习指导预备知识:符号含意、数据传送原则指令中符号说明:opr(操作数)、src(源操作数)、dst(目的操作数)、mem(存储器)、imm(立即数)、seg(段寄存器)、reg(通用寄存器)、EA(偏移地址)、PA(物理地址)数据传送原
33、则口诀数据传送原则寄段储间互传数,seg、reg、mem之间的数据可以相互传送。立即只入寄和储。im可入reg、mem,但不可传送至seg只有寄间互换数,reg之间的数据可以传送。Mem间、seg间不可自传CS立即不可目,CS和立即数不可入,不能当目的操作数8088指令系统8088指令系统分六大类一、数据传送指令二、算术运算指令三、逻辑运算与位移指令四、串操作指令五、控制与转移指令六、CPU控制指令学习指令注意:(1)操作数的个数,以及每个操作数允许的寻址方式; (2)要特别注意带有隐含操作数的指令,比如乘法、除法、串传送等; (3)运算类指令要注意运算结果对标志寄存器的影响。一、数据传送指令
34、1 通用传送指令(1)传送指令MOV dst, src功能:dstsrc(2)堆栈操作指令PUSH src作用:SPSP2 ((SP+1)SP)src src(reg seg mem)POP dst 作用: dst((SP+1)SP) SPSP2 dst(reg seg mem)(3)交换指令XCHG OPR1,OPR2 OPR1OPR22 累加器传送指令(1)输入输出指令 输入:IN,输出:OUT输入指令:直接寻址 IN AX,PORT IN AL,PORT间接寻址 IN AX,DX IN AL,DXPORT为8位口地址,例如:IN AL,21H,输出是一样的结构3 地址传送指令(1)有效地
35、址传送寄存器 LEA reg16, mem作用:mem的EAreg16二、算术运算指令1加法类指令(Add)opr-reg mem B/W(1)不带进位加法ADD dst, src dstdstsrc 影响OSZAPC(2)带进位加法 ADC dst, src dstdstsrcCF影响OSZAPC(3)加1指令 INC opr opropr1影响OSZP2 . 减法类指令(substract)(1)减法指令 SUB dst, src ;dstdstsrc 影响标志位OSZAPC(2)带借位减法指令SBB dst, src;dstdstsrcCF 影响标志位OSZAPC(3)减1指令DECsr
36、c 影响OSZP(5)比较指令CMPdst, src 和SUB一样,但是不保存结果,只修改标志位3乘法类指令multiplication(1)无符号数乘法MULsrc ;AXsrc8AL DX:AXsrc16AX,影响F:OC(2)有符号数乘法IMULsrc ;AXsrc8AL DX:AXsrc16AX,影响F:OC4 除法类指令(Division)(1)无符号数除法DIV src ; AXsrc8商进AL,余数进AH;(DX:AX)src16商进AX,余数进DX,不影响F。(2)有符号数除法IDIV src ;算法同上。注意:1不影响F;2余数的符号与被除数相同,3若被除数和除数都是8位,被
37、除数需扩展成16位;若被除数和除数都是16位,被除数需扩展成32位。三、逻辑运算与位移指令1 逻辑运算(1)与 ANDdst, src ;dstdst AND src 影响F: SZP(2)或 OR dst, src ;dstdst OR src 影响F: SZP(3)异或 XORdst, src ;dstdst XOR src 影响F: SZP(4)非 NOTopr ;dstopr逐位求反 不影响F(5)测试 TEST reg, src ;dst AND src 影响F: SZP 不入dst 逻辑运算dst src opr符合基本传输原则(不允许seg)2 移位 (注意只能移1位或者CL位,
38、其它不可以)(1)逻辑左移SHLopr, 1 或SHL opr, CL0填最右位(2)逻辑右移 SHRopr, 1 或SHR opr, CL0填最左位(3)算术左移SALopr, 1 或SAL opr, CL0填最右位(4)算术右移SARopr, 1SAR opr, CL最左位不变注意:opr: reg mem 3 循环移位(1)无进位左循环 ROL opr, 1 ROL opr, CL(2)无进位右循环 ROR opr, 1 ROR opr, CL(3)有进位左循环 RCL opr, 1 RCL opr, CL(4)有进位右循环 RCR opr, 1 RCR opr, CL注意:opr: r
39、eg mem B/W 四、串操作和重复指令(唯一的src dst 可以均为mem的指令)特点:A源操作数src在DS:SI,目的操作数在dst ES:DI B修改指针决定于DF,0增1减,字节1字2C串长置于CXD重复靠REP1串操作指令(1)串传送MOVS / MOVSB / MOVSW dst, src ;dstsrc(2)串比较 CMPS / CMPSB / CMPSW dst, src ;dstsrc影响F: OSZAPC(3)串搜索SCAS / SCASB / SCASW dst ;ALdst或AXdst影响F: OSZAPC2重复指令(1)REP 与MOVS/B/W,STOS/B/W联用若