B. 指令OR DX,1000H执行后,将DX最高位置1,其余各位置0 C. 指令AND AX,0FH执行后,分离出AL低4位 D. 指令NOT AX执行后,将AX清零 85.AND指令用于( )。
A. 取一个数中的某一位 B. 置一个数中的某些位为1 C. 将一个数置为0 D. 置一个数中的某些位为0
87.已知AX=3A7BH,进位标志CF=1,则语句SAR AX,A执行后AX和CF的值分别为( )。 A. 74F6H和0 B. 74F6H和1 C. 747FH和0 D. 1D3DH和1 90.如果AL=35H,执行AND AL,0FFH指令后,CF=( )。
A. 0 B. 1 C. 2 D. 和执行AND AL,0指令前的取值保持一致 92.在指令REP MOVSB中,CX中是( )。
A. 移动字节数 B. 移动字数 C. 无关 D. 记录数 93. BUF单元开始连续存放了10个字节数据,欲找出与AL中内容不同的数据,并将不同数
据的地址偏移量送ADR单元,应选用的指令序列是( )。
A. REPZ CMPSB B. REPNZ CMPSB JZ K1 JZ K1 MOV ADR,DI MOV ADR,DI K1: ? K1: ?
C. REPZ CMPSB D. REPNZ CMPSB
JZ K1 JNZ K1 DEC DI DEC DI MOV ADR,DI MOV ADR,DI K1: ? K1: ? 94. 要使MOVS指令以增量方式传送,则应先执行( )指令。
A. CLC B. STD C. CLD D. CMC 95.串指令操作数的源地址由( )提供。
A. DS:SI B. CS:IP C. ES:SI D. SS:SP 96.为了使执行串操作指令时,地址按减量方式处理应使用( )指令。
A. CLI B. STI C. CLD D. STD 100. 设DF=1,每次执行CMPSW指令时,SI和DI均要分别( )。
A. 减1 B. 减2 C. 加1 D. 加2 101. 要保证串传送指令从低地址往高地址访问主存储器,必需先执行 ( )。
A. CLI B. STI C. CLD D. STD 102.提供串指令中目标操作数地址的是( )。
A. SS:[BP] B. DS:[SI] C. ES:[DI] D. CS:[IP
103. 当使用CMPSW寻找两串中的不同数据时,应使用重复前缀为( )。
A. REP B. RET C. REPE 106. SCASW指令指定的关键字应存放在( )中。
A. AL B. BL C. AX D. BX
108. 用REPE SCASB指令对字符串进行扫描,如CX≠0时,扫描结束,那 么表示( )。
A. 在字符串中遇上第一个AL中指定的字符 B. 在字符串中有一个AL中指定的字符
C. 在字符串中有一个不是AL中指定的字符 D. 在字符串中遇上第一个不是AL中指令的字符 111. 指令REPNZ SCASB测试的条件是( )。
A. 当CX≠0且ZF=0时继续搜索 B. 当CX≠0且ZF=1时继续 搜索 C. 当CX≠0或ZF=0时继续搜索 D. 当CX≠0或ZF=1时继续搜索
113. 用REPE SCASB指令对字符串进行扫描,若CX≠0时,扫描结束,那么表示( )。 A. 在字符串中遇上第一个AL中指定的字符 B. 在字符串中遇上第一个不是AL中指定的字符 C. 在字符串中有一个AL中指定的字符
D. 在字符串中有一个不是AL中指定的字符
120. 若栈顶的物理地址为20100H,当执行完指令CALL AX后,栈顶的物理地址为( )? A. 200FCH B. 20O98H C. 20096H D. 200FEH 121. 执行JZ指令,转移的条件是( )。
A. ZF=0 B. CF=0 C. ZF=1 D. CF=1 123. 指令LOOPZ的循环执行条件是( )。
A. CX≠0并且ZF=1 B. CX≠0或ZF=0 C. CX≠0并且ZF=0 D. CX≠0或ZF=1
125. 假设PR1是一个FAR类型的子程序名称,那么CALL PR1指令执行的正确步骤为( )。
A. 先将CS、IP的内容压栈,再按照PR1对应的逻辑地址修改CS、IP,使程序流程转移至PR1子程序入口
B. 先按照PR1对应的逻辑地址修改CS、IP的内容,使程序流程转移至PR1子程序入口,然后将CS、IP的内容压栈,保存返回点
C. 先将IP的内容压栈,再按照PR1对应的段内偏移量修改IP,使程序流程转移至
PR1子程序入口
D. 先将CS、IP、FR的内容压栈,再按照PR1对应的逻辑地址修改CS、IP,使程序流程转至PR1子程序入口
126. 己知SP=13lOH,执行IRET指令后SP为( )。
A. 1304H B. 1314H C. 1312H D. 1316H 127. 使用比较指令比较两个带符号数A、B的大小,若A>B时转移,则应当用( )指令。 A. JA NEXT B. JB NEXT C. JL NEXT D. JG NEXT 128. NEXT:
下面程序段中,当满足条件转到NEXT标号执行时,AL中的值正确的是( )。 CMP AL,OFBH JNL NEXT ? ?
129. 131. 132. A. 80H B. 8FH C. 0F0H D. 0FF 已知CALL DWORD PTR [BX]指令执行前SP=100H,执行后SP的内容( )。
A. OFEH B. OFCH C. 104H D. 96H 条件转移指令JB的测试条件为( )。
A. ZF=0 B. CF=0 C. ZF=1 D. CF=1 在条件转移指令中,结果为负数则转移的指令是( )。
A. JNS B. JNP C. JS D. JP
133. 要将进位标志置1,可执行指令( )。
A. CLC B. CLD C. STC D. STD 134. 使进位标志位置0的指令是( )。
A. CLC B. CMC C. STC D. NOP 140. 如果AL=66H,执行如下程序片段后,正确的执行结果为( )。 STC
OR AL,1 ADC AL,82H
A. AL=0E9H,CF=1 B. AL=0E9H,CF=0 C. AL=0EAH,CF=0 D. AL=0EAH,CF=1 三、是非题
1. ( )JMP DWORD PRT [4000H]是段间间接转移指令。
2. ( )对于8086来说,各种寻址方式寻址操作数的范围最多只能是64K个字节 。 3. ( )指令JMP WORD PRT [1000H]指令是段内直接转移。 4.( )在寄存器寻址方式中,指定寄存器中存放着操作数。 5.( )段内转移需要改变IP、CS的值。
6. ( )MOV AX,[BP]的源操作数的物理地址为16D×DS+BP。 7. ( )指令“JMP DWORD PRT [4000H]”指令是段间间接转移。 8.( )POP BX指令执行后SP值将减少2。 9. ( )OUT 4FH,AX是合法的指令。 10. ( )POP CS:[BX]是合法指令。
12.( )指令“POP BX”执行后SP值将减少2。 13.( )PUSH [BX]
14. ( )堆栈指令的操作数均为字。
16.( )对于SAR指令,如果移位次数大于1,那么移位次数只能用CL来存 17. ( )在串操作指令执行时,若DF=0,则地址值会自动增加。
18. ( )REPE/REPZ是相等/为零时重复操作,其退出条件是:CX=0或ZF=1。 19. ( )执行MOVSB指令后,DI和SI都加1。
20. ( )串操作指令中的目的变址寄存器只能与ES段寄存器搭配使用
21. ( )带有重复前缀的串操作指令“REP MOVSB”,每执行一次CX值自动减1,且自动按
增址方式修改源串与目标串偏移地址。 22. ( )在串指令使用前,必须先将DF置0。 23. ( )JMP BYTE PTR [BX]
24. ( )JMP DWORD PRT [4000H]指令是段间间接转移指令。 25. ( )段内间接转移只能用存储器单元存放目的地址。
26. ( )段间转移要改变IP、CS的值,但段内转移只改变IP的值,CS的值则保持不变。 27. ( )指令LOOPZ OK的功能是将CX值减1,然后判断CX不为零则转移。 28. ( )JMP FAR PTR LAB ;LAB是标号
四、填空题
1.有一条短转移指令存放在200H开始的内存中,那么正的相对转移能到达的最远的偏移量是__________H,负的相对转移能到达的最远的偏移量是__________H。
2. 设SP=0109H,SS=2300H MOV AX,1234H MOV BX,3456H MOV CX,789AH PUSH AX PUSH BX POP AX POP CX
结果:AX=__________H、BX=__________H、CX=__________H。
3.8086CPU的堆栈是一种特殊的数据存储区,堆栈的操作是按__________(字/字节)操作?其采用__________原则进行操作,其栈顶由__________寄存器来指示。
12.假设BL=0C5H,CL=2,CF=1,确定执行R0R BL,1指令后,BL=__________H、CF=__________。 14. 假设BL=0C5H,CL=2,CF=1,确定执行SHR BL,1指令后,BL=__________H、CF=__________。 17. 当使用串处理指令CMPSW寻找两串中相同的数据时,应使用的重复前缀为__________。
19. 当使用串处理指令CMPSW寻找两串中不同的数据时,应使用的重复前缀为
__________。
21. 比较两个字符串,找出它们不匹配的位置,在CMPSB指令前应使用的重复前缀指令是
__________
22. 设置DF=1的指令为__________。
25.无符号数和带符号数的两组条件转移指令,每条指令都有完全等效的两个指令助记符,例
如,JL指令另一个指令助记符是__________。
37. 写出用TEST指令测试DL寄存器的第3位和第6位。__________ 五、问答题
第1题(5分)
编写程序段,要求把BL中的无符号数除以CL中的数,并把其商乘以2,最后的结果存入DX寄存器中。
第1题(5分)
写出执行以下计算的指令序列,其中X、Z、R、W均为16位带符号数的地址。Z←W-(X+6)-(R+9)
汇编作业4
一、单选题
6.OFFSET操作符用于回送变量或标号的( )。
A. 段地址 B. 偏移地址 C. 物理地址 D. 当前地址7.设VAR 为字变量, A为符号常量,下面四个语句中有一个错误的,这个错误语句是( A. MOV VAR,A B. MOV AX,VAR
。 )