16.提示下列指令序列执行后的正确结果是( A )。 C CX≠0并且ZF=1 D CX=0或ZF=1 MOV BX,OFFFCH 51. 运算型指令的寻址和控制转移型指令的寻址,其不同点在 MOV CL,2 于( )。 SAR BX,CL A 前者取操作数,后者决定程序的转移地址 A.3FFFH B.0FFFH C.0FFFCH B 后者取操作数,前者决定程序的转移地址 D.0FFF5H C 两者都是取操作数 19. 指令SCAS的寻址方式是( )。 D 两者都是决定程序的转移地址 A 源操作数为寄存器寻址,目的操作数为寄存器间接寻址 53. 汇编语言语句格式中的名字项,下列哪一个不正确?B 源操作数为寄存器间接寻址,目的操作数为寄存器间接寻址 ( ) C 源操作数为寄存器间接寻址,目的操作数为寄存器寻址 A. FFFFFH B. @Variable C. 0FFFFH D. Third_street D 源操作数为寄存器寻址,目的操作数为寄存器寻址 二、填空 22. 下列指令中不合法的指令是(C)。 11.已知:(AX)=01CDH,(BX)=0AFH,(CX)=0BE02H, A IN AX, 03F8H B MOV BX, AX CF=1,写出单步执行每条指令时CF,ZF及相关寄存器的内容。
C REP CMPSB D SHR BX, CL 23. 下列指令中正确的是( )。 A MOV SS, 2400H B MOV SS, [2400H] C MOV SS, DS D MOV SS, SP
24. 下列指令中正确的是(A)。
A XCHG AH, AL B XCHG AL, 20H C XCHG DS, AX D XCHG SP, [20H]
29. 下列程序段执行完后,BX寄存器中的内容是( C )。
MOV CL, 3
MOV BX, 0B7H
ROL BX, 1 ROR BX, CL A 002DH B 00EDH C C02DH D 000DH 30. 执行下列程序: MOV AX, 0 MOV BX, 1
MOV CX, 100
A: ADD AX, BX
INC BX
LOOP A
HLT 执行后的结果为:(AX)= ( C ),(BX)= ( ). A 5050,99 B 2500,100 C 5050,101 D 2550,102 35. 逻辑位移指令SHR用于(D),而算术位移指令SAR用于带符号数除2。 A 带符号数减2 B 带符号数除2 C 无符号数乘2 D 无符号数除2 39. 执行下列指令后: MOV AX, 1234H MOV CL, 4 ROL AX, CL
DEC AX
MOV CX, 4
MUL CX
寄存器AL的值是( B )。
A 60H B 00H C 04H D 08DH
43. 对于下列程序段:
AGAIN: MOV ES:[DI],AL
INC DI
LOOP AGAIN
可用指令( )完成相同的功能。
A REP MOVSB B REP LODSB C REP STOSB D REPE SCASB
45. 使得JB指令执行转移操作的条件是( )。
A CF=1 B CF=1且ZF=0 C ZF=0 D CF=0或ZF=1
46. 在“先判断后工作”的循环程序结构中,循环执行的
次数最少是( )。
A 1 B 0 C 2 D 不定
47. 下列指令中,指令( )先执行CX-1赋给CX操作,然后
再根据CX的值决定是否转移、循环或进行重复操作。
A JNC B REP C JCXZ D LOOP
48. 指令LOOPZ的循环执行条件是( )。
A CX≠0并且ZF=0 B CX=0或ZF=0
TEST AX,BX ;AX=01CDH,BX=0AFH
;CF= ,ZF= ,(AX)= H,(BX0= H
ROL BX,CL ;(BX)=2BC H,(CL)=02H ;CF= ,ZF= ,BX= H,CL= H
13.对于字除法指令,目的操作数存放在 AX 中,指令执行后,商放在 AL ,余数在 AH 中。 15. 在除法指令IDIV BX中,被除数隐含为 AX或DX:AX 。 16. 在乘法指令MUL WORD PTE[BX]中,被乘数隐含为 AX ,乘积在DX:AX 中。 17. 执行XLAT指令前,要将表的首地址放在 BX 中,表内偏移地址放在 AL 。 18. 若AL=34H,CL=4,CF=0,执行SAL AL, CL指令后,AL= 40H , CF= 1 。 20. 若DF=1,执行指令LODSB后,SI的内容会自动 。
22. 利用指令JO实现转移的条件为 。
23. 利用指令JZ后,程序顺序执行下一条指令的条件是 。 28. 试分析下列程序段:
ADD AX,BX JNO L1 JNC L2 SUB AX,BX JNC L3
JNO L4
JMP SHORT L5
如果AX和BX的内容给定如下,问该程序执行完后转向哪里? AX BX ⑴ 147B 80DC 转向 L1 。
⑵ B568 54B7 转向 L5 。
⑶ 42C8 608D 转向 L1 。 ⑷ D023 9FD0 转向 L5 。 ⑸ 94B7 B568 转向 L5 。我也不会 30. 条件转移指令的目标地址应在本条件转移指令的下一条指令地址的 字节范围内。 32. 一个有16个字的数据区,它的起始地址为70A0:DDF6,那么该数据区的最后一个字单元的物理地址为 H。 33.假设(DS)=B000H,(BX)=080AH,(0B080AH)=05AEH,(0B080CH)=4000H,执行指令“LES DI,[BX]”后,(DI)= , (ES)= 。 36. 令(AL)=98H, (BL)=12H, 则执行指令MUL BL后,(AX)= 。 37. 假设(SS)=2250H,(SP)=0140H,如果在堆栈中存入5个数据,则栈顶的物理地址为 。 38. 对于字节乘法指令,其目的操作数存放在 中,而其源操作数可以用除立即数以外的任一种寻址方式。其乘积为 位,应存放在 中。 44.下面程序段完成将字变量OPR1转换成反码和补码分别存入
自变量COMP和NEGA单元,将语句补充完整。 JS NEXT OPR1 DW -XXXXXD STC COMP DW ? NEXT: RET NEGA DW ? SUBROUT ENDP MOV AX,OPR1 问:程序运行后,AL= ,BL= ? (1) 55.分析下面程序段,回答指定问题。 MOV COMP,AX BUF DB 0CH (2) MOV AL,BUF MOV NEGA,AX CALL FAR PTR HECA HLT HECA PROC FAR
54.分析下面程序段,回答指定问题: CMP AL,10 XOR AL,AL JC K1 CALL SUBROUT ADD AL,7 MOV BL,AL K1: ADD AL,30H CALL SUBROUT MOV DL,AL RCR AL,1 MOV AH,2 HLT INT 21H SUBROUT PROC NEAR RET NOT AL HECA ENDP 问: 程序执行后,DL= ,屏幕上显示输出的字符是 。 三、问答()
16. 若8086执行SUB AH,AL后的结果是(AH)=85H,OF=1, MOV CX,5 问: XOR AL,AL
(1)执行前AH和AL内的数哪个大? AGAIN: SHL [SI],1 (2)AH中原存的是正数还是负数?其理由是什么? INC SYTE PTR[SI] (3)结果(AH)=85H是否正确?理由是什么? ADD AL,[SI]
23.下列语句中,哪些是无效的汇编语言指令?并指出无效 INC SI 指令中的错误。 LOOP AGAIN
(9) INC [BX] MOV [SI],AI (14) MOV AX,[BX*7] HLT
24.若数组ARRAY在数据段中已作以下定义 28.假设VAR1和VAR2为自变量,LAB为程序中的一个标号, ARRAY DW 100 DUP(?) 试找出下列指令的错误之处。 试指出下列语句中操作数中的各操作符的作用,指令执行后(1)ADD VAR1,VAR2 各寄存器产生了什么变化? (2)SUB AL,VAR1 MOV BX,OFFSET ARRAY (3)JNZ VAR1 MOV CX,LENGTH ARRAY (4)JMP LAB[SI] MOV SI,0 (5)JMP NEAR LAB ADD SI,TYPE ARRAY 31. 指出下列每一对伪指令语句的区别。 26.执行下列程序段前,BUFFER存储区的数据为: (1) X1 DB 76 DB 1,2,3,4,5,6 X2 EQU 76 请给出执行下面程序段后BUFFER存储区中的数据。 (4) X1 DW 3678H MOV SI,OFFSET BUFFER X2 DB 36H,78H 五、应用。 (3) REPNE SCASB (4) REPE CMPSB
4. 试编写一程序段,要求在长度为100H字节的数组ARRAY12. 编写一程序段,比较两个5字节的字符串OLDS和NEWS,中,找出大于42H的无符号数的个数并存入字节单元UP中;找如果OLDS字符串不同于NEWS字符串则执行NEW_LESS;否则顺出小于42H的无符号数的个数并存入字节单元DOWN中。 序执行程序。 5. 试编写一个程序求出双字节数的绝对值。双字长数在A和13. 已知在N到N+I的存储区中有一组ASCⅡ码字符串(共IA+2单元中,结果存放在B和B+2单元中。 +1个),试编写一个汇编语言程序,将此字符串传送到NI到6. 编写程序段,把字符串STRING中的第一个‘&’字符用空格NI+I单元中,并使字符串的顺序与原来的顺序相反。 符代替。 16. 已知DATA单元为一个16位带符号数的原码形式,试用补 STRING DB ‘The date is FEB&03’ 码形式表示该数。 7. 下列ASCⅡ码串(包括空格符)依次存储在起始地址为17. 在内存的数据段中存放了若干个8位带符号数,数据块的CSTRING的字节单元中: 长度为COUNT(不超过255),首地址为TABLE,试统计其中正元 CSTRING DB ‘BASED ADDRESSING’ 素、负元素及零元素的个数,并分别将个数存入PLUS、MINUS请编写指令将字符串中的第1个和第7个字符传送给DX寄存器。 和ZERO单元中。 8. 若地址偏移量为2000H~2003H有一个4字节的数,现要把18. 编写程序将ELEMS中的100个字节数据的位置颠倒过来该数左移1位,写出完成该操作的程序段。(要求不超过5条指(即第一个字节和第100个字节的内容交换,第二个字节和第令) 99个字节的内容交换„„)。 9. 写出对存放在DX和AX中的双字长数求负的指令序列。 程序设计题
2.测定ALPHA字节变量单元中的ASCⅡ码字符,进行如下操10. 用其他指令完成和下列指令一样的功能。 作:
(1) REP MOVSB (2) REP STOSB (1)若为数字字符,送入NUM字节单元中。
(2)若为大写字母字符,送入BIGCHR字节单元中。 (3)若为小写字母字符,送入SMLCHR字节单元中。 编写出程序段。
3.设在变量单元A、B和C中存放有三个数,若三个数都不为零,则求出三个数之和存入D中;若有一个数为零0,则将其他两个单元也清零,请编写此程序段。
5.已知两个整数变量A和B,试编写完成下述操作的程序: (1)若两个数中有一个是奇数,则将奇数存入ABUF单元,偶数存入BBUF单元中。
(2)若两个数均为奇数,则两数分别加1,并存回原变量处。
(3)若两个数均为偶数,则两变量不变。
6.编写一循环结构程序段,完成从LETTER字节存储单元开始,连续存放‘A’-‘Z’共26个字母(数据定义伪指令只定义存储空间,不指定值)。
7.定义一数组GRADE存放有100个学生某门功课的考试成绩,要求编一程序,统计各分数段的人数。即统计90~100分,80~89分,70~79分,60~69分,以及60分以下的各有多少人。
8.试编写一个程序,比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示‘MATCH’,若不同则显示‘NO MATCH’。
9.试编写一个程序段,求出首地址为DATA的100个字数组中的最小偶数,并把它存放于AX中。
11.编写一个汇编语言程序,统计变量X中的值有多少位为1,并记入ONE变量中。
18. 从XX单元开始的30个连续单元中存放有30个无符号数,从中找出最大者送入yy单元中。
因篇幅问题不能全部显示,请点此查看更多更全内容