admin 管理员组

文章数量: 887021


2024年1月12日发(作者:winform仪表盘控件)

一、填空题

1.一个十进制数 35.625其对应的二进制数为 100011。101B 、十六进制数为

23H

2。将 8存放在一个字单元中 , 则该单元中二进制代码是 0008H

3.计算机软件分为两个部分即 系统软件 和 应用软件 而汇编程序属于

系统软件 , 汇编语言应用程序属于 应用软件

4。把汇编语言源程序翻译成计算机能够识别、执行的目标程序的软件称为 汇编程序

5.8086/8088 CPU内部一般用来存放数据的寄存器有 AX BX CX DX

6。8086/8088 CPU内部用来存放段地址寄存器的有 CS DS SS ES

7。逻辑地址由 段地址与偏移地址 组成

8.一个语句的名字项可以是标号或变量 , 在程序中它们两个在书写形式上的主要区别是

标号以冒号结尾 而变量不以冒号结尾

9。 在 PSW 中 , 用以记录当前运算结果特征信息的那些位称为 状态标志位 , 一

般是由 CPU

自动设置。

10.存储器单元与物理地址的关系是 一一对应 ,在一个逻辑段内 , 每个单元对应

的段地址是 相同的 ,而偏移地址是 不同的

11.在 I/O接口中 , 为每个可访问的寄存器分配的地址是 端口地址

12.用以指示当前堆栈栈顶的指针寄存器是 SP

13。机器指令是一组规定计算机的操作类型及相关操作数的 二进制代码

14。 假设执行指令前 BX=5678H, CL=8,指令 ROL BX, CL 执行后 BX 的内容是 7856H

15。一条指令的基本结构一般由 操作码字段 和 操作数字段 两个部分

组成。

16.8086/8088 存储器地址分段时,每个段起始地址的特征是 二进制表示的地址中低四

位都为 0

17。所谓“寻址方式”是指在指令中用以说明操作数所在 地址或位置 的方法

18.在指令中直接给出操作数的寻址方式称为 立即数寻址

19。无符号数和带符号数的两组条件转移指令,每条指令都有完全等效的两个指令助记

符,例如, JL 指令另一个指令助记符是 JNGE

20.8086/8088指令系统中 , 用以描述 (说明 寄存器操作数的寻址方式是 寄存器寻址方

21.设 MASK 为一个变量 , 在“ MOV AX,MASK[SI+BX]”指令中 , 源操作数的寻址方式是 基

址变址寻址方式

22。CPU执行“ JMP BX"指令只改变 2P 内容 ,而不改变 CS 内容。

23。 每次进行串扫描指令 SCAS 时,要进行递增或递减修改的变址寄存器是

DI

24. 段间间接基址 BX 变址 SI 寻址的无条件转移指令是 JMP DW ORD PTR(BX+SI

25。使用“ MUL BX”指令时 , 乘数放在 BX 中 , 被乘数放在 AX 中 , 执行该指令

后结果在 DX-AX 中

26。 执行带符号数字节相乘指令 IMUL BL后, CF=1, OF=1意味着 乘积的高八位不是

低八位的符号扩展

27。在串操作指令中 , 使地址自动加 1或加 2必须使用指令 CLD 将方向标志

DF 置

源串必须在 数据 段中 , 而目的串必须在 附加 段中。

28.若要测试 AL 中操作数的第 0,1,2,7位是否为 0, 根据结果实现条件转移 ,

可使用 TEST

AL 87H

指令.

29.8086/8088 CPU允许最大的存储空间为 1MB, 因此 CPU 的地址总线是 20 位

30. 与 LOOP yeqianyi指令功能等效的两条指令依次是 DEC CX 和 JNE

yeqianyi

31.将 AX 寄存器清零的逻辑指令是 AND AX,0 或 XOR AX,AX

32. 在指令语句操作数项上,引用一个段名,就是获取段地址的 立即 数据

33.执行查表指令 XLAT 时 , 要先将表地址存放在 BX 中 , 将位移量存放在 AL

34.十进制调整指令 DAA 或 AAA 必须放置在 ADD或 ADC 指令之后 , 只对

AL 内容进行修正。

35. 假设执行前 AX=7862H,指令 XOR AX, AX 执行后 AX 中的值是 0

36.指令 CBW 只能实现对寄存器 AL 的内容进行扩展 , 而它当中存放的数据应该是一

带符号 数。

37.比较两个带符号 A 与 B 的大小 , 若 (OF (SF=0,则 A—B 〉0

38。变量的类型属性指的是该变量对应存储单元的 字节数

39。 VAR1 DD 10H DUP(?语句实现留空 40 个字节单元。

40.在源程序中定义一个逻辑段 , 使用 SEGMNT 语句表示一个段的开始 , 用

语句表示一个段的结束.

41.汇编语言源程序中的语句有三种类型 , 它们是宏指令语句 , 指令语句 及 伪

指令语句

42。ARRAY DB 0, 2 DUP(1, 2 , 0, 3汇编时生成的数据依次是 0,1,2,1,2,0,3 43.在指令语句和伪指令语句中常用符号 $ 表示地址计数器的当前值。

44。指令 MOV AX, SEG BUF的执行,是把 BUF的段地址 送到 AX 中。

45。 用 DW 1200H 语句定义的一个字 , 如改用 DB 语句定义时 , 该语句是

DB 00H, 12H

45。如果过程与调用的主程序处在同一代码段 , 这样的过程属性是 NEAR ,与调用

它的主程序处于不同的代码段 , 则该过程属性是 FAR

47.在数据段或代码段中 , 常用伪指令 “ ORG n” 来定义本段的偏移地址初值 ,

该初值的

范围是 0000H—0FFFFH

48。在存储单元 yeqianyi 开始 , 欲保留 100个字长的存储单元 , 应使用的数据定义伪指令

是 yeqianyi Dw100 Dup(?

49. 在存取一个存储器操作数时,段地址必须由 段寄存器 提供。

二、选择题

1。 能够将目标模块或子程序连接起来 , 生成可执行文件的系统程序是 2

DEBUG LINK ● MASM ❍ EDIT

2. 用汇编语言编写的程序称为 2

汇编程序 源程序 ●可执行文件 ❍目标程序

3. 汇编语言源程序文件的扩展名为 4

4。 设 (101 x =(41

16

求 x= 3

6 10 ● 8 ❍ 2

5。 内存某字节单元中存放的二进制代码为 94H, 若将它看作是一个压缩

BCD 码 , 则其对应 的数值为 4

148 —20 ● -108 ❍ 94

6。 当执行 ADD AX, BX 指令后,若 AX 的内容为 4E52H 时,设置的奇偶标志位 PF=0,下 面的叙述正确的是 4

① 表示结果中含 1的个数是奇数 ② 表示结果中含 1的个数是偶数

③ 表示该数是奇数 ④ 表示结果中低 8位中含 1的个数是奇数 7。 要输入端口

1234H 中的 8位数据,其指令应是 2

① MOV DX,1234H ② MOV DX,1234H

OUT DX,AL IN AL,DX

③ IN AX,1234H ④ OUT DX,1234H

8。 下列寄存器组中,在访问存储器操作数地址时,可以提供偏移地址的是 1 ①

BP、 BX 、 SI 、 DI ② AX、 BX 、 CX 、 DX

③ SP、 IP ④ BX、 SI 、 DI 、 DS

9。 IBM PC机的存储器单元的物理地址是用 2 表示的。

① 5位十进制数 ② 20位无符号二进制数

③ 4位十六进制数 ④ 20位带符号二进制数

10。 能够与 SS 寄存器组合形成堆栈区物理地址的寄存器是 2

① BX ② BP ③ IP ④ SI

11. 若 AX=—15要得到 AX=15应执行的指令是 1

① NEG AX ② NOT AX

③ INC AX ④ DEC AX

12。 取指令的物理地址表达式为 4

① (DS×10H+(BX ② (SS×10H+(SP

③ (ES×10H+(SI ④ (CS×10H+(IP

13。 可以作为一个段的起始地址的是 3

① 21002H ② 00104H ③ 01000H ④ F0008H

14. 在标志寄存器 FLAGS 中 , 用以记录当前运算结果是否为零的标志是 4

① CF ② OF ③ SF ④ ZF

15。8086/8088对 I/O端口寻址范围是 3

① 16KB ② 32KB ③ 64KB ④ 1MB

16。8086/8088系统执行传送指令 MOV 时 1

③ 影响 SF 符号标志 ④ 影响 CF 进位标志

17。 设物理地址 (21000H=20H,(21001H=30H,(21002H=40H, 如从地址

21001H 中取出 一个字的内容是 4

① 2030H ② 3040H ③ 3020H ④ 4030H

18. 若内存中有 100个字节数据区 , 其首地址为 10210H, 那么其最末一个字节单元的地址 是 3

① 10274H ② 10310H ③ 1021H:0063H ④ 1021H:0064H

19. 假设存储器中从 7462H 单元开始的四个相邻字节单元中的内容依次是

32H , 46H , 52H , OFEH ,则存放字数据 0FE52H 的字地址是 3

① 7462H ② 7463H ③ 7464H ④ 7465H

20。 将 —1存入 AX 中 , 其内容为 1

① FFFFH ② —0001H ③ FFH ④ 8001H

21. 在段内寻址时 , 可以提供偏移地址的寄存器组是 2

① AX,BX,CX,DX ② BX,BP,SI,DI

③ SP,BP,SI,DI ④ DS,ES,CS,SS

22。 将 AX 的内容存入堆栈正确的指令是 3

① MOV [SP],AX ② POP AX

③ PUSH AX ④ MOV SS:[SP],AX

23. MOV AL,79

ADD AL,0B1H

上面指令执行后 , 设置的标志位 CF 和 OF 的值是 4

① CF=0,OF=1 ② CF=1,OF=1

③ CF=0,OF=0 ④ CF=1,OF=0

24。 能够将 BL 的低四位清“ 0”的指令是 1

① AND BL,0F0H ② OR BL,00H

③ OR BL,0F0H ④ AND BL,00H

25. 已知 AX 、 BX 中均为带符号数,当进行字相除时,下面指令或指令序列正确的是 2 ① DIV BX ② CWD

IDIV BX

③ XOR DX,DX ④ CBW

DIV BX IDIV BX

26. 没有语法错误的输入指令是 1

① IN AL, 30H ② IN 30H, AL

③ IN DX, AL ④ IN AL, [BX]

27。 设 (AL=63H (BL=29H 执行下面指令后

DAS

AX的内容是 3

① (AX=0304H ② (AX=0034

③ (AX=0034H ④ (AX=0304

28. 算术右移指令 SAR 和逻辑右移指令 SHR ,两条指令执行结果完全相同的条件是 1 ① 目的操作数最高位为 0 ② 目的操作数最高位为 1

③ 目的操作数为任意情况 ④ 无论什么情况都不可能完全相同

29. 设 OP1、 OP2是变量 , 下面哪条指令是非法的 2

① CMP AX,OP1 ② CMP OP1,OP2

③ CMP BX,OP2 ④ CMP OP,0FFH

30。在执行十进制调整指令前 , 必须先把需要调整的数送入 1

① AL ② AX ③ DL ④ DX

31. 下列指令中操作数在代码段中的是 1

① MOV EAX,123400FEH ② ADD EBP,EAX

③ SUB [BX],DI ④ INC WORD PTR[BX]

32. 设 AL=0A8H, CL=23H,执行乘法指令 MUL CL后,标志位 OF , CF 的值分别是 1 ① OF=1, CF=1 ② OF=1, CF=0

③ OF=0, CF=1 ④ OF=0, CF=0

33. 设 DF=0, SI=20H, CX=10,执行 REP LODSW指令后, SI 中的内容是 3

① 20H ② 30H ③ 34H ④ 40H

34。 在串操作指令中 , 使用重复操作前缀不正确的是 2

① REP MOVSB ② REP LODSB

③ REP STOSB ④ REPNZ SCASB

35。 设有变量 VAR 和标号 LAB ,不正确的指令是 3

① LEA AX, VAR ② LEA AX, LAB

③ JMP NEAR PTR VAR ④ JMP SHORT LAB

36。 指令 CALL DWORD PTR VALUE 属于 4 寻址方式。

① 段内直接调用 ② 段内间接调用

③ 段间直接调用 ④ 段间间接调用

37. 用 REPE SCASB指令对字符串进行扫描,如 CX ≠ 0时,扫描结束,那么表示 4

① 在字符串中遇上第一个 AL 中指定的字符

② 在字符串中有一个 AL 中指定的字符

③ 在字符串中有一个不是 AL 中指定的字符

④ 在字符串中遇上第一个不是 AL 中指定的字符

38。 指令 LOOPNE LOP的循环条件是 2

① (ZF=0,(CX=0 ② (ZF=0,(CX≠ 0

③ (ZF=1,(CX=0 ④ (ZF=1,(CX≠ 0

39。 累加器 AX 内的内容为 01H, 执行 CMP AX,01H指令后 ,① 0H ② 1H ③ -2H ④ 2H

40。 指令执行后可能改变了累加器内容的是 3

① OR AL,00H ② AND AL,0FFH

③ XOR AL,AL ④ TEST AL,0FFH

41. 在指令 PUSH AX的执行过程中 , 要进行 1 操作

① (SP—2 SP ② (SP+1 SP

③ (SP-1 SP ④ (SP+2 SP

(AX= 2

42。 设 A 、 B 均为无符号数 , 若 A ≥ B 则转向 VALUE 处 , 给出错误的条件转移指令是 4 ① JNB VALUE ② JAE VALUE

③ JNC VALUE ④ JNS VALUE

43. 设 SP 的初值为 1000H ,执行指令 PUSH AX后 SP 的值是 3

① 0FFFH ② 1001H ③ 0FFEH ④ 1002H

44. 下列指令中 , 非法的是 1

① MOV AL,DX ② SHR DX,CL

③ IN AL,DX ④ OUT 02,AL

45。 下列指令执行后对源操作数和目的操作数均无影响的是 4

① MOV [BX+2],AX ② SUB AX,2476H

③ SBB [SI],BX ④ CMP AX,BX

46。 设 AX 中存放的是带符号数 , 对其进行除 8操作 , 能够完成此项功能的指令序列是 4 ① SHR AX,2 ② SAR AX,2

SHR AX,2 SAR AX,1

③ MOV CL,3 ④ MOV CL,3

SHR AX,CL SAR AX,CL

47. 设 AL 中是无符号数 , 试将 AL 内容扩展后送入 BX 中 , 能够完成此项功能的指令序列 是 2

① CBW ② MOV AH,0

MOV BX,AX MOV BX,AX

③ MOV AH,0FFH ④ MOV BL,AL

MOV BX,AX MOV BH,AH

48. 若 (AX=1234H,(DX=89ABH,执行 XCHG AX,DX指令后 ,AX 、 DX 中的内容应是 3 ① (AX=1234H (DX=1234H ② (AX=12ABH (DX=8934H

③ (AX=89ABH (DX=1234H ④ (AX=89ABH (DX=89ABH

49。(CF=1时转移到目标地址的条件转移指令是 2

① JNC ② JC ③ JZ ④ JS

50. 汇编语言源程序,可以是 4

① 可以直接由机器执行

② 必须由编译程序生成目标程序才能执行

③ 必须由解释程序生成目标程序才能执行

④ 必须由汇编程序汇编成目标程序才能执行

51. 完成 (BX—(CX AX 的错误指令是 2

① SUB BX,CX ② XCHG AX,CX

MOV AX,BX SUB AX,BX

③ XCHG AX,BX ④ MOV AX,BX

SUB AX,CX SUB AX,CX

52. 下列指令中操作数在代码中的是 2

① MOV AL,[100H] ② MOV AL,00H

③ MOV [20H],AL ④ MOV AL,BL

53. 下列指令中,影响或修改 PSW 内容的指令是 2

① PUSHF ② POPF ③ JCXZ ④ LOOPZ

54. 下列有语法错误的语句是 3

① DB 12H ② DW 4567H

③ DD ‘ ABCD ’ ④ DB ‘ ABCD '

55。AL 、 BL 中都是无符号数,若 (AL>(BL时,转到 NEXT 处。在执行 CMP

AL, BL 指令 后应选用的指令是 1

① JNBE NEXT ② JNLE NEXT

③ JBE NEXT ④ JLE NEXT

56. 使状态标志位 CF 清零的错误指令是 4

① CLC ② XOR AX,AX ③ SUB AX,AX ④ MOV CF,0

57。 执行 POP AX 指令正确的 CPU 操作过程是 3

① i(SP+1 SP,((SP AL ② i (SP+1 SP,((SP AH

ii(SP+1 SP,((SP AH ii (SP+1 SP,((SP AL

③ i((SP AL,(SP+1 SP ④ i((SP AH, (SP+1 SP

ii((SP AH,(SP+1 SP ii((SP AL, (SP+1 SP

58. MOV BX, 0FFFEH

NEG BX

NOT BX

上述三条指令执行后, BX 中的内容是 3

① —1 ② -2 ③ —3 ④ —4

59. ORG 200H

BUF DB 12H, 34H

MOV AX, WORD PTR BUF

上述指令语句执行后, AX 中的内容是 1

① 3412H ② 1234H ③ 0200H ④ 0012H

60. 执行 NEG 指令对状态标志位 CF 有影响,其规则是 3

① 对正数求补时 ,(CF=0 ② 对负数求补时 ,(CF=0

③ 对非零数求补时 ,(CF=1 ④ 对零求补时 ,(CF=1

61. 已知 AL 内容为压缩 BCD 码,对它进行加“ 1"操作,其中错误的指令序列是

3 ① INC AL ② ADD AL,1

DAA DAA

③ ADC AL,1 ④ STC

DAA ADC AL,0

DAA

62. 设数据段有:DA1 DB XX;是任一数据

DA2 DB 0FEH

则下列两条指令:MOV DL, DA1

OR DL, DA2

执行后, DL 中的内容可能是 1

① 0FFH或 0FEH ② 只能是 0FEH

③ 只能是 0FFH ④ 只能是 01H

63. DB1 DB 8 DUP(2 DUP(3 , 3 DUP(2

MOV AX, WORD PTR DB1[04H]

上面指令执行后, AX 的内容是 1

① 0302H ② 0203H

③ 0202H ④ 0303H

64. 伪指令 DA1 DB 04H DUP(3 DUP(2 , 2 DUP(3 在数据区中能构成 0203H 操作 数共有 3

① 7个 ② 4个 ③ 3个 ④ 2个

65。 设 BUF1和 BUF2均为变量名,操作数部分合法的指令是 4

① ADD AL,BUF1*BUF2 ② ADD AL,BUF1/BUF2

③ ADD AL,BUF1+BUF2 ④ ADD AL,BUF2-BUF1

66。MOV BL,80H

MOV CL,2

SAR BL,CL

上述指令序列执行后,结果是 4

① (BL=40H ② (BL=20H

③ (BL=0C0H ④ (BL=0E0H

67。 已知 (SP=1FFFH,执行下列指令后, (SP= 4

POPF

PUSH AX

① 2000H ② 2002H ③ 1FFCH ④ 1FFFH

68。 设 NUM1 EQU 100

NUM2=64H

下面指令执行后,使 BL 中全为 1的指令是 1

① MOV BL, NUM1 EQ NUM2 ② MOV BL, NUM1 LT NUM2 ③ MOV BL,

NUM1 NE NUM2 ④ MOV BL, NUM1 GT NUM2

69。 设 (AL=04H,(BL=0F8H,执行 MUL BL指令后,结果为 1

① (AX=03E0H ② (AX=0FEE0H ③ (AX=0032H ④ (AX=00E0H

70。 ORG 100H

NUM EQU 8042H

DA1 DB 56H

MOV BX, OFFSET DA1

上述程序段执行后 BX 中的值是 2

① 56H ② 100H ③ 101H ④ 102H

71。 设 (AL=63H (BL=29H 执行下面指令后

SUB AL,BL

DAS

AX的内容是 3

① (AX=0304H ② (AX=0034

③ (AX=0034H ④ (AX=0304

72. 实现对 AX 中的带符号数除以 2的指令是 2

① IDIV 2 ② SAR AX,1 ③ ROR AX,1 ④ SHR AX,1

73。MOV AL,—1

NEG AL

XOR AL,65

上述程序段执行后, AL 的内容是 1

① 40H ② 64H ③ 01H ④ 61H

74。 设数据段中定义语句

DA1 DB 12H, 34H

DA2 DW 12H, 34H

下面有语法错误的语句是 2

① BUF1 DW DA1 ② MOV DA1+1, AX

③ MOV BYTE PTR DA2+1, AL ④ MOV WORD PTR DA1, AX

75. DA1 DW 2A05H

DA2 DB 0FAH

MOV AL,BYTE PTR DA1

SUB DA2,AL

上述指令执行后, DA2中的内容是 3

① 0DAH ② 0FAH

③ 0F5H ④ 0D0H

76. 在执行 POP [BX]指令,寻找目的操作数时,段地址和偏移地址分别是 1 ① 在

DS 和 BX 中 ② 在 ES 和 BX 中

③ 在 SS 和 BX 中 ④ 在 CS 和 BX 中

77。MOV AL, 79

ADD AL,0B1H

执行上述指令后,标志位 CF 和 OF 的值是 3

① (CF=0,(OF=0 ② (CF=0,(OF=1

③ (CF=1,(OF=0 ④ (CF=1,(OF=1

78。DA1 EQU WORD PTR DA2

DA2 DB 0ABH, 0CDH

SHL DA1, 1

SHR DA2, 1

上述两条指令执行后, DA2中两字节单元内容分别是 2

① 0ABH, 0CDH ② 2BH, 9BH

③ 4DH, 57H ④ 56H, 9BH

79。 TEST VAR,55H

JE ZER0

ZER0:„„

上述程序段执行 JE ZER0指令后能够产生分支的条件是 4

① VAR=0 ② VAR=55H

③ VAR中第 1, 3, 5, 7位均为 0 ④ VAR中第 0, 2, 4, 6位均为 0

80. XOR AX,AX

MOV AL,90H

CWD

执行上述指令后,结果为 4

① (DX=0000, (AX=FF90H ② (DX=FFFFH,(AX=0090H

③ (DX=FFFFH,(AX=FF90H ④ (DX=0000, (AX=0090H

81. 在程序采用 DOS 系统功能调用退出用户程序时,在使用 INT 21H指令前,应选用 3 指令

① MOV AX,4CH ② MOV AL,4CH

③ MOV AH,4CH ④ RET

82. 设 (AH=0,(AL=6H,(BL=9H, 执行下面指令:

ADD AL, BL

AAA

之后,其结果是 1

① (AH=1,(AL=5 ② (AH=0,(AL=0FH

③ (AH=1,(AL=15 ④ (AH=0,(AL=5

83。STR1 DB ‘ BeiJing 2009'

SCA DB ‘ J ’

LEA DI, STR1

MOV AL, SCA

MOV CX, 0CH

CLD

REPNE SCASB

NEXT :„„

程序运行到 NEXT 时 CX= 1 ZF=

① 8和 1 ② 7和 1 ③ 10和 0 ④ 10和 1 84。VAR1 DW 1234H,89,255,—2,0AH

VAR2 DB 34,78H,44,22,19,—12

-

MOV AH,23H

LEA BX,VAR1+4

MOV AL,BYTE PTR [BX+1]

MOV SI,WORD PTR VAR2+3

程序段执行后 AX= 2300H SI= 1316H

① AX=23FEH SI=1317H ② AX=23FEH SI=1316H

③ AX=23FFH SI=1316H ④ AX=23FFH SI=1317H

85. 测试 BL 的内容是否与数据 5AH 相等,若相等则转移到 NEXT 处,可实现的方法是

① TEST BL,5AH ② XOR BL,5AH

JZ NEXT JZ NEXT

③ AND BL,5AH ④ OR BL,5AH

JZ NEXT JZ NEXT

86. 使用 DOS 系统功能调用时,子程序编号 (功能号 应先放入 1 寄存器中。

① AH ② AL ③ DL ④ AX

87. 设 (AL=03H,能够完成将 AL 中的低 4位代码变反,而其高 4位代码不变的指令是 2 ① AND AL, 0FH ② XOR AL, 0FH

③ OR AL, 0FH ④ SUB AL, 0FH

88。 下列指令能够使 AX 中的数据必为奇数的是 3

① AND AX,0001H ② XOR AX,0001H

③ OR AX,0001H ④ ADD AX,0001H

89. 下列指令中有语法错误的是 1

① MOV CS,AX ② MOV DS,AX

③ MOV SS,AX ④ MOV ES,AX

90。 BUFF单元开始,连续存放了十个字节数据,欲找出与 AL 中内容不同的数,并将不 同数据的地址偏移量送 ADR 单元,应选用的指令序列是 3

① REPZ CMPSB ② REPNZ CMPSB

JZ K1 JZ K1

MOV ADR,DI MOV ADR,DI

K1: „„ K1: „„

③ REPZ SCASB ④ REPNZ SCASB

JZ K1 JNZ K1

DEC DI DEC DI

MOV ADR,DI MOV ADR,DI

K1: „„ K1: „„

91。 已知 AX=0FFFFH, DX=0001H

MOV CX, 2

LOP:SHL AX, 1

RCL DX, 1

LOOP LOP

上述程序段执行后 DX= 4 AX=

① DX=0006H AX=0FFFDH ② DX=0006H AX=0FFFCH

③ DX=0007H AX=0FFFDH ④ DX=0007H AX=0FFFCH

92。 ARRAY DW 6,9,$+4,10H,$+4

MOV AX,ARRAY+4

设变量 ARRAY 的偏移量是 0084H ,上述指令执行后 AX 中的内容是

① 0009H ② 008CH ③ 0090H ④ 0010H

93. 已知 AX=7865H, BX=89AAH

CLC

ADD AX, BX

OR BX, AX

RCR AX, 1

RCL BX, 1

程序执行后, AX= 3 BX= CF=

① (AX=0107H (BX=175FH (CF=1 ② (AX=0106H (BX=175EH (CF=1 ③

(AX=0107H (BX=175EH (CF=0 ④ (AX=0106H (BX=175FH (CF=0

94。 设 (SS=338AH,(SP=450H,执行 PUSH BX和 PUSHF两条指令后, 堆栈顶部的物理地 址是 1

① 33CECH ② 33CF2H

③ 33CF4H ④ 33CE8H

95。 不能表示存储单元逻辑地址是 4

① 变量名 ② 标号名 ③ 段名 ④ 符号名

96。VAY1 DW ?

VAY2 EQU Byte PTR VAY1

经过以上定义后 ,VAY1与 VAY2之间的关系是

① 段地址相同 , 偏移地址不同 ② 段地址不同 , 偏移地址相同

③ 段地址不同 , 偏移地址不同 ④ 段地址相同 , 偏移地址相同

97。 不合法的变量类型是 3

① 一字节 ② 二字节 ③ 三字节 ④ 四字节

98. 在存储器中定义 20个字长的数据缓冲区的伪指令是 2

① Buffer EQU 20 ② Buffer DW 20 DUP(?

③ Buffer DW 20 ④ Buffer DB 20 DUP(?

99。 下列操作中允许段超越前缀的是 1

① 取指令 ② 存目的串

③ 以 BP 为基址存取操作数 ④ 堆栈操作

100. 下面程序段是判断两个存储单元是否同为负数,若是,则 AX 置全 1,否则

AX 置 0

试在空白处各填上适当的条件转移指令 (两空白处要利用不同的标志位选用不同

的条件转移指令 。

VAR1 DW ××××

VAR2 DW ××××

MOV AX, VAR1

MOV BX, VAR2

XOR AX, BX

1

TEST BX, 8000H

MOV AX, 0FFFFH

NEXT :MOV AX, 0

① JNS NEXT ② JS NEXT

JE NEXT JE NEXT

③ JC NEXT ④ JNC NEXT

JZ NEXT JNZ NEXT

101. VARY1 EQU BYTE PTR VARY2

VARY2 DW 0ABCDH

SHL VARY1,1

SHR VARY2,1

上述两条指令执行后 ,VARY2字存储单元内容是 3

① 0ABCDH ② 0BCDEH ③ 55CDH ④ 0AB55H

102。DEC2 DB ‘ 56'

XOR DI, DI

MOV BL, DEC2[DI+1]

AND BL, 0FH

MOV AL, DEC2[DI]

AND AL, 0FH

MOV DL, 10

MUL DL

ADD AL, BL

上述程序段执行后, AL= 3 BL=

① AL=56 BL=7 ② AL=55 BL=6 ③ AL=56 BL=6 ④ AL=55 BL=7

103. 设 (SP=0028H,执行段内返回指令 RET 6后, SP 的内容是 3

① 0036H ② 0022H ③ 0030H ④ 0020H

104. 汇编语言语句格式中 , 根据对符号名的规定 , 错误的解释是 2

① 名字的第一个字符只可以是大小写英文字母及 ? 、 @、 _等

② 名字的第一个字符可以是数字

③ 名字的有效长度≤ 31个字符

④ 名字的最后一个字符可以是数字

105。 下列语句中能实现留空 8个字节单元的语句是 4

① DATA1 DT ? ② DATA2 DW ?

③ DATA3 DD ? ④ DATA4 DQ ?

106。 已知 AX=0078H, BX=0408H

SHR BX, 1

AND BX, 0F0FH

MOV CX, 4

LOP :XCHG BH, BL

DIV BL

SAL AX, 1

LOOP LOP

上述程序段执行后, AX= 2 BX=

① 30和 0402H ② 30和 0204H

③ 35和 0400H ④ 35和 0400H

107。 yeqianyi DW 10H DUP(3 DUP(2,50,3,5

上述语句汇编后 , 为变量 yeqianyi 分配的存储单元字节数是 2

① 80H ② 100H ③ 50H ④ 124H

108. 在汇编语言源程序中 , 每个语句可以由四项组成 , 如语句要完成一定功能 , 那么该 语句中不可省略的项是 2

① 名字项 ② 操作项 ③ 操作数项 ④ 注释项

109。 在汇编语言源程序中 , 对 END 语句的叙述正确的是 3

① END语句是一可执行语句 ② END语句表示程序执行到此结束

③ END语句表示源程序到此结束 ④ END语句在汇编后产生机器代码

110。 设数据段中有 :

DATA1 DB 10H,00H

DATA2 DW 20H,30H

在下面指令中 , 使用变量有错误的是 1

① MOV DATA1,AX ② MOV BYTE PTR DATA2,AL

③ ARRD DW DATA1 ④ MOV WORD PTR DATA1,AX

111。 下面对伪指令语句的说明 , 正确的是 3

① 汇编程序将伪指令翻译成机器代码。

② 伪指令在执行时完成其功能.

③ 伪指令的功能是指示、引导汇编程序在汇编过程中所完成的不同操作。

④ 当汇编结束后 , 目标程序中仍保留伪指令.

112。 条件转移指令 JNBE 产生转移的条件是 1

① CF=0 AND ZF=0 ② CF=0 AND ZF=1

③ CF=1 AND ZF=0 ④ CF=1 AND ZF=1

113. 设定义 BUF DW 100 DUP(0,则指令“ MOV CX,SIZE BUF”的等效指令是 2

① MOV CX,100 ② MOV CX,200

③ MOV CX,400 ④ MOV CX,100 DUP(0

114。 AR1 DB‘ ABCDEFGH '

AR2 DB O

MOV AH,1

INT 21H

AND AL,0FH

DEC AL

LEA BX,AR1

XLAT AR1

MOV AR2,AL

假设键盘输入数字 4, 则执行后 (AR2= 1 ; 执行后 CF=

① 44H(或‘ D ’ ,0 ② 43H(或‘ C ’ ,1

③ 44H(或‘ D ’ ,1 ④ 43H(或‘ C ’ ,0

115。ADR DW 1234H,5678H

LEA SI,ADR

LDS BX,ADR

设变量 ADR 的偏移地址是 100H ,上述两条指令执行后:SI= 2 , DS= ① 100H

和 1234H ② 100H 和 5678H

③ 000H 和 1234H ④ 000H和 5678H

116. NUMBER EQU 81H

DATA DB 49H

XOR DATA,NUMBER

上述语句执行后 DATA 中的内容是 3

① 81H ② 49H ③ C8H ④ 89H

117。 现有一数据定义伪指令在 DA 单元定义一数据 :

DA DW 0123H

能与上述语句等效的语句是 2

① MOV WORD PTR DA,‘ 123H ' ② MOV DA,123H

③ MOV Byte PTR DA,0123H ④ MOV DA,‘ 123H ’

118. DATA SEGMENT

DA1 DB 64H DUP(?

DA2 DW 0100H,0200H

DA3 DW DA2

MOV SI,DA3

上述指令执行后 ,SI 中的内容是 3

① 100H ② 200H ③ 100 ④ 300H

119. 一数据段定义如下 :

DATA SEGMENT

ORG 0134H

DA DB 12H,63,26H

ARRD DW DA

DATA ENDS

能够使 BX 中的数据为奇数的语句是 4

① MOV BX,ARRD ② MOV BL,DA+2

③ MOV BX,WORD PTR DA ④ MOV BL,DA+1

120. 已知 DX=0A476H, CX=0203H, CF=1

OR DX, DX

RCR DX, CL

XCHG CH, CL

RCL DX, CL

上述程序段执行后 DX= 2 CF=

① 523BH 和 1 ② 523BH和 0

③ 423CH 和 1 ④ 423CH 和 0

121。 在同一程序段中,定义下面伪指令,错误的是 4

① PORT1 EQU AL ② PORT2=AL

③ PORT2=2A50H AND 0FFH ④ PORT3 EQU 2A50H

PORT3 EQU 2A50H AND 0FFH

122. 设 ADRT=100H,不符合语法规则的语句是 3

① MOV AX,ADRT ② MOV AX,[ADRT+SI]

③ MOV [ADRT],AX ④ MOV ADRT[SI],AX

123。 指出下面哪组伪指令使用是错误的 3

① DAT Segment ② Extra Segment ③ Stack Segment

DAT Ends Extra Ends Stack Ends

124. MOV AX, 8

SHL AX, 1

SHL AX, 1

MOV BX, AX

MOV CL, 2

SHL AX, CL

ADD AX, BX

上述程序段执行后, BX= 1 AX=

① 0020H 和 00A0H ② 0028H和 00A0H

③ 0028H 和 00C8H ④ 0020H和 00C8H

三、程序填空

1。 在以 BCD 为首地址的字节单元中存放了 3个压缩 BCD 码 x 、 y 、 z 本程序用以计算 x+y—z,并将结果存放在 SS 字节单元中.试在程序的空格处填入适当的指令。 BCD DB x, y , z

SS DB ?

MOV AL, BCD

ADD AL, BCD+1

DAA

SUB AL, BCD+2

DAS

MOV SS, AL

2。 DA1 DB ‘ 01234’

DA2 DB 5 DUP(0

MOV SI,0

MOV CX,5

LOP: MOV AL,DA1[SI]

ADD AL,11H

OR AL,01H

MOV DA2[SI],AL

INC SI

LOOP LOP

试问 : (1 程序段执行后, DA2各字节中的数据是 41H,43H,43H,45H,45H

(2 程序中 MOV AL, DA1[SI]指令的源操作数寻址方式是 寄存器相对寻址

3。 下面程序段用以统计 AX 中为“ 0"的位数,统计结果放在 CONT 单元中,试在程序 段的空格处填上缺少的指令.

MOV CONT, 0

MOV CX, 16

NEXT: SHR AX, 1

JC DWE

INC CONT

DONE: DCE CX

JNZ NEXT

4. 下面程序段用以统计 SUM 字单元中含有多少个 “ 5” 统计结果存放在 AL 中,

试在程 序段的空格处填上缺少的指令。

XOR AX, AX

NEXT: CMP SUM, 5

JL DONE

SUB SUM,5

INC AC

JMP NEXT

DONE:

5. 在主程序中,采用调用子程序方式求一个字数组中的元素之和,并将之送入SUM 单 元。试在下面程序段中填补上空缺的指令。

MOV BX, OFFSET ARRAY

MOV CX,NN

CALL yeqianyi

yeqianyi PROC

PUSH AX

XOR AX,AX

NEXT: ADD AX,[BX]

ADD BX,2

LOOP NEXT

MOV SUM,AX

POP AX

RET

yeqianyi ENDP

6. 在主程序中, 采用调用子程序方式将一组非压缩 BCD 在屏幕上显示出来。

试在下面 程序段中填补上空缺的指令。

MOV BX,OFFSET feiyabcd

MOV CX,NN

CALL,DISPLAY

DISPLAY PROC

PUSH DX

LOP: MOV DL,[BX]

ADD DL,30H

MOV AH,02H

INT 21H

INC BX

LOOP LOP

RET

DISPLAY ENDP

7。BUF DW 1, 0, 0AB1CH , 582H , 9,LEA DI, BUF

MOV CX, 8

MOV AX, 9

, 3A04H , 9 0

CLD

REPNZ SCASW

JNZ K1

SUB DI, OFFSET BUF

MOV DX, DI

SHR DX, 1

ADD DL, 30H

MOV AH, 2

INT 21H

K1:„„

上述程序执行后 (1程序完成的功能是 在 BUF 中找出第一次出现 9的元

素 ,显示输出的值是 5

8. 在以 String 为首地址的内存区域存放了一个字符串 , 下面程序段的功能是实现将该 串中所有字母字符依次送入 BUFF 缓冲区 , 试在程序中填补上空缺的指令。

String DB ‘ 123ABC051AF „„ 049ADVWS ’

N EQU $- String

BUFF DB N DUP(?

MOV CX,N

MOV BX,0

MOV SI,0

yeqianyi: CMP String[BX], ‘ A ’

JB NEXT

CMP String[BX], ‘ Z ’

JA NEXT

MOV AL,String(BX

MOV BUFF[SI],AL

INC SI

NEXT: INC BX

LOOP yeqianyi

HLT

9。 下面程序段是将 BUFF 单元的绝对值送入 DAR 单元 , 请将空白处各填上一条指令。 BUFF DW ××××

DAR DW ?

MOV AX, BUFF

TEST AX,8000H

JZ NEXT

NEG AX

NEXT: MOV DAR,AX

四、编程题

1. 编一程序段将 BUF 字节单元中的数拆成高低四位, 并且将分离出的高四位和低四位分 别放于 BUF+1和 BUF+2字节单元的低四位上。 D:ZQL>type exp11。asm

DATA SEGMENT BUF DB 34H,?,? CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV

AL,BUF MOV CL,4 SHR AL,CL MOV BUF+1,AL MOV AL,BUF AND AL,0FH

MOV BUF+2,AL MOV AH,4CH INT 21H CODE ENDS END START

2。 编制一子程序,将 AL 中一位十六进制数转换为对应的 ASCII 码并用 2号

DOS 功能调用 显示出来,输入参数:被转换的十六进制数已在 方法一: D:ZQL〉type CODE SEGMENT ASSUME CS:CODE START:MOV AL,0DH

CALL Liuweipei MOV AH,4CH INT 21H Liuweipei PROC CMP AL,10

JC K1 ADD AL,7 K1: ADD AL,30H MOV DL,AL MOV AH,2 INT 21H

RET Liuweipei ENDP CODE ENDS

END START

3。 用字符串指令编制一程序段 , 把以 DAT1为首地址的数据区中的 50个字节数据依次传送 到以 DAT2为首地址的数据区中。 要求 :在程序中按地址递增方式进行数据传送。 CLD

MOV CX,50 LEA SI,DAT1 LEA DI,DAT2 REP MOVSB

4。 在以 Block 为首地址的字节单元中, 存放了 06计算 (1班的学生考试成绩。 试编制一程 序,利用学生的序号来查表得到该学生的成绩,设学生的序号在

NUMBER 单元,查表结 果存入 RESULT 单元中. DATA SEGMENT

Block DB X1, X2, X3, „„, X 50 NUMBER DB X RESULT DB ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

LEA BX, Block

MOV AL, NUMBER XLAT

MOV RESULT, AL MOV AH,4CH

INT 21H

CODE ENDS

END START 5。 在南昌市的湖坊乡, 约有人口 45000 , 试编写一程序统计一下该乡超过 100岁以上的老 人有多少,并将统计结果存放在 SUM 单元中。

DATA SEGMENT

AGE DB 25,31,6,101,90,71,116, CONT EQU $-AGE SUM DB ?

DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

MOV CX,CONT MOV BX,0 LOP: CMP AGE[BX],100 JB NEXT INC SUM

6。 设有 DX:AX构成一个 32位数据 , 从 AX 的低位 (第 0位 开始 , 逐位向高位和 DX 置 1, 置 1的个数由 CX 的内容确定 ( 已知 CX<32 。试编制一程序段 ,

实现上述要求. XOR AX,AX

LOP: STC RCL AX,1 RCL DX,1 LOOP LOP

7. 编写程序段,用 DOS 的 1号功能调用通过键盘输入一字符,并判断输入的字符。如字 符是“ Y ” ,则转向 YES 程序段;如字符是“ N " ,则转向 NO 程序段;如果是其它字符, 则转向 DOS 功能调用,重新输入字符. (考生勿需写出源程序格式,只需写出与试题要 求有关的指令序列 KEY:MOV AH,1 (YES和 NO 分别是两程序段入口处的标号 INT 21H

CMP AL,‘ Y ’ JE YES

CMP AL,‘ N ’ JE NO JMP KEY

8。 在以 STRING 为首地址的存储区域存放了一个字符串 , 串的长度为 否有字符 $,若有将 SIGN 单元置 1, 反之 , 将 SIGN 单元置 0(列

(1 用比较条件转移指令实现. (2用重复操作前缀串搜索指令实现.

(1 MOV CX,50 (2 MOV CX,50 MOV BX,0 LEA DI,STRING N: CMP

STRING[BX],’ $’ CLD

JZ DONE MOV AL,' $’

汇编语言程序设计 综合复习 INC LOOP MOV JMP DONE: MOV EXIT0: HLT

BX N SIGN,0 EXIT0 SIGN,1 DONE: EXIT0: REPNE JZ MOV JMP MOV HLT

SCASB DONE SIGN,0 EXIT0 SIGN,1 …… 9。 从键盘接收一个 4 位十进制数据,并将其存入 ASCII 缓冲区,若输入出错,则调用子程 序输出出错信息,提示重新输入,试编写一程序完成上述功能. DATA SEGMENT ASCII DB 4 DUP(? SIGN DB

‘Input error,Repeat! $’ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA DONE: MOV DS,AX LEA SI,ASCII

OUTPUT MOV CX,4 NEXT: MOV AH,01H INT 21H CMP AL,30H JB DONE CMP

AL,39H JA DONE OUTPUT MOV [SI],AL CODE INC SI LOOP NEXT MOV

AH,4CH INT 21H 和打印出的第 7 章 程序设计题一样! 若输入:3456 SI CALL JMP

PROC PUSH LEA MOV INT POP RET ENDP ENDS END OUTPUT NEXT ASCII

33H 34H 35H 36H CX DX,SIGN AH,09H 21H CX START 源程序: DATA

SEGMENT M1 DB ×× M2 DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA 共 28 页 第 26 页 10.编写一完整源程序,将 M1 中 的二进制数按位倒排送 M2 中,即 M1 第 0 位送 M2 第 7 位,M1 第 1 位送 M2 第 6 位,依次类推。 数据段如下: DATA M1 M2 DATA SEGMENT DB DB

ENDS YY;任一字节数 ?

汇编语言程序设计 综合复习 MOV DS,AX MOV CX,8 MOV AL,M1 XOR

AH,AH LOP: SAL AL,1 RCR AH,1 LOOP LOP MOV M2,AH MOV AH,4CH INT

21H CODE ENDS END START D7 M1: D0 1 0 1 0 D7 1 0 1 1 D0 M2: 1 1 0 1 0 1 0 1

11。在数据段中,WEEK 是星期一~星期日的英文缩写,DAY 单元中有数 1~7(1 表示星期 一,7 表示星期日: WEEK DAY DB ‘MON', ‘TUE’, ‘WED', ‘THU’,

‘FRI’, ‘SAT’, ‘SUN’ DB X ; 数字 1~7 试编写一源程序, 根据 DAY 的内容用单个字符显示功能调用(2 号功能去显示对应的英 文缩写. 源程序: DATA SEGMENT

WEEK DB ‘MON’, ‘TUE’, ‘WED’, ‘THU’, ‘FRI’, ‘SAT’, ‘SUN’ DAY DB X

DATA ENDS LOP: MOV DL,WEEK[BX] CODE SEGMENT MOV AH,02H

ASSUME CS:CODE,DS:DATA INT 21H START:MOV AX,DATA INC BX MOV

DS,AX LOOP LOP XOR BX,BX MOV AH,4CH MOV BL,DAY INT 21H DEC BL

CODE ENDS MOV AL,BL END START SAL BL,1 ADD BL,AL MOV CX,3 12.试编制一程序段,用串操作指令 STOSB 实现向 DA 数据区依次相间存放字母字符

A,B, C,„„J 和数字字符 0~9,相间顺序是:A,0,B,1,C,2,„,I,8,J,9(设 DA 数据区所在段 已由 ES 指向 源程序: MOV MOV LEA MOV AL, ‘A’ AH, ‘0’

DI,DA CX,20 共 28 页 第 27 页 DI ES DA A 0

汇编语言程序设计 综合复习 CLD LOP:STOSB; (DI INC XCHG LOOP AL

AL,AH LOP AL DI DI+1 B 1 C 2 „„ 13.在首地址为 TAB 的数组中按递增次序存放着

100 个数,试编程将出现次数最多的数以及 出现的次数分别存放于变量 NUM 和

COUNT 中,并以: COUNT=? 的形式输出 COUNT 的值(设 最多重复次数〈10

DATA SEGMENT BUF DB 1,2,14H,14H,14H,14H,14H,15H,15H,15H,15H,59H LEN =$-BUF NUM DB ? COUNT DB 0 MM DB ’COUNT=',’$’ DATA

ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV

AX,DATA MOV DS,AX MOV SI,0 MOV CX,LEN MOV BL,0 A: MOV AL,BUF[SI] CMP AL,BUF[SI+1] JNE KL1 INC BL MOV BH,AL JMP KL2 KL1:CMP

COUNT,BL JAE L2 注意和教材 MOV COUNT,BL P1065。6 比较 MOV

NUM,BH L2: MOV BL,0 KL2:INC SI LOOP A INC COUNT LEA DX,MM MOV

AH,9 INT 21H 共 28 页 第 28 页

汇编语言程序设计 综合复习 MOV DL,COUNT ADD DL,30H MOV AH,2

INT 21H MOV AH,4CH INT 21H CODE ENDS END START 共 28 页 第 29 页


本文标签: 指令 地址 执行 语句 单元