您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页汇编语言程序设计习题集111

汇编语言程序设计习题集111

来源:尚车旅游网
16.提示下列指令序列执行后的正确结果是( A )。 MOV BX,OFFFCH MOV CL,2 SAR BX,CL

A.3FFFH B.0FFFH C.0FFFCH D.0FFF5H19. 指令SCAS的寻址方式是( )。

A 源操作数为寄存器寻址,目的操作数为寄存器间接寻址B 源操作数为寄存器间接寻址,目的操作数为寄存器间接寻址C 源操作数为寄存器间接寻址,目的操作数为寄存器寻址D 源操作数为寄存器寻址,目的操作数为寄存器寻址22. 下列指令中不合法的指令是(C)。

A IN AX, 03F8H B MOV BX, AX

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 000DH30. 执行下列程序: 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 无符号数除239. 执行下列指令后:

MOV AX, 1234HMOV CL, 4ROL AX, CLDEC AXMOV CX, 4MUL 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 LOOP48. 指令LOOPZ的循环执行条件是( )。A CX≠0并且ZF=0 B CX=0或ZF=0 C CX≠0并且ZF=1 D CX=0或ZF=1

51. 运算型指令的寻址和控制转移型指令的寻址,其不同点在于( )。

A 前者取操作数,后者决定程序的转移地址B 后者取操作数,前者决定程序的转移地址C 两者都是取操作数

D 两者都是决定程序的转移地址

53. 汇编语言语句格式中的名字项,下列哪一个不正确?( ) A. FFFFFH B. @Variable C. 0FFFFH D. Third_street二、填空

11.已知:(AX)=01CDH,(BX)=0AFH,(CX)=0BE02H,CF=1,写出单步执行每条指令时CF,ZF及相关寄存器的内容。 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= H13.对于字除法指令,目的操作数存放在 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单元,将语句补充完整。 OPR1 DW -XXXXXD COMP DW ? NEGA DW ?

MOV AX,OPR1 (1)

MOV COMP,AX (2)

MOV NEGA,AX HLT

54.分析下面程序段,回答指定问题: XOR AL,AL CALL SUBROUT MOV BL,AL CALL SUBROUT RCR AL,1 HLT

SUBROUT PROC NEAR NOT AL JS NEXT STC NEXT: RET SUBROUT ENDP

问:程序运行后,AL= ,BL= ?55.分析下面程序段,回答指定问题。BUF DB 0CH

MOV AL,BUF

CALL FAR PTR HECAHECA PROC FAR CMP AL,10 JC K1 ADD AL,7K1: ADD AL,30H MOV DL,AL MOV AH,2 INT 21H RETHECA ENDP

问: 程序执行后,DL= ,屏幕上显示输出的字符是 。三、问答()

16. 若8086执行SUB AH,AL后的结果是(AH)=85H,OF=1,问:(1)执行前AH和AL内的数哪个大?

(2)AH中原存的是正数还是负数?其理由是什么?(3)结果(AH)=85H是否正确?理由是什么?

23.下列语句中,哪些是无效的汇编语言指令?并指出无效指令中的错误。

(9) INC [BX]

(14) MOV AX,[BX*7]

24.若数组ARRAY在数据段中已作以下定义 ARRAY DW 100 DUP(?)

试指出下列语句中操作数中的各操作符的作用,指令执行后各寄存器产生了什么变化?

MOV BX,OFFSET ARRAY MOV CX,LENGTH ARRAY MOV SI,0

ADD SI,TYPE ARRAY

26.执行下列程序段前,BUFFER存储区的数据为: DB 1,2,3,4,5,6

请给出执行下面程序段后BUFFER存储区中的数据。 MOV SI,OFFSET BUFFER MOV CX,5 XOR AL,ALAGAIN: SHL [SI],1

INC SYTE PTR[SI] ADD AL,[SI] INC SI

LOOP AGAIN MOV [SI],AI HLT

28.假设VAR1和VAR2为自变量,LAB为程序中的一个标号,试找出下列指令的错误之处。

(1)ADD VAR1,VAR2(2)SUB AL,VAR1(3)JNZ VAR1(4)JMP LAB[SI](5)JMP NEAR LAB

31. 指出下列每一对伪指令语句的区别。

(1) X1 DB 76

X2 EQU 76

(4) X1 DW 3678H

X2 DB 36H,78H

五、应用。

4. 试编写一程序段,要求在长度为100H字节的数组ARRAY中,找出大于42H的无符号数的个数并存入字节单元UP中;找出小于42H的无符号数的个数并存入字节单元DOWN中。5. 试编写一个程序求出双字节数的绝对值。双字长数在A和A+2单元中,结果存放在B和B+2单元中。

6. 编写程序段,把字符串STRING中的第一个‘&’字符用空格符代替。 STRING DB ‘The date is FEB&03’

7. 下列ASCⅡ码串(包括空格符)依次存储在起始地址为CSTRING的字节单元中:

CSTRING DB ‘BASED ADDRESSING’

请编写指令将字符串中的第1个和第7个字符传送给DX寄存器。

8. 若地址偏移量为2000H~2003H有一个4字节的数,现要把该数左移1位,写出完成该操作的程序段。(要求不超过5条指令)9. 写出对存放在DX和AX中的双字长数求负的指令序列。

10. 用其他指令完成和下列指令一样的功能。

(1) REP MOVSB (2) REP STOSB(3) REPNE SCASB (4) REPE CMPSB

12. 编写一程序段,比较两个5字节的字符串OLDS和NEWS,如果OLDS字符串不同于NEWS字符串则执行NEW_LESS;否则顺序执行程序。

13. 已知在N到N+I的存储区中有一组ASCⅡ码字符串(共I+1个),试编写一个汇编语言程序,将此字符串传送到NI到NI+I单元中,并使字符串的顺序与原来的顺序相反。

16. 已知DATA单元为一个16位带符号数的原码形式,试用补码形式表示该数。

17. 在内存的数据段中存放了若干个8位带符号数,数据块的长度为COUNT(不超过255),首地址为TABLE,试统计其中正元素、负元素及零元素的个数,并分别将个数存入PLUS、MINUS和ZERO单元中。

18. 编写程序将ELEMS中的100个字节数据的位置颠倒过来(即第一个字节和第100个字节的内容交换,第二个字节和第99个字节的内容交换……)。程序设计题

2.测定ALPHA字节变量单元中的ASCⅡ码字符,进行如下操作:(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单元中。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务