《汇编语言程序设计》期末复习题及答案
更新时间:2024-04-25 15:26:01 阅读量: 综合文库 文档下载
《汇编语言程序设计》期末复习题及答案
一、选择(30题)
1.下列是8位带符号二进制数的补码,其中最大的是( B )。 B、00000001
2.在一段汇编语言程序中多次调用另一段程序,用宏指令比用子程序实现 ( C )
C、占内存空间大,但速度快 3.数据定义为: EE DB 3,4
CC DW 3456H,6789H
执行指令“MOV CX,WORD PTR EE+1”后,(CX)= ( B ) B、5604H
4.有如下指令序列:
MOV AL,95H MOV CL,2 SAR AL,CL
上述指令序列执行后,AL的内容是( D ) D、0E5H
5.设A=18610,B=2738,C=0BB16,把这三个数看成无符号数,则它们之间的关系是( D D、A
6.用一条指令实现寄存器BX和SI的内容相加,并将结果送入AX中,这条指令是( D D、LEA AX,[BX][SI]
7.要从端口1234H中读入8位数据,其指令应是( C ) C、MOV DX,1234H IN AL,DX
8.循环控制指令LOOPNZ/LOOPNE继续执行循环的条件是( B ) B、CX≠0且ZF=0
9.8088/8086存储器分段,每个段不超过( D ) D、64K个字节
10.表示过程定义结束的伪指令是( A )
) ) A、ENDP
11.用来存放下一条将要执行的指令代码段地址的段寄存器是( D ) D、CS
12.假定(SS)=1000H,(SP)=0100H,(AX)=5609H,执行指令PUSH AX后,存放数据 56H的物理地址是( D ) D、100FFH
13.执行“SUB AX,[BP][DI]”指令,取源操作数时,使用的物理地址表达式是( A ) A、16*SS+BP+DI
14.设AX中有一带符号数8520H,执行“SAR AX,1”指令后,AX中的值是( C ) C、0C290H
15.设(BX)=1234H,(DS)=2000H,(21234H)=5678H,则指令“LEA SI,[BX]”执行
后的结果是:( B ) B、SI=1234H
16.测试BL中的数是否为负数,若为负数则转移至AA1处,横线处的指令应为( A ) A、JNE
17.设DF=0,(SI)=20H,(CX)=10,执行“REP LODSW”指令后,SI中的内容是( C ) C、34H
18.在程序执行过程中,IP寄存器中始终保存的是( B ) B、下一条指令的首地址
19.设SP初值为2000H,执行指令“POP AX”后,SP的值是( A ) A、2002H
20.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( A ) A、1400H
21.汇编源程序时,出现语法错误的语句是( A ) A、MOV DS,1200H
22.将数据1234H存放在存储单元中的伪指令是( C ) C、DATA1 DB 34H,12H
23.下面指令执行后,可能改变AL寄存器内容的指令是( D ) D、AND AL,BL
24.操作数地址存放在寄存器的寻址方式称为( B ) B、寄存器间接寻址
25.用户为了解决自己的问题,用汇编语言所编写的程序,称为( B ) B、汇编语言程序
26.用DOS功能调用时,子功能调用的编号应放在( C ) C、AH
27.提供串指令中目的操作数地址的是( C ) C、ES:[DI]
28.在寄存器间接寻址方式下,能够提供有效地址的寄存器有( B ) B、BX,BP,SI,DI
29.已知某操作数的物理地址是2117AH,则它的段地址和偏移地址可能是( A ) A、2025∶0F2A
30.中断向量表中的每个中断向量所占内存空间为:( B ) B、4个字节 二、填空(30题)
1.在用直接寻址方式寻址操作数时,系统对段地址的默认值在段寄存器 DS 中。 参见P40
2.与指令“NEG AX”功能等效的两条指令依次是 NOT AX 和 INC AX 。 参见P85、94、84
3.语句“VAR DB 3 DUP(3,3 DUP(3))”经过汇编后应分配 12 个字节单元。 参见P58
4.指令“MOV AX,SEG VAR”的执行,是把 变量VAR的段地址 送到AX中。 参见P62
5.设(DS)=1000H,(ES)=2000H,(SS)=3000H,(BP)=4000H。 计算下列各指令中源操作数的物理地址:
MOV AX,[1000H] 物理地址 11000H MOV AX,ES:[BP] 参见P29
6.变量和标号均具有三种属性,即: 段属性 、 偏移属性 、 类型属性 。
物理地址 24000H
参见P56、59
7.在做乘法运算时,如果是做字运算,乘积放在 DX 和 AX 两个寄存器中,做除法
运算时,若做字节运算,余数放在 AH 中,商放在 AL 中。 参见P86、87
8.用以访问存储器操作的地址表达式中,只要出现BP寄存器,系统就默认以段寄存 器 SS 的内容作为存储器操作数的段地址。 参见P40~44
9.在数据段或代码段的最开始,常用伪指令“ORG n”来定义本段的偏移地址初值,该
初值的范围是 0000H~FFFFH 。 参见P66、28
10.指令“CWD”能实现对某寄存器中内容进行扩展,该寄存器是: AX 。 参见P89
11.8088/8086CPU能寻址的最大存储空间为1MB,因此CPU的地址总线是 20 条。 参见P28
12.在应用串处理指令MOVSB时,源串首地址存放在寄存器 SI 中,目的串首地址存放在寄存器 DI 中,并且目的串必须在 附加 段中,执行串处理指令时,用方向标志位DF控制地址自动增减,数据串的长度存放在寄存器 CX 中。 参见P125、126
13.程序状态字PSW中的ZF位,当结果为0时,ZF= 1 ,结果为1时,ZF= 0 。
参见P33
14.十六进制数0D6H,当把它看作无符号数时,它表示的十进制正数为 214 ,当把它
看作带符号数时,它表示的十进制负数为 -42 。 参见P22、23
15.IBM PC机中用来存放段地址的段寄存器有四个: CS 、 DS 、 SS 、 ES 。
参见P31、32 三、判断题(15题) 1.SHL AL,2 2.INC 2
( 错 )参见P95 2改为CL ( 错 )参见P84、83 不能用立即数 ( 对 )参见P83
3.ADD BX,1
4.MOV [SI][DI],BX 5.SUB BX,CL 6.OUT 34H,AL 7.IN AL,0AH
( 对 )参见P44
( 错 )参见P84 BX与CL数据宽度不一致 ( 对 )参见P170 ( 对 )参见P169
( 错 )参见P42 SP不能做间址寄存器 ( 对 )参见P86、87 ( 对 )参见P84
( 错 )
8.MOV CX,[SP] 9.MUL AL
10.SUB BX,BP
11.MOV DS,SEG VARY
参见P62、46 SEG VARY 是立即数,而DS不能接受立即数 12.MOV VARY[SI],ES:BL
( 错 )
参见P40 对寄存器不能使用段跨越前缀 13.CMP BLOCK,[100H]
( 错 )
参见P85 不能对两个内存单元直接进行比较
14.宏调用时实元和哑元的个数可以不一致。 ( 对 )参见P161 15.REP STOSB
( 对 )参见P127
四、写程序段(9题)
1.计算8*9,并将乘积送SI。
(参见P87,例5.10,考查对乘法指令的掌握情况)
mov al,8 mov bl,9 mul bl mov si,ax
2.计算35/6,商存于BL中,余数存于CL中。 (参见P88,例5.13,考查对乘法指令的掌握情况) mov ax,35 mov bl,6 div bl mov cl,ah
3.输入一个字母,然后输出它的后继字母(不考虑输入字母是Z的情况)。 (参见P102第6题及P186,考查对1号、2号功能调用的掌握)
mov ah,01h
int 21h inc al mov dl,al mov ah,02h int 21h
4.从端口35H读入一个字节数据,将该数的第3位置1后(其余位不变),再写回端口 35H。(说明:最低位为第0位)
(参见P178,第2道问答题,考查对I/O指令的掌握) in al,35h
or al,08h out 35h,al
5.定义数据段NUM,数据段中的数据按下列要求依次存储: (1)变量X,类型为字节,初值为17 ;
(2)数组变量M,类型为字,所占空间为100H个单元; (3)变量MSG,存储字符串\。
(参见P79,问答题的第2小题及P181,考查对段定义伪操作的掌握) NUM segment X db 17
M dw 100h dup(?) MSG db ‘LUCKY’ NUM ends
6.寄存器BX中存放着一个带符号数,求出其绝对值,结果还放在BX中。 (参见P107,例6.3,考查对CMP、NEG指令的掌握)
cmp bx,0 jg L1 neg bx L1:…
7.对存放在(DX,AX)中的双字数据作求补运算。
(参见P83,例5.2及P85,例5.7,考查对双精度数的操作)
not dx not ax add ax,1 adc dx,0
8.计算5!,结果存于寄存器SI中。
(参见P107,例6.4,考查对循环指令的掌握)
mov cx,5
mov al,1 mov bl,1
L1:mul bl inc bl loop L1 mov si,ax
9.定义一个名字为ADDXYZ的宏,实现W?X+Y+Z。(注:所有数据均为字类型) (参见P166,编程题第4题及P201,考查对宏定义的掌握)
ADDXYZ MACRO X,Y,Z,W
mov ax,x add ax,y add ax,z mov w,ax
endm
五、写程序(9题)
1.从键盘输入一个字符串(长度不超过30),统计字符串中非数字的个数,并将统计的
结果存入字单元COUNT中,用EXE格式实现。
(参见P152~P154,考查字符数组、比较指令、循环等) data segment
str db 30,?,30 dup(?) count db 0 data ends code segment
assume cs:code,ds:data main proc far start:
push ds mov ax,0 push ax
mov ax,data mov ds,ax lea dx,str mov ah,0ah int 21h
mov cl,str+1
2.统计一个16位二进制数中1的个数,并将结果输出,用COM格式实现。 (参见P119,考查COM格式文件、移位指令、跳转指令)
mov ch,0 mov si,2 L3:
cmp str[si],30h jae L1 inc count jmp L2 L1:
cmp str[si],39h jbe L2 inc count L2:
inc si loop L3 ret main endp code ends end start
code segment org 100h
assume cs:code main proc near start:
mov bx,0a39h mov si,0 mov cx,16 next: shr bx,1 jnc l1 inc si l1:
loop next
mov dx,si add dx,30h cmp dl,3ah jb l2 add dl,7 l2:
mov ah,02h int 21h
mov ax,4c00h int 21h main endp code ends end start
3.从键盘输入两个一位十进制数,求它们的和,并将结果以十进制形式输出。 (只考虑和小于10的情况)
(参见P156第6题及P200,考查1号功能调用、2号功能调用、字符的输出) code segment assume cs:code main proc far start: push ds mov ax,0 push ax mov ah,01 int 21h mov bl,al mov ah,01 int 21h
4.从键盘输入一个十进制个位数,在屏幕上显示相应数量的该数。 例如,输入3,屏幕上将显示“333”。
(参见P123第6题及P193,考查1号功能调用、字符如何变成数值、LOOP指令) code segment assume cs:code main proc far push ds mov ax,0
push ax mov ah,01h
int 21h mov bl,al sub al,30h mov bh,al sub bx,3030h add bl,bh mov dl,bl add dl,30h mov ah,02 int 21h ret
main endp code ends end start
cbw
mov cx,ax L1:
mov ah,02h mov dl,bl int 21h
5.求100以内所有奇数的和,存于字变量X中。 (参见P143,例8.6,考查循环指令)data segment x dw ? data ends code segment
assume cs:code,ds:data main proc far start: push ds mov ax,0 push ax mov ax,data mov ds,ax
loop L1 ret main endp code ends end main
mov ax,0 mov bx,1 mov cx,50 L1:add ax,bx add bx,2 loop L1 mov x,ax ret main endp code ends end start
6.将BX中的数以二进制形式在屏幕上显示出来。
(参见P123第2题及P189,考查移位指令、跳转指令、数值的输出、2号功能调用)code segment L2: mov ah,02h assume cs:code int 21h main proc far loop L1 start: mov ax,4c00h mov bx,1234h int 21h mov cx,16 main endp L1: mov dl,30h code ends shl bx,1 end start jnc L2 inc dl
7.字节数组X中存放着 0~F共16个十六进制数,请将这些数以十六进制形式显示在屏
幕上。
(参见P115,例6.9,考查对数组的使用、数值的输出、2号功能调用、循环指令)data segment
x
db
0,1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh data ends code segment
assume cs:code,ds:data main proc far start:
mov ax,data mov ds,ax mov cx,16 mov si,0
L1: mov dl,x[si] add dl,30h cmp dl,39h jbe L2 add dl,7 L2:mov ah,02h
int 21h inc si loop L1
mov ax,4c00h int 21h main endp code ends end start
8.从包含10个无符号数的字节数组array中选出最小的一个数存于变量MIN中,并将该
数以十进制形式显示出来。
(参见P123,第3题及P190~191,考查对数组的使用、循环指令、比较指令、除法指令、数值的输出)
data segment
array db 45,67,75,82,90,29,80,26,63,59 min db ? data ends
stack segment stack dw 10 dup(?) stack ends code segment
assume cs:code,ds:data,ss:stack main proc far start:
mov ax,data mov ds,ax mov cx,10 mov al,255 mov si,0 mov di,0
L1: cmp al,array[si] jbe L2
mov
al,array[si] L2: inc si loop L1 mov min,al mov ah,0 mov cx,3 L3: mov bl,10 div bl mov dl,ah push dx inc di mov ah,0 cmp ax,0 jz L4 loop L3 L4: mov cx,di L5: pop dx add dl,30h
mov ah,02h int 21h loop L5
mov ax,4c00h int 21h
main endp code ends end start
9.设在起始地址为STRING的存储空间存放了一个字符串,统计字符串中字符“A”的个
数,并将结果存放到RESULT字节单元中。
(参见P134第5题及P196,考查串处理指令、比较指令) data segment
string db 'assembly' len dw $-string result db 0 data ends code segment
assume cs:code,ds:data main proc far start:
mov ax,data mov ds,ax mov cx,len
lea si,string L1: lodsb
cmp al,'a' jnz L2 inc result L2: loop L1
mov ax,4c00h int 21h main endp code ends end start
mov ah,02h int 21h loop L5
mov ax,4c00h int 21h
main endp code ends end start
9.设在起始地址为STRING的存储空间存放了一个字符串,统计字符串中字符“A”的个
数,并将结果存放到RESULT字节单元中。
(参见P134第5题及P196,考查串处理指令、比较指令) data segment
string db 'assembly' len dw $-string result db 0 data ends code segment
assume cs:code,ds:data main proc far start:
mov ax,data mov ds,ax mov cx,len
lea si,string L1: lodsb
cmp al,'a' jnz L2 inc result L2: loop L1
mov ax,4c00h int 21h main endp code ends end start
正在阅读:
《汇编语言程序设计》期末复习题及答案04-25
2017-2018学年河北省辛集中学高一上学期第三次阶段考试数学卷03-25
小学招生工作总结03-12
郑伟峰—文旅大盘营销策略指引05-04
部编版五年级下册语文:习作写读后感教案04-27
国际结算复习大纲05-23
选择题(汇总)01-12
2013年安徽省初中毕业学业考试数学试题及参考答案(电子稿)04-16
农民专业合作社果树种植项目可行性研究报告06-04
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 复习题
- 汇编语言
- 程序设计
- 期末
- 答案