汇编语言程序设计练习题及答案
更新时间:2023-11-04 12:55:01 阅读量: 综合文库 文档下载
一、单项选择题( 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。)
1.为在一连续的存储单元中,依次存放数据41H,42H,43H,44H,45H,46H,可选用的数据定义语句是( D )
A.DB 41,42,43,44,45,46 B.DW 4142H,4344H,4546H C.DW ‘AB’,‘CD’,‘EF’ D.DW ‘BA’,‘DC’,‘FE’ 2.DA2 DB‘AB’,‘CD’
┇
MOV AX,WORD PTR DA2+1
上述语句执行后AX中的值是( D ) A.‘AD’
B.‘BC’
C.‘DA’ D.‘CB’
3.下列数据定义语句中可实现留空20H个字节存储单元的是( D )
A.DB 20 DUP(?) C.DB 10H DUP(4 DUP(?))
B.DW 20H DUP(?) D.DD 08H DUP(?)
4.如某存储器分段时,表示偏移地址是17位二进制代码,那么一个段最多的存储单元数是( D )
A.32K字节 B.32K字 C.64K字节 D.64K字
5.下列寄存器中用来指示堆栈中任意数据区的偏移地址的是( B ) A.BX B.BP C.SI D.DI
6.下列指令中有语法错误的是( C )
A.PUSH AX B.PUSH [20H+SI+BX]
C.POP CS D.PUSH CS
7.执行PUSH BP指令时,目的操作数的物理地址表达式是( D ) A.16*SS+BP B.16*DS+BP C.16*CS+IP D.16*SS+SP
8.把BL中的数据输出到端口8CH中正确指令是( C )
A. OUT 8CH,BL B.IN 8CH,BL C. MOV AL,BL D.MOV AL,BL
OUT 8CH,AL IN 8CH,AL
9.结果为零的条件转移指令,其测试条件是( A )
A.ZF=1 B.ZF=0 C.SF=l D.SF=0
10.下面程序段完成测试DA-BYTE字节单元中数是否为负数,若是则将全l送DH中,否则全0送DH中,那么程序段中方框里应填的语句是
MOV CH,0
TEST DA-BYTE,80H
MOV CH,0FFH
ZERO:MOV DH,CH( C ) A.JNZ ZERO B.JS ZERO
C.JZ ZERO D.JC ZERO
11.汇编源程序时,出现语法错误的语句是( C )
A.MOV [BX+SI],BX B.MOV CL,[BP+DI] C.MOV CS,AX D.MOV DS,AX
12.设SP初值为3050H,执行指令PUSH BX后,SP的值是( B )
A.304FH B.304EH C.3048H D.3049H
13.串操作指令中,每次操作后使SI/DI为减量应设置( C )
A.DF=0 B.TF=1
C.DF=1
D.TF=0
B.AL=33H,BL=24H
14.设AL=57H,BL=24H,执行指令SUB AL,BL后,寄存器内容为( B )
A.AL=57H,BL=24H
C.AL=57H,BL=33H D.AL=33H,BL=0 15. 当执行 ADD AX ,BX 指令后,若AX的内容为 4E52H 时,设置的奇偶标志位 PF=0 ,下面的叙述正确的是 ( A )
A. 表示结果中含 1 的个数是奇数 B. 表示结果中含 1 的个数是偶数
C. 表示该数是奇数 D. 表示结果中低 8 位中含 1 的个数是奇数 16. 设物理地址 (21000H)=20H, (21001H)=30H, (21002H)=40H 。如从地址 21001H 中取出一个字的内容是 ( D )
A.2030H B.3040H
C.3020H D.4030H
17. 转移指令 JMP NEAR PTR PROCA 的转移范围是 ( A )
A.8000H ~ 7FFFH B.7FFFH ~ 0FFFH C.80H ~ 7FH D.0FH ~ 7FH 18. 没有语法错误的输入指令是 ( A )
A.IN AL , 30H B.IN 30H, AL C.IN DX , AL D.IN AL ,[ BX ]
19. 设 SP 的初值为 1000H ,执行指令 PUSH AX 后 SP 的值是 ( C ) A.OFFFH B.1001H C.0FFEH D.1002H
20. 设 SP 的初值为 1000H ,执行指令 POP AX 后 SP 的值是 ( D )
A.OFFFH B.1001H C.0FFEH D.1002H 21. 汇编语言源程序,可以是 ( D )
A. 可以直接由机器执行 B. 必须由编译程序生成目标程序才能执行 C. 必须由解释程序生成目标程序才能执行
D. 必须由汇编程序汇编成目标程序才能执行
22. 伪指令 DA1 DB 04H DUP(3 DUP(2), 2 DUP(3)) 在数据区中能构成 0203H 操作数共有( C )
A.07 个 B.04 个 C.03 个 D.02 个 23. 设 AX=9ABCH , DX=8765H PUSH AX
PUSH DX
POP AX POP DX
上述 4 条指令执行后, AX , DX 中内容分别是 ( D )
A.AX=9ABCH DX=8765H B.AX=9ABCH DX=9ABCH C.AX=8765H DX=8765H D.AX=8765H DX=9ABCH 24. 无条件转移指令 JMP 实现段间间接转移,转移的目标地址在 ( B )
A. 某个字存储单元中 B. 某个双字存储单元中
C. 某个 16 位通用寄存器中 D. 两个 16 位通用寄存器中 25. 已知某操作数的物理地址是 2117AH ,则它的段地址和偏移地址可能是 ( A ) 。
A.2025 ∶ 0F2A B.2108 ∶ 00EA C.2000 ∶ 017A D.2100 ∶ 117A
26. 某程序装入内存后,DS=1200H,CS=1400H,则程序中数据段中的数据最多是 ( C ) 字节。
A.2K B.4K C.8K D.16K
27. 以寄存器 DI 间接寻址的存储器字节单元内容加 1 的指令是 ( C ) 。
A.INC [ DI ] B.INC DI C.INC BYTE PTR [ DI ] D.ADD [ DI ], 1
28. 有数据定义语句 BUF DW 0ABH,1,10 DUP(3 DUP(1 , 0) , 2) 汇编后,为变量 BUF 分配的存储单元字节数是 ( B ) 。
A.48H B.90H C.120 D.60
29. 下列指令执行后,不改变 AL 寄存器内容的指令是 ( B ) 。
A.AND AL , 1 B.CMP AL , DL C.XOR AL , AL D.SUB AL , DL 30. 将 CX 寄存器低 4 位清零的正确指令是( B ) 。
A.AND CX , 0F0H B.AND CX , 0FFF0H C.AND CX , 1110H D.MOV CX , 0
31. 当堆栈为空时,如 SS=0805H , SP=40H ,栈底字单元的物理地址是( C ) A.08090H B.08089H C.0808EH D.08450H
32. 执行 POP BP 指令时,源操作数的物理地址表达式是( A )
A.16*SS+SP B.16*SS+BP
33. 执行 SUB AX , [BP][DI] 指令,取源操作数时,使用的物理地址表达式是(A )
A.16*SS+BP+DI
B.16*ES+BP+DI
C.16*DS+BP+DI D.16*CS+BP+DI 34.要输入端口 1234H 中的 8 位数据,其指令应是( B )
A.MOV DX, 1234H B.MOV DX , 1234H
OUT DX, AL 1N AL , DX C.1N AX , 1234H D.OUT DX , 1234H
35. MOV AL , 79
ADD AL , 0B1H
上面指令执行后,设置的标志位 CF 和 OF 的值是( D )
A.CF=0 , OF=0 C.CF=0 , OF=1 B.CF=1 , OF=1 D.CF=1 , OF=0
36.下列指令执行后对源和目的操作数均无影响的是( D )
A.MOV [BX+2] , AX B.SUB AX , 2467H C.SBB [SI] , BX D.CMP AX , BX
37.设( SS ) =338AH ,( SP ) =450H ,执行 PUSH BX ,和 PUSHF 两条指令后,堆栈顶部的物理地址是( A )
A.33CECH B.33CF2H C.33CF4H D.33CE8H
38.设( SP ) =0028H ,执行段内返回指令 RET后, SP 的内容是( D ) A.0036H B.0022H C.0030H D.002AH
39. 下列寄存器组中在存储器操作数寻址时可用于提供偏移地址的是( D )
A.AX , BX , CX , DX B.SP , BP , SI , DI C.CS , ES , DS , SS D.BX , BP , SI , DI
40. 执行INC指令除对SF,ZF有影响外,还要影响的标志位为( A )
A. OF, AF, PF B. OF, AF, CF C. OF, PF, CF D. AF, PF, CF
二、判断正误,若判断为错,请说明理由
1、MOV DS,0
错误,立即数不能直接传送给数据段寄存器 2、MOV AX,[SI][DI]
错误,SI和DI不能同时使用
3、MOV [BX],10H
错误,无法知道操作数的类型,即不知道是字节的还是字。 4、MOV AH, BX
错误,源操作数和目的操作数的类型不一样。 5、MOV [BX], [SI]
错误,源操作数不能同时为内存操作数 6. MOV CS, AX
错误,CS不能作目的操作数 7. POP CS
错误,CS不能作目的操作数 8 PUSH CS 正确
9. POP 1234H
错误,出栈的操作数不能为立即数。
10. MOV [BX][SI], 2
错误,无法知道操作数的类型,即不知道是字节的还是字。 11. MOV MYDATA[BX][SI], ES:AX 错误,源操作数寻址错误 12. MOV BYTE PTR[BX], 1000
错误,源操作太大超过一个字节能表示的数范围 13. PUSHF AX
错误,源操作数默认为flag 14. POPF AX
错误,源操作数默认为flag
15. ADD VAR1, VAR2 (VAR1和VAR2为定义好的字变量) 错误,操作数必须有一个不是内存操作数 16. DIV 12
错误,操作数不知道是字节还是字。 17. POP BL
错误,目的操作数应该是字操作数 18. IN AL ,100H
错误,端口号超出255的范围。 三、填空题
1. 8086/8088 存贮器地址分段时,每个段起始地址的特征是 ___后四位二进制数为0__ 。 2. 假设执行前 AX=7862H ,指令 XOR AX , AX (表示异或,各位相异为1)执行后 AX 中的值是 ___0________ 。
3. ARRAY DB 0 , 2 DUP(1 , 2) , 0 , 3 汇编时生成的数据依次是 _0,1,2,1,2,0,3__ 。
4. 在存取一个存储器操作数时,段地址必须由 __段寄存器之一(_cs或者ds或者es或者ss)________ 提供。
5. 在 8086/8088 系统中,存储器物理地址是分段组织的。堆栈段的段地址存放在 __ss___ 寄存器中,栈顶数据的偏移地址放在 _sp____ 寄存器中。代码段的段地址存放在 __cs___ 寄存器中。偏移地址在 __ip___ 寄存器中。
6. 有指令 MOV CL , N ,要使该指令合法,则 N 的最大值是 __127___ ,最小值是 ___-128_ 。 ( 用十进制数表示 )
7. 已知 DS=29A0H ,某数据的物理地址是 2A400H ,则当 DS=6700H 时,该数据的物理地址是 __2A400H___ 。
8. 已知 DS=4000H , BX=0100H,SI=0004,(40100H)=28H,(40101H)=69H,(40104H)=10H, (40105H)=9AH, 先执行 MOV AX ,[ 0100H ], AX=_6928H____ 再执行 ADD AX ,[ BX+SI ], AX=_0338H____ , CF=__1___ 9. 逻辑地址由 ___段地址和偏移地址________ 组成。
10、DB指令以_____字节___为单位分配存贮;DD指令以___双字___为单位分配存贮。
故如下数据定义:
V1 DB 4 DUP(2),2 COUNT EQU 10
V2 DD COUNT DUP(?)
为变量V1分配___5_个字节存贮;为变量V2分配_40___个字节存贮。
11、设(CS)=25FFH,(DS)=2140H,(SS)=2510H,(BP)=02D0H,(SI)=0010H,(DI)=0206H, 则(1)指令MOV AX,[BP+SI+2]的源操作数有效地址为_02E2H__,物理地址为__253E2H__ (2)指令MOV AX,[DI+100H]的源操作数有效地址为_0306H__,物理地址为_21706H___. 12. 8086/8088CPU 允许最大的存储空间为 1MB ,因此CPU 的地址总线是___20_根, 13. 一个语句的名字项可以是标号或变量,在程序中它们两个在书写形式上的主要区别是___标号后面有冒号_____。
14. 内存0005CH处4个字节为D2,EF,00,F0,它是中断__类型号为23_的入口地址存放处,它表示该中断处理程序的起始地址为__F000______:__EFD2___。
15. 若 CS为3000H,则当前代码段可寻址存储空间是_30000~3FFFF___。
四、简答题
1.8086/8088的寻址方式有哪些(包括指令寻址和操作数寻址)?
答:立即数寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址。
2.8086/8088指令的立即寻址方式的操作数存放在什么段内(代码段)?寄存器间接寻址方式[BX]的操作数在什么段内(数据段)? 寄存器间接寻址方式[BP]的操作数在什么段内(栈段)? [BX+SI] (数据段)、[BX+DI] (数据段)、[BX+SI+Idata] (数据段)、[BX+DI+Idata] (数据段) 、[BP+SI] (栈段) 、[BP+DI] (栈段)、[BP+SI+Idata] (栈段) 、[BP+DI+Idata] (栈段)呢?
3.下列指令中,源操作数是什么寻址方式?操作数的物理地址如何表达? 目的操作数呢? MOV AX,10H [DI] 源:寄存器相对寻址方式,PA=ds×10H+DI+10H;目的:寄存器寻址方式
MOV DX,[BX][SI] 源:基址变址寻址方式,PA=ds×10H+BX+SI;目的:寄存器寻址方式
4.下列语句在存储器中分别为变量分配多少个字节?
①AD1 DW 10H DUP(0),10H 34个字节 ②AD2 DD 10H DUP(0) 64个字节 ③AD3 DB 3 DUP(2 DUP (0)) 6个字节 5.简述8086CPU的中断响应过程. 答:6个步骤,见书上 6.设有数据定义如下:
ARRAY DW 1000H , 2000H , 3000H , 4000H , 5000H BUF DW ?
要求完成:( 1 )用一条指令完成将 ARRAY 的偏移地址送 BX ; MOV BX, OFFSET ARRAY
( 2 )用一条指令完成将 ARRAY 的第一字节单元内容送 AL ; MOV AL,ARRAY
( 3 )用一条指令完成将 ARRAY 数组的长度(字节数)送 CX 。 MOV CX, OFFSET BUF –OFFSET ARRAY
7.两个同符号的有符号数相减时,会发生溢出吗?为什么?
答:不会发生溢出。
8.设 DS=2000H , BX=1256H , SI=528FH ,变量 TABLE 的偏移地址是 20A1H ,( 232F7H ) =3280H ,( 264E5H ) =2450H 。请写出下列无条件转移指令段内寻址方式中赋值给 IP 的值。
( 1 ) JMP TABLE [BX] ; IP=____3280H_____ 。 ( 2 ) JMP [BX] [SI] ; IP=___2450H________
9. 什么是中断向量?什么是中断向量表?如何安装中断向量表? 10. 什么是端口?如何实现端口的读和写? 11.简述IRET指令的执行过程。
五、程序分析题
1. 设寄存器 AX , BX , CX 中的内容都是 1234H ,变量 value 中的内容为 0F0FH ,执行下列指令序列:
OR AX , value
AND BX , value XOR CX , value
则 AX=_1F3FH____ , BX=_0204H____,CX=_1D3BH____
2. MOV AL , 5
ADD AL , AL MOV BL , AL ADD AL , AL ADD AL , BL
上述程序段执行后, AL=__1EH___ , BL=__0AH___ 程序段的功能用数学表达式表示 _6*AL____
3. 有下列数据定义
VA DB 0FFH VB DB 1,2
VC DW 3456H 执行下列指令序列:
MOV AX , WORD PTR VB+1 MOV BL , BYTE PTR VC+1 MOV CL , VB -1
则 AX=__5602H __ , BL=_34H____,CL=__0FFH___
1. BUF1 DB -1,2,-3,4,-5,6,-7,8,-9
BUF2 DB 9 DUP(O) ┇
XOR BL,BL ;(BL)=0 MOV SI,O ; (SI)=0 MOV CX,9 ; (CX)=9
LOP:MOV AL,BUF1[SI] ; (AL)=-1,2,-3,4,-5,6,-7,8,-9 TEST AL,80H ; JZ K
INC BL ;(BL)=1,2,3,4,5 NEG AL ;(AL)=1,3,5,7,9
K:XOR AL,01H ; (AL)=0,3,2,5,4,7,6,9,8
MOV BUF2[SI],AL ; (BUF2[SI])=0,3,2,5,4,7,6,9,8 INC SI
LOOP LOP ……
①写出程序运行后BUF2各字节中的数据: 0,3,2,5,4,7,6,9,8 ②BL=______5________
2.R1 DB 246 ;0F6H
┇
XOR BH,BH ; (BH)=0 MOV AL,R1 ; (AL)=0F6H MOV DL,10 ; (DL)=0AH LOP:CMP AL,0 ; JBE NEXT
MOV AH,0 ; (AH)=0
DIV DL ; (AH)=06H, (AL)=18H, (AH)=04H, (AL)=02H, (AH)=02H, (AL)=00H, MOV BL,AH
PUSH BX ; 0006H, 0004H,0002H JMP LOP NEXT:……
┇
上述程序段执行后共向堆栈压入_______3______个数,按压入的先后次序该数列为_____0006H, 0004H,0002H_________。
3. DA1 DB ′01234 ′ DA2 DB 5 DUP(0) MOV SI , 0 MOV CX , 5
LOP : MOV AL , DA1 [ SI ]; 30H, 31H, 32H, 33H, 34H ADD AL , 11H ; 41H, 42H, 43H, 44H, 45H OR AL , 01H ; 41H, 43H, 43H, 45H, 45H MOV DA2 [ SI ], AL ; 41H, 43H, 43H, 45H, 45H INC SI ; 1, 2, 3, 4, 5
LOOP LOP
试问: (1) 程序段执行后,写出 DA2 各字节中的数据。(41H, 43H, 43H, 45H, 45H) (2) 程序中 MOV AL , DA1 [ SI ]指令的源操作数是什么寻址方式:寄存器相对寻址方式
4. 设 AL 中高低 4 位分别有大于 7 的数, MOV AH , AL; 1***1*** AND AH , 88H ;(AH)=88H MOV AL , AH ; (AL)=88H
OR AL , 11H ; (AL)=99H
程序段运行后, AH=__88H _______ , AL=___99H______ 。 5. AT DB 0AH, 0BH, 0CH , 0DH , 0EH , 0FH , 00H
MOV BX, 0
LOP: MOV DL , AT [ BX ] CMP DL , 0 JZ DONE ADD DL,37H MOV AH , 2 INT 21H INC BX JMP LOP DONE :……
①上述程序段执行后在屏幕上显示的内容依次是: ②执行后 BX=___________ 。 6. 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=_______ , BL=________
7. 下面程序段是将 BUFF 单元的绝对值送入DAR 单元,请将空白处各填上一条指令
BUFF DW ××××
DAR DW?
MOV AX , BUFF ①TEST AX, 80H JZ NEXT ②NEG AX 或者 MOV AX, 0-BUFF+1 NEXT : MOV DAR , AX 8. NUM 和 NUM+1 单元分别存有一个 8 位无符号数,下面程序段将两数中大者送NUM 单元,小者送NUM+1 单元,请在方框处各填一条指令补充完整。 MOV AL , NUM CMP AL , NUM+1
MOV NUM , AL
DONE :……
六、编制程序题 1. 定义数据段 DATA_SEG ,数据段中的数据按下列要求依次存储: (1) 第一个字节是整数 5
(2) 变量 BUF ,大小为 25 个字节,初值为 0
(3) 变量 ARRAY ,类型为字,初值为 12H , 56H , 78H , 0AH (4) 变量 MSG 存储字符串 ’yes’
2. 试编写一个源程序实现两个64位二进制数相加,两个数分别存放在NUM1,NUM2双字单元中,相加结果存放在RESULT1(低字)和RESULT2(高字)中,数据段分配如下: DATA SEGMENT NUM1 DD X NUM2 DD Y RESULT1 DW 0 RESULT2 DB 0 DATA ENDS
正在阅读:
汇编语言程序设计练习题及答案11-04
北语16秋《西方经济学》作业310-01
去买菜作文250字03-12
EPC工程总承包项目进度控制要点09-01
安全科技概论结课论文-煤矿生产安全问题05-11
2016级(C语言程序的设计)上机实验报告模版1 - 顺序与分支资料全10-13
VRRP+Track+RTR配合使用解决 - keepalive跨网段问题04-19
小品《钱是爹》台词06-12
教育师资个人求职信08-22
法硕考研:法理学逻辑结构及复习方法05-19
- 天大砼方案 - 图文
- 农业科技网络书屋能力提升_玉米错题选
- DNS习题
- 浅议检察官对罪犯谈话的技巧与效果
- 高考语文文言文翻译专题训练
- AB类学科竞赛目录(2015)
- 建筑面积计算新规定(2015最新)
- Revit2012初级工程师题集一
- 十三五项目米线可行性报告
- 2013体育学院党组织建设工作总结
- 2014Revit工程师题库
- 高中数学如何实施研究性学习
- 茶艺表演 中英互译
- 小学音乐湘文艺版 四年级下册 第十一课《(歌表演)脚印》优质课公
- 山西省农村合作经济承包合同管理条例
- 2015年镇江市中考化学一模试题参考答案及评分标准(定稿)
- 统计 题集
- 批评意见清单
- 8潞安集团蒲县黑龙关煤矿矿业公司2
- 鄂教版四年级语文上册复习精要(光谷四小)
- 练习题
- 汇编语言
- 程序设计
- 答案
- 主推进动力装置
- 化工厂生产实习报告
- 浅论野生动物的保护
- 六年级美术复习试题
- 市政工程施工现场安全管理资料全套样本参考 - 图文
- 2005年理科综合能测试试卷分析化学 - 6
- 冰雪奇缘主要内容
- 城东220kV变~双阳变110kV线路工程招标文件
- 现代汉语语法点
- 工程造价纯手工算量(某三层框架结构工程综合实例讲解)
- 植物形态解剖学试题(定稿) - 图文
- 银行会计练习题1和答案
- 如何当好秘书范文
- 山东省济南市2018届高三5月针对性练习(二模)文综地理试题 含答案
- 安装和配置 Microsoft iSCSI 发起程序
- 新课程背景下的小学体育教学改革初探
- 第五版基础护理学四、五章考试试题
- 2014执业药师考试《法律法规》
- 单片机在工业控制中的应用分析(内含中英文,7000汉字)
- 2017年山东省威海市中考语文试卷及答案(word解析版)