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 页
版权声明:本文标题:《汇编语言程序设计》期末复习题-库. 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1704989954h468795.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论