山东大学_ 汇编语言 教程 手册 编程程序设计__课程试卷(B)
- 格式:doc
- 大小:47.00 KB
- 文档页数:5
汇编语言试题及答案一、单项选择题(每题2分,共20分)1. 汇编语言是一种()。
A. 高级语言B. 低级语言C. 机器语言D. 符号语言答案:D2. 汇编语言程序必须经过()才能被计算机执行。
A. 编译B. 汇编C. 链接D. 解释答案:B3. 在汇编语言中,指令通常由()组成。
A. 操作码和操作数B. 操作码和地址码C. 操作码和数据D. 地址码和数据答案:A4. 汇编语言中的寄存器主要用于()。
A. 存储数据B. 存储指令C. 存储地址D. 存储控制信息答案:A5. 汇编语言中的立即寻址方式是指()。
A. 操作数在寄存器中B. 操作数在内存中C. 操作数在指令中D. 操作数在输入/输出端口中答案:C6. 在汇编语言中,指令“MOV AX, 1234H”的作用是()。
A. 将内存地址1234H的内容移动到AX寄存器B. 将立即数1234H移动到AX寄存器C. 将AX寄存器的内容移动到内存地址1234HD. 将AX寄存器的内容移动到另一个寄存器答案:B7. 汇编语言中的循环结构通常使用()指令实现。
A. JZB. JNZC. LOOPD. CALL答案:C8. 在汇编语言中,子程序调用通常使用()指令。
A. JZB. JNZC. CALLD. RET答案:C9. 汇编语言中的堆栈操作通常使用()指令。
A. PUSHB. POPC. MOVD. ADD答案:A10. 在汇编语言中,中断服务程序的结束通常使用()指令。
A. INTB. IRETC. RETD. CALL答案:B二、填空题(每题2分,共20分)1. 汇编语言中的指令通常由______和______两部分组成。
答案:操作码;操作数2. 汇编语言中的寄存器可以分为______、______和______三类。
答案:通用寄存器;段寄存器;控制寄存器3. 汇编语言中的寻址方式包括______、______、______和______等。
答案:立即寻址;直接寻址;间接寻址;寄存器寻址4. 在汇编语言中,指令“MOV AX, BX”的作用是将BX寄存器的内容______到AX寄存器。
一、单项选择题(从四个备选答案中选出一个正确的答案填在题干的括号内)(20分)( A )1. 指令MOV AL,[BX+100]的源操作数的寻址方式为?A. 基址寻址B. 寄存器间接寻址C. 变址寻址D.基址变址寻址( A )2.确定下列哪些数据在汇编语言中的表示是合法的?A. 2 AND 3*5B. 138QC. A3HD. HIGH AX( C )3.若栈顶指针SP的值为100H,当执行完指令PUSH AX后,SP的值为?A. 00FCHB. 00FAHC. 00FEHD. 0106H( B )4. 已知在寄存器 AX和 BX 中分别存放着一个无符号数据,在满足条件 AX≥BX 时转到标号OK去执行,不能实现该功能的程序段是?A. CMP AX,BXB. CMP AX,BXJNB OK JA OKC. CMP BX,AXD. CMP AX,BXJBE OK JNC OK( A )5. 下列程序段在语法上是正确的是?A. X1 DB ‘ABCD’B. X1 DW ‘ABCD’C. X1 DD ‘ABCD’D. X1 DB 1234H( C )6. 已知AL=67H,BL=34H, 则指令ADD AL,BL执行后,OF和CF的值分别为?A. 0,0B. 0,1C. 1,0D. 1,1( D )7. 已知AL,BL中各存放一个带符号数,计算AL/BL的商,用下述哪个程序段?A. DIV BLB. IDIV BLC. XOR AH,AHD. CBWIDIV BL IDIV BL( C ) 8. 已知SUBR是一个属性为NEAR的子程序, 下述调用SUBR子程序的指令序列中, 哪一个能实现调用SUBR的目的?A. LEA SI,SUBRB. MOV SI,SUBRCALL [SI] CALL SIC. MOV BX, OFFSET SUBRD. MOV BX, OFFSET SUB( B )9. 初始化8259A时,ICW2的值为15H,当IR2端有中断请求时,8259A送出的中断方式码是什么?A. 17HB. 12HC. 13HD. 10H( A )10. 在两个8259A级联的中断系统中,从8259A连接在主8259A的IR3上,主8259A和从8259A的ICW3应设置为多少?A. 03H,08HB. 08H,03HC. 04H,03HD. 08H,08H二、判断题(判断每题正误,对的在题后括号内划“√ ”,错的划“×”)。
汇编语言程序设计教案及习题答案教案章节:一、汇编语言简介1. 汇编语言的概念2. 汇编语言的特点3. 汇编语言的应用领域二、汇编语言的基本语法1. 数据类型及表示2. 指令格式及分类3. 寄存器使用规则三、汇编语言程序设计步骤1. 分析需求,确定程序功能2. 选择合适的汇编语言及开发环境3. 编写汇编代码,调试程序4. 优化程序性能四、常用汇编指令及功能1. 数据传输指令2. 算术运算指令3. 逻辑运算指令4. 控制流指令5. 字符串操作指令6. 中断指令五、汇编语言与C语言的接口编程1. extern声明汇编函数2. 调用汇编函数的方法3. 汇编函数与C函数的数据交换4. 实例分析:汇编语言实现字符串排序习题答案:一、汇编语言简介1. 汇编语言是一种低级编程语言,用于编写计算机程序。
(正确)2. 汇编语言可以直接操作计算机硬件资源。
(正确)3. 汇编语言程序可读性差,不易维护。
(正确)二、汇编语言的基本语法1. 数据类型及表示a. 字节:8位(正确)b. 字:16位(正确)c. 双字:32位(正确)d. 四字:64位(正确)2. 指令格式及分类a. 操作码(正确)b. 操作数(正确)c. 寄存器(正确)d. 标志位(正确)3. 寄存器使用规则a. 通用寄存器:AX, BX, CX, DX(正确)b. 段寄存器:CS, DS, ES, SS(正确)c. 指令指针:IP(正确)d. 状态寄存器:FLAGS(正确)三、汇编语言程序设计步骤1. 分析需求,确定程序功能(正确)2. 选择合适的汇编语言及开发环境(正确)3. 编写汇编代码,调试程序(正确)4. 优化程序性能(正确)四、常用汇编指令及功能1. 数据传输指令a. MOV:数据传送(正确)b. PUSH:压栈(正确)c. POP:出栈(正确)d. XCHG:交换数据(正确)2. 算术运算指令a. ADD:加法(正确)b. SUB:减法(正确)c. MUL:无符号乘法(正确)d. IMUL:有符号乘法(正确)3. 逻辑运算指令a. AND:逻辑与(正确)b. OR:逻辑或(正确)c. XOR:逻辑异或(正确)d. NOT:逻辑非(正确)4. 控制流指令a. JMP:无条件跳转(正确)b. JE:相等跳转(正确)c. JNE:不相等跳转(正确)5. 字符串操作指令a. MOVS:字符串移动(正确)b. CMPS:字符串比较(正确)c. SCAS:字符串扫描(正确)d. LODS:字符串装载(正确)6. 中断指令a. INT:软件中断(正确)b. INTO:中断向量表(正确)五、汇编语言与C语言的接口编程1. extern声明汇编函数(正确)2. 调用汇编函数的方法(正确)3. 汇编函数与C函数的数据交换(正确)4. 实例分析:汇编语言实现字符串排序(正确)汇编语言程序设计教案及习题答案教案章节:六、汇编语言的输入与输出1. 输入输出指令2. 字符串操作指令3. 实例分析:编写一个简单的输入输出程序七、汇编语言的杂项指令1. 杂项指令的概念2. 常用杂项指令及其功能3. 实例分析:杂项指令的应用八、汇编语言的子程序调用1. 子程序调用的概念2. 子程序的定义与调用3. 子程序的返回4. 实例分析:子程序在汇编语言中的应用九、汇编语言的程序举例1. 实例一:计算两个数的和2. 实例二:字符串的复制3. 实例三:数制的转换4. 实例四:文件的读写十、汇编语言程序的调试与优化1. 调试工具的使用2. 调试方法与技巧3. 程序优化的概念4. 程序优化的方法与技巧习题答案:六、汇编语言的输入与输出1. 输入输出指令a. IN:输入指令(正确)b. OUT:输出指令(正确)c. INPUT:输入函数(正确)d. PRINT:输出函数(正确)2. 字符串操作指令a. MOVS:字符串移动(正确)b. CMPS:字符串比较(正确)c. SCAS:字符串扫描(正确)d. LODS:字符串装载(正确)3. 实例分析:编写一个简单的输入输出程序(正确)七、汇编语言的杂项指令1. 杂项指令的概念(正确)2. 常用杂项指令及其功能a. NOP:无操作(正确)b. HLT:停止CPU运行(正确)c. CMC:翻转标志位(正确)d. ARPL:寄存器之间交换(正确)3. 实例分析:杂项指令的应用(正确)八、汇编语言的子程序调用1. 子程序调用的概念(正确)2. 子程序的定义与调用a. 定义子程序(正确)b. 调用子程序(正确)3. 子程序的返回(正确)4. 实例分析:子程序在汇编语言中的应用(正确)九、汇编语言的程序举例1. 实例一:计算两个数的和(正确)2. 实例二:字符串的复制(正确)3. 实例三:数制的转换(正确)4. 实例四:文件的读写(正确)十、汇编语言程序的调试与优化1. 调试工具的使用(正确)2. 调试方法与技巧(正确)3. 程序优化的概念(正确)4. 程序优化的方法与技巧(正确)汇编语言程序设计教案及习题答案教案章节:十一、汇编语言与操作系统1. 操作系统的概念2. 汇编语言在操作系统中的应用3. 实例分析:汇编语言编写简单的操作系统十二、汇编语言与设备驱动程序1. 设备驱动程序的概念2. 汇编语言在设备驱动程序开发中的应用3. 实例分析:汇编语言编写简单的设备驱动程序十三、汇编语言与嵌入式系统1. 嵌入式系统的概念2. 汇编语言在嵌入式系统中的应用3. 实例分析:汇编语言编写简单的嵌入式系统十四、汇编语言与汇编器的使用1. 汇编器的概念2. 汇编器的使用方法3. 实例分析:使用汇编器编写和调试汇编程序十五、汇编语言与汇编语言的未来发展1. 汇编语言的发展趋势2. 汇编语言在未来的应用领域3. 汇编语言学习的方法与建议习题答案:十一、汇编语言与操作系统1. 操作系统的概念(正确)2. 汇编语言在操作系统中的应用(正确)3. 实例分析:汇编语言编写简单的操作系统(正确)十二、汇编语言与设备驱动程序1. 设备驱动程序的概念(正确)2. 汇编语言在设备驱动程序开发中的应用(正确)3. 实例分析:汇编语言编写简单的设备驱动程序(正确)十三、汇编语言与嵌入式系统1. 嵌入式系统的概念(正确)2. 汇编语言在嵌入式系统中的应用(正确)3. 实例分析:汇编语言编写简单的嵌入式系统(正确)十四、汇编语言与汇编器的使用1. 汇编器的概念(正确)2. 汇编器的使用方法(正确)3. 实例分析:使用汇编器编写和调试汇编程序(正确)十五、汇编语言与汇编语言的未来发展1. 汇编语言的发展趋势(正确)2. 汇编语言在未来的应用领域(正确)3. 汇编语言学习的方法与建议(正确)重点和难点解析本文主要介绍了汇编语言程序设计的基础知识和应用领域,通过详细的章节安排,从汇编语言的基本概念、语法规则、程序设计步骤、常用指令及其功能、输入输出操作、杂项指令、子程序调用、程序举例、调试与优化等方面进行了深入讲解。
汇编语言程序设计试卷一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分)1.十六进制数88H,可表示成下面几种形式,请找出错误的表示()。
① 无符号十进制数136② 带符号十进制数-120③ 压缩型BCD码十进制数88④ 8位二进制数-8的补码表示2.指令指针寄存器是()。
① IP② SP③ BP④ PSW3.当执行指令ADD AX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是()。
① 表示结果中含1的个数为偶数② 表示结果中含1的个数为奇数③ 表示该数为偶数④ 表示结果中低八位含1的个数为偶数4.完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是()。
① MOV AL,00H② AND AL,00H④ SUB AL,AL5.下列指令执行后总是使CF=0,OF=0的是()。
① AND② NEG③ NOT④ INC6.完成同指令XCHG AX,BX相同功能的指令或指令序列是()。
① MOV AX,BX② MOV BX,AX③ PUSH AXPOP BX④ MOV CX,AXMOV AX,BXMOV BX,CX7.设AH=0,AL=06H,BL=09H,执行指令ADD AL,BLAAA之后,其结果应是()。
① AH=01,AL=05② AH=1 AL=15③ AH=0 AL=0FH④ AH=0 AL=058.设AL=0B4H,BL=11H,指令“MUL BL”和指令“IMUL BL”分别执行后OF,CF的值为② OF=1,CF=1③ OF=0,CF=0④ OF=0,CF=19.在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是()。
① CX=0且ZF=0② CX=0且ZF=1③ CX=0或ZF=0④ CX=0或ZF=110.下面指令中,合理而有意义的指令是()。
① REP LODSB② REP SCASB③ REP CMPSB④ REP MOVSB11.在汇编语言程序中,对END语句的叙述正确的是()。
2020-2021《汇编语言程序设计》期末课程考试试卷一大题:选择题(每题2分,共30分)1、变量具有类型属性,错误的类型是( ) A .字节型 B .字型 C .字符型 D .双字型2、某存储单元的段基址为3806H ,段内偏移地址为2A48H ,则物理地址为( )。
A. 4100HB.3AA08HC.3B008HD.3AAA8H3、设CL =8,AL=0C8H ,执行SAR AL ,CL 后,AL 中的数据是( )A .0FFHB .80HC .00HD .0FEH 4、堆栈的工作方式是( )。
A.先进先出B.随机读写C.只能读出不能写入D.后进先出5、采用高速缓存的目的是( )。
A.提高主存速度B.提高总线传输率C.使CPU 全速运行D.扩大可寻址空间6、把汇编源程序变成机器代码程序的过程是( ) A .编译 B .汇编 C .编辑 D .链接7、串操作指令中,每次操作后使SI /DI 为减量应设置( ) A .DF=0 B . TF=1 C .DF=1 D .TF=0 8、下列指令中有语法错误的是( )A .PUSH AXB .PUSH BLC .POP CSD .PUSH CS 9、下面有语法错误的指令是( )A .LDS BL ,VAR[SI]B .LEA BX ,VAR[SI]C .LES DI ,VAR[BX]D .LEA DI ,VAR[BP]10、设AL=57H ,BL=24H ,执行指令SUB AL ,BL 后,寄存器内容为( ) A .AL=57H ,BL=24H B .AL=33H ,BL=24HC .AL=57H ,BL=33HD .AL=33H ,BL=011、设SP 初值为3050H ,执行指令PUSH BX 后,SP 的值是( ) A .304FH B .304EH C .3048H D .3049H 12、汇编源程序时,出现语法错误的语句是( ) A .MOV [BX+SI],BX B .MOV CL ,BL C .MOV CS ,AX D .MOV DS ,AX13、指令 MOV 0283H[BX][SI] , AX 中,目的操作数的寻址方式为( )。
汇编语言程序设计参考答案A卷一、单项选择题(本大题共8小题,每小题2分,共16分)1.C2.B3.B4.A5.C6.A7.A8.C9.D 10.B二、名词解释(本大题共5小题,每小题4分,共20分)11.微处理器:也成中央处理器(CPU),是微型计算机的核心部件,包含运算器、控制器、寄存器组及总线接口等,负责对计算机系统各部件进行统一的协调和控制。
12.寻址方式:就是寻找操作数或操作数地址的方式,根据寻址方式可方便地访问各类操作数。
13.伪指令:是发送给汇编程序的命令,在汇编过程中由汇编程序进行处理,如定义数据、分配存储区、定义段及定义过程等。
14.中断源:指能引起中断的外部设备或内部原因。
15.汇编语言:是一种面向CPU指令系统的程序设计语言,采用指令助记符来表示操作码和操作数,用符号地址表示操作数地址。
三、简答题(本大题共4小题,每小题5分,共20分)16.微型计算机系统软件的主要特点是什么?计算机系统软件的主要特点是简化计算机操作,支持应用软件的运行并提供相关服务,通常包括操作系统、语言处理程序等。
17.什么是逻辑地址?他由哪两部分组成?计算机存储器中给每个逻辑段编址的地址称逻辑地址。
逻辑地址是在程序中使用的地址,他由段地址和偏移地址两部分构成。
18.一个完整的汇编源程序由那些逻辑段组成?各逻辑段的主要作用是什么?一般情况下汇编语言源程序应该由以下3个逻辑段组成:①数据段:用来在内存中建立一个适当容量的工作区,以存放常数,变量等程序需要对其进行操作的数据;②堆栈段:用来在内存中建立一个适当容量的堆栈区,以便在中断、子程序调用时使用;③代码段:包括了许多以符号表示的指令,其内容就是程序需要执行的具体操作。
19. DMA数据传送方式的特点是什么?DMA数据传送方式把外设与内存交换信息的操作与控制交给DMA控制器,简化了CPU对数据交换的控制,数据传送速度快,但这种方式电路结构复杂,硬件开销大。
程序设计一、程序阅读题,写出程序的输出结果1.main(){int i=3 while(i<10)){if(i<6) {i+=2; continue; }else printf( “%d” ,++i);}} ___________ 8910 _____ 。
2.main(){int i=3 while(i<10)){if(i<6) {i+=2; continue; }else printf( “%d” ,++i);}} ___________ 8910 _____ 。
3.#include “stdio.h ”main(){int i, j;i=j=2;if(i==1)if(i==2)printf( “ %d” ,i=i+j);elseprintf( “ %d” ,i=i-j);printf( “ %d” ,i);} ___________ 2 _____ 。
二、填空题:4.写出满足下列条件的表达式: a 和 b 都不小于 c ________________________ _a>=c&&b>=_c ____________________________ _5.表达式10+16%3的值为 __ 15 _____ 。
6.下面函数的功能是求 1 到n 的和请把程序补充完整。
long sum( int n){ int i;_ ____ i nt s=0; ____for(i=1;i<=n;i++)______ s+=i; _________ _return s;}得到的初值为7.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}}; 则初始化后,a[1][2]___ 0__。
8.有如下程序段int *p,a=10,b=1; p=&a; a=*p+b;执行该程序段后, a 的值为11 。
9.以下程序的输出结果为55 。
void main( ){ int i,j,a[ ]={1,2,3,4,5,6,7,8,9,10};int sum=0;for (i=0;i<10;i++)sum=sum+a[i];printf("%4d",sum);}10.若有定义int a[2][5] ,则整型数组 a 包含有10 个元素。
《汇编语言程序设计》课程知识复习学习材料试题与参考答案一、单选题1.为了使MOV AX,VAR指令执行后,AX寄存器中的内容为4142H,下面哪一条数据定义会产生不正确的结果?(C)A.VAR DW 4142HB.VAR DW 16706C.VAR DB 42H,41HD.VAR DW ‘AB’2.关于8086/8088微机系列,下列说法哪个是正确的(D)A.一个存储单元由16个二进制位组成,简称字。
B.当存储一个字数据时,低字节放高地址位,高字节放低地址位。
C.在内存中,可以无限分配段,且段的大小不受限制。
D.段与段之间可以邻接,也可以重叠。
3.宏指令库以(C)格式存放在磁盘上。
A.可执行代码B.目标代码C.源代码4.计算机处理问题中会碰到大量的字符.符号,对此必须采用统一的二进制编码。
目前,微机中普遍采用的是( D)码。
A.BCD码B.二进制码C.十六进制码D.ASCII码5.运算器能够完成(C)运算。
A.算术运算B.逻辑运算C.算术运算和逻辑运算D.加减运算6.十六进制数88H,可表示成下面几种形式,请找出错误的表示(D)A.无符号十进制数136B.带符号十进制数-120C.压缩型BCD十进制数88D.8位二进制数-8的补码表示7.用MOV指令将十进制数89以非压缩BCD码格式送入AX,可使用的指令是(B )A.MOV AX,89B.MOV AX,0809HC.MOV AX,89HD.MOV AX,08098.在执行下列指令时,需要使用段寄存器DS的指令是(D)A.STOSWB.ADD AL,CLC.NEG BXD.INC DA[BX]9.假设AL=28H,执行ROL AL,1指令之后的情况是(D ) P125A.AL=14H, CF=1B.AL=50H, CF=1C.AL=14H, CF=0D.AL=50H, CF=010.设AL=04H,BL=0F8H,执行IMUL BL指令后,结果是(D )A.AX=0032HB.AX=00E0HC.AX=03E0HD.AX=0FFE0H11.JMP SI的目标地址偏移量为(A)。
2010—2011学年度第(1)学期期末考试试卷科目:汇编语言程序设计(A )卷考试形式:闭卷考试时间:120分钟系别、班级:姓名:学号:一、单项选择题:(本题共20小题,每小题1分,共20分) 1. 设DS=5788H ,偏移地址为94H ,该字节的物理地址是。
(A) 57974H (B) 57914H (C) 5883H (D) 58ECH 2. IP 指令指针寄存器是属于。
(A) 通用寄存器(B) 段寄存器(C)变址寄存器(D)控制寄存器3.下面有语法错误的指令是。
(A)ADDAL,AH(B)ADD[BX+3],AL(C)ADDAH,[DI](D)ADD[BX],DA1(DA1是变量名)4.完成对DX的有符号数除以2的指令是。
(A)IDIV2 (B)SARDX,1(C)DIV2 (D)RCRDX,15.使进位位置1的指令是。
(A)CLC (B)CMC(C)STC (D)NOP6.设AL=-100,要使AL=100应执行的指令是。
(A)NEGAL (B)NOTAL(C)INCAL (D)DECAL7.在条件转移指令中,结果为负数则转移的指令是。
(A)JNS (B)JZ(C)JS (D)JC8.下面的XCHG指令中,语法正确的是。
(A)XCHGAL,DS (B)XCHGBH,[BX](C)XCHGAL,OFH (D)XCHGBUF1,BUF29.一条指令中目的操作数不允许使用的寻址方式是。
(A)寄存器寻址(B)立即数寻址(C)变址寻址(D)直接寻址10.设SP=1FFFH,执行下列指令后,SP寄存器的值是。
11.┇12.POPF13.PUSHBX14.PUSHBX15.┇(A)2000H (B)2002H(C)1FFCH (D)1FFEH16.LESSI,[2000H]指令的全部功能是。
(A)把地址2000H送SI(B)把地址2000H字单元的内容送SI(C)把地址2000H字单元内容送SI,把2002H字单元内容送ES(D)把地址2000H字单元内容送ES,把2002H字单元内容送SI17.设AL=04H,CL=0F8H,执行MULCL指令后,结果是。
大工17秋《汇编语言程序设计》在线测试2试卷总分:100得分:100一、单选题(共10道试题,共40分)1.汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是()。
A.名字项B.操作数项C.注释项D.以上都不对正确答案:B2.汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法()。
A.名字的第一个字符可以是大写英文字母B.名字的第一个字符可以是字母、数字、@、_C.名字的有效长度≤31个字符D.一般来说,名字项可以是标号正确答案:B3.以下五个指令(1)MOVAL,55H(2)MOVCL,2(3)ROLAL,CL(4)ORAL,1(5)RCLAL,CL顺序执行完后,(AL)=多少?A.54HB.53HC.55HD.52H正确答案:A4.以下五个指令(1)MOVAL,55H(2)MOVCL,2(3)ROLAL,CL(4)ORAL,1(5)RCLAL,CL顺序执行完后,(CL)=多少?A.2B.3C.4D.5正确答案:A5.以下五个指令(1)MOVAL,55H(2)MOVCL,2(3)ROLAL,CL(4)ORAL,1(5)RCLAL,CL顺序执行完后,CF=多少?A.1B.2C.3D.0正确答案:A6.如果(AL)=01111111B,执行INCAL指令后,CF=()。
A.1B.0C.2D.和执行INCAL指令之前的取值保持一致正确答案:D7.如果(SP)=30H,执行PUSHBX指令后,(SP)=()。
A.28HB.2EHC.32HD.31H正确答案:B8.如果当前(BL)=57H,执行指令ADDBL,0F0H后,OF标志位的取值为()。
A.1B.0C.不确定D.2正确答案:B9.在DEBUG中,T命令的功能是()。
A.观察某内存单元的当前内容B.连续运行被调试的程序C.单步执行下一条指令D.修改指定寄存器的内容正确答案:C10.如果数据段中一个内存单元对应的物理地址为2F724H,(DS)=2F00H,那么使用DS段寄存器指明该单元的段基值时,需要使用哪一个偏移量才能正确访问该单元()。
深圳大学期末考试试卷开/闭卷 闭卷A/B 卷 B 课程编号 15030600课程名称 编程语言学分 2.5命题人(签字) 审题人(签字) 年 月 日 题号 一 二 三 四 五 六 七 八 九 十 基本题总分附加题得分评卷人一.选择题(共10题,每小题2分,共20分,答案请填写在第四大题前的表格中) 1. 以下哪条不影响语言的可读性?( )A.简单性 B. 正交性 C. 语法设计 D. 类型检查2. 开发专家系统时,通过描述事实和规则由模式匹配得出结论,这种情况下适用的编程语言是( )。
A.逻辑式语言 B.函数式语言 C.脚本语言 D.命令式(或过程式)语言 3. 考虑以下文法: <S> →<S>a<A> | b <A> → <A>b | b以下语句中哪个属于该文法生成的语言?( ) A.bbaabb B.bbababb C.babaabb D.bababb4.以下哪些文法有二义性? ( ) A.<S>→<A><A>→<A>+<B>|<id> <B>→<id>*<A> <id>→a|b|c B.<S>→<A><A>→<A>+<A>*<A>|<id> <id>→a|b|c C.<S>→<A><A>→<A>*<B>|<id> <B>→<id>+<A> <id>→a|b|cD.以上三项均二义性5. 以下哪几项属于变量的属性?( )①名字 ②类型 ③生命周期 ④数值 ⑤绑定A. ①②④⑤B. ①②③④C. ①②④D. ①②③ 6. 以下哪些不属于根据存储空间划分的数组分类?( )A. 固定栈动态数组B. 栈动态数组C.静态数组D.显示堆动态数组 7.子程序的一般特性包括以下哪几项?( ) ①每个子程序只有一个入口②调用子程序与被调用子程序之间是平等的_____________ ________ 学院 专业 姓名 学号 座号 ( 密 封 线 内 不 答 题 ) ………………………………………密………………………………………………封………………………………………线………………………………③当执行被调用子程序时,调用子程序被暂停④被调用子程序终止时,控制权交还给调用子程序A.①②③B. ①②④C. ②③④D. ①③④8. 以下哪几项属于指针类型的设计问题?( )①指针变量的生存期②堆动态变量的生存期③指针的声明④指针的初始化A. ①②B. ①②③C. ①②④D. ①②③④9. 在采用从右到左计算的语言中,已知b=10,以下哪些语句一定能改变变量b的值?( )A. if((b++ != 12) && (b<5)) b = b/2;B. while((b++ / 3) || (b < 12))break;C. if((b++ != 12) || (b<5)) b = b/2;D. 以上三项都不能10. 以下哪些问题属于迭代语句的设计问题( )①控制迭代语句的设计②迭代语言的类型③控制语句的位置④迭代表达式无法表达的值A.①③B. ①④C. ②③D. ③④二.判断题 (共10题,每小题1分,共10分,答案请填写在第四大题前的表格中)11. 声明式语言包括了逻辑式语言,关系式语言,和基于约束的语言。
汇编语言程序设计复习题一、选择题:1、中断类型21H是DOS功能调用,功能号必须事先存放在________中。
A.AH B.AL C.AX D.DS2、 Intel8088CPU对内存的管理采用了分段技术,每段的最大值为________。
A.512KB B.64KB C.64MB D.1024KB3、段地址和偏移地址为126DH:3000H的储存单元的物理地址是________。
A.156D0H B.426DH C.3126DH D.3126DH4、已知(DS)=3000H,(BX)=2000H,(SI)=1000H,BUFFER=4000H 则指令:MOV AL,BUFFER[BX][SI]的源操作数所在的储存单元地址是________。
A.37000H B.0A000H C.21400H D.7000H5、下列数据传送指令中,不正确的是________。
A.PUSH CS B.POP DS C.MOV [SI],[BX] D.MOV AL,80H6、堆栈指针SP=3000H,执行如下指令:PUSH AXPUSH DSPOP CXADD AX,BX之后,SP=________。
A.2FFDH B.2FFAH C.2FFEH D.2FFCH7、若要检查AX中的内容是否为零,用下面的________指令可以达到目的。
A.TEST AX,0000H B.AND AX,0000HC.SUB AX,0000H D.MOV AX,0000H8、在指令REPZ MOVSB中,CX中是________。
A.移动字节数B.移动字数 C.无关 D.记录数9、设一中断类型码是45H,则根据它可以确定________。
A.中断服务程序入口地址是45HB.中断向量表的第45号单元C.中断服务程序存放的位置D.中断向量存放在中断向量表114H开始的单元中二、填空题:1、8088CPU无符号数的最大值是___________________。
汇编语言程序设计试题及答案一.名词解释(本大题共5小题,每小题3分,共15分)试解释下列名词的含义。
1.寄存器:计算机系统内,位于CPU内部的存储单元,CPU访问此类存储单元不需要使用总线。
2.物理地址:CPU通过地址总线向外发送的20位地址,在访问内存单元前,CPU必须先将CPU内部的逻辑地址转换为物理地址。
3.段基值:逻辑地址的一个组成部分,用于指示一个段在内存中的起始地址。
4.寻址方式:指令获取操作数的方式。
5.补码:计算机系统内部用于表示带符号数的一种编码,正整数的补码为其真值本身,负整数的补码为其真值变反加1的结果。
二.计算题(本大题共5小题,每小题4分,共20分)试按照各小题的要求给出计算结果。
1.将十进制数100分别转换为二进制、十六进制数,它们的表示形式分别为多少?答案:二进制为 01100100B,十六进制为64H2.假设(DS)=0C00H,(BX)=0210H,对于指令MOV DS:100H[BX],AL,其目的操作数的物理地址为多少?答案:EA = (BX)+0100H = 0310H,物理地址 = (DS)*16 + EA = 0C000H + 0310H = 0C310H3.假设(BX)=0100H,(SI)=0020H,对于指令ADD DL,[BX][SI],其源操作数的偏移量为多少?答案:EA = (BX)+(SI)+ 0 = 0120H4.假设当前(SP)=0060H,连续执行5条PUSH指令后,(SP)=?答案:每执行一条PUSH指令,(SP)被减2,因此执行5条PUSH指令后,(SP)=0060H – 5*2 =0060H -000AH = 0056H5.对于一个十进制数– 80,其二进制补码表示形式为多少?答案:首先求得二进制真值为– 01010000B,负数补码为变反加1的结果,即 10110000B三.排错题(本大题共4小题,每小题5分,共20分)每小题列出了一条指令,判断该指令有无语法错误,如果存在语法错误,请指出具体的错误原因,判断正确给2分,分析正确给3分,判断错误不给分。
V2 DW 10 DUP(4) DA TA ENDS1、如下程序段,每条指令执行后(连续执行),AX 寄存器的内容是什么?(1).MOV AX,V1+4 ;(AX)=____0003H____(2).XOR AX,AX ;(AX)=_0000H_(3).NOT AX ;(AX)=__0FFFFH_____(4).MOV AX,TYPE V2 ;(AX)=_0002H_(5).MOV AX,V2-V1 ;(AX)=0006H_2、下列语句是否正确?错误的说明原因或改正(1).MOV CX,($-V1)/2 ;________________(2).ADD CS,BX ;_错,CS不能为目的寄存器_______________(3).MOV V1,V2 ;错,两个操作数不能都是存储器操作数_(4).MOV DS,1000H ;错,立即数不能直接传给段寄存器(5).RET 3 ;__正确3、设下面是一个程序段,请填充其中的空白。
功能:设在ADDR单元存放着Y的地址,下面程序统计Y中“1”的个数,并存入COUNT单元中。
(有问题)MOV CX,0MOV BX,ADDR ;①MOV AX,[BX]REP1:TEST AX, 0001H ;②JZ EEIT ;③JMP SHIFT ;④3.对于IBM-PC系统而言,CPU与外设之间的信息交换通常包括哪些方式?简要说明这些方式的特点。
4.简述汇编试验中用DEBUG显示、修改内存内容的方法。
1. 子程序:优点:模块化,节省内存,可被多次调用,编程效率高。
缺点:额外开销(保存返回地址,计算转向地址,传递参数等)大,增加了执行时间。
适用于子功能代码较长、调用比较频繁的情况。
宏调用:优点:参数传送简单,执行效率高。
缺点:不节省空间,适用于子功能代码较短、传参较多的情况。
2.70H,71H,72H,73H;70H,71H放偏移量;72H,73H放段地址;3.程序直接方式,程序中断方式,DMA方式4.-u -r四、编程(30分)1.写完整格式程序,功能:输入单个字符,如果是数字字符(0~9),则显示字符串“numeric”,否则显示字符串“nonnumeric”。
佛山科学技术学院2007~2008学年第二学期《汇编语言程序设计》课程期末考试B卷试题解答及评分标准专业、班级: 任课教师:雷晓平一.单项选择题(每小题1分,共15分)1.B 2.B 3.D 4.B5.C 6.A 7.B 8.C9.A 10.D 11.A 12.D 13.C 14.B 15.C 二.填空题(每空1分,共10分)1.0 ,12.,3.MOV BX, offset buf4.246D 0F6H5.46.10H,16H,21H三.简答题(每题4分,共20分)1.(1)操作数类型不一致。
改:Mov BH,100 1分(2)源操作数溢出了。
改:mov BYTE PTR [BX],100 1分(3)CS段寄存器不能直接赋值。
改:mov ds,ax 1分2.(1) mov bx,offset array+(5-1)*2 或lea bx, array+(5-1)*2 1分Mov dx,[BX](2) mov bx, offset array 1分Mov dx,[BX+8](3) mov bx, offset array 1分Mov si,8Mov dx,[bx+si]3.(1) 0F1H 1.5分(2) 0FBH 1.5分4.(1)(ah)=4cH 1分(2)(al)= 2aH 1分(3)(ax)=65b7H 1分5.画出存储图3分四、程序阅读题(每题10分,共40分)1.Bx=0c02dh 4分2.ax=1 cx=20 各2分3.Mov ax,dataMov ds,ax 1分Mov ah,9 1分Mov dx,offset msg 1分Int 21h 1分4.(1) sub ax,[bx+si] 2分(2) sub word ptr[0524], 2A59 2分5.把数据段长度为17的字符串mess1转送到附加段mess2中。
4分五. 程序设计题(共15分)参考答案:1.Mov cx,M 1分Mov ax,0Mov si,ax 1分Next: add ax,ARRAY[si] 1分Add si,2 1分Loop next 1分Mov total,ax 1分2.mov al,bl 1分Cbw 1分Div cl 2分Shl al,1 1分Mov dx,ax 1分3.Mov cl,8 2分Rol ax,cl 2分Add ax,bx 2分。
汇编考试及答案汇编语言考试试题及答案一、选择题(每题2分,共20分)1. 汇编语言是一种()。
A. 高级语言B. 低级语言C. 机器语言D. 面向对象语言答案:B2. 在汇编语言中,指令通常由()组成。
A. 操作码和操作数B. 操作数和地址C. 操作码和地址D. 地址和数据答案:A3. 汇编语言程序的执行过程包括()。
A. 编译和链接B. 编译、链接和运行C. 编译和运行D. 链接和运行答案:B4. 以下哪个寄存器是8086 CPU中的段寄存器()。
A. AXB. BXC. CSD. DX答案:C5. 汇编语言中,用于将数据从内存传送到寄存器的指令是()。
A. MOVB. PUSHC. POPD. CALL答案:A6. 汇编语言中,用于将数据从寄存器传送到内存的指令是()。
A. MOVB. PUSHC. POPD. CALL答案:A7. 在汇编语言中,以下哪个指令用于无条件跳转()。
A. JMPB. JZC. JNZD. JC答案:A8. 在汇编语言中,以下哪个指令用于条件跳转()。
A. JMPB. JZC. JNZD. JC答案:B9. 汇编语言中,用于实现循环结构的指令是()。
A. LOOPB. JUMPC. CALLD. RET答案:A10. 在汇编语言中,用于实现子程序调用的指令是()。
A. CALLB. JMPC. RETD. INT答案:A二、填空题(每题2分,共20分)1. 汇编语言是一种______语言,它与机器语言非常接近,但比机器语言更易于理解和编写。
答案:低级2. 汇编语言程序需要通过______和链接两个步骤才能生成可执行文件。
答案:编译3. 8086 CPU中的寄存器可以分为______寄存器和段寄存器两大类。
答案:通用4. 在汇编语言中,操作码是指令的______部分,它决定了指令要执行的操作。
答案:核心5. 汇编语言中的指令通常由______和操作数两部分组成。
答案:操作码6. 在汇编语言中,用于将数据从寄存器传送到内存的指令是______。
山东大学_ 汇编语言程序设计__课程试卷(B)
一、单项选择题(每小题2分,共20分)
1、下列数据()在汇编语言中是合法的。
A. 108D-108Q
B. 102B*0ABH
C. HIGH AX
D. 19BH+25D
2、若栈顶的物理地址是20100H,当执行了指令CALL DWORD PTR[BX]
后,栈顶的物理地址为()。
A. 20096H
B. 20098H
C. 200FCH
D.200FEH
3、已知AX=1234,BX=806AH,执行了指令SUB AH,BH后,标志位OF和
CF的内容分别是()。
A.0,0
B.0,1
C.1,0
D.1,1
4、已知在寄存器AX和BX中分别存放着一个无符号数据,在满足条件AX
≧BX时转到标号OK去执行,不能实现该功能的程序段是()。
A..CMP AX,BX
JNB OK
B.CMP AX,BX
JA OK
C.CMP BX,AX
JBE OK
D.CMP AX,BX
JNC OK
5、已知AL和BX中存放的是带符号的数据,现要计算BX-AL,应该使用下述程序段()
A. MOV AH,0 B CBW
SUN BX,AX SUB BX,AX
C. SUB BX,AL D SUB BL,AL
SBB BH,0
6、假定用伪指令DA TA DB 12H,34H定义了两个字节数据,现需要将数据12H取入寄存器AL,将数据34H取入寄存器AH,能完成此功能的程序段是()
A. MOV AX,DA TA
B. MOV SI,DA TA
MOV AX,[SI]
C. MOV SI,OFFSET DA TA
MOV AL,[SI+1]
MOV AH,[SI]
D. LEA SI,DA TA
MOV AX,[SI]
7、已知SP=100H,指令RET(远返回)执行后,SP的值为()。
A.106H
B.104H
C.0FCH
D.0FAH
8、假定寄存器AX的内容为-32768,在执行了指令NEG AH后,标志位SF和OF的内容为()。
A.0,0
B.0,1
C.1,0
D.1,1
9.循环控制指令LOOP与循环体入口指令的距离只能在()范围内。
A.-126~+129
B.-128~+127
C.-32768~+32767
D.-32766~+32769
10、已知寄存器DS、CS、ES和SS的值分别为1000H,2000H,3000H和4000H,BP 和SI的值分别为0100H和0200和,则指令MOV AX,[SI+BP-0100H]的源操作数的物理地址是()。
A.10200H
B.20200H
C.30200H
D.40200H
二、填空题(每空2分,共20分)
1、下列程序段信息是使用DEBUG命令显示的结果,命令执行完后,AX,BX及IP的内容及标志位OF,CF的状态是什么?
C>DEBUG X
-U 100 111
0F65:0100 BB0100 MOV BX,0001
0F65:0103 8A07 MOV AL,[BX]
0F65:0105 8A6701 MOV AH,[BX+01]
0F65:0108 38E0 CMP AL,AH
0F65:010A7F03 JG 010F
0F65:010C 28C4 SUB AH,AL
0F65:010E CC INT 3
0F65:010F 28ED SUB AL,AH
0F65:0111 CC INT 3
-R
AX=0000 BX=0000 CX=0020 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=OF75 ES=OF65 SS=OF65 IP=0100 NV UP EI PL NZ NA PO NC
0F65:0100 BB0100 MOV BX,0001
-R IP
IP 0100
:0103
-G
AX=( ①) BX=( ②) CF=( ③) OF=( ④) IP=( ⑤)
2、下面是一个子程序,请根据子程序的说明问填充其中的空白。
子程序的说明文件如下:子程序名称:ABS
子程序功能:求一组带符号字节数据的绝对值之和
入口:数据的首地址DS:SI中存放,数据以0结束
出口:BX=结果
ABS PROC NEAR
XOR BX,BX
(⑥)
AGAIN:LODSB
OR AL,AL
(⑦)
JNS PLUS
(⑧)
PLUS:(⑨)
ADD BX,AX
JMP AGAIN
STOP:(⑩)
ABX ENDP
一、看懂下列程序并回答下列问题(10分)
1、用文字说明该程序的功能?
2、给程序加必要的注释。
3、程DEC_DIV的入口条件是什么?过程BIDE完成什么功能?
4、程序执行后,寄存器BX的内容发生了什么变化?
NAME WJST
STACK SEGMENT PARA STACK‘STACK’
DB 512 DUP(0)
STACK ENDS
WJST SEGMENT
ASSUME CS:WJST,DS:WJST,SS:STACK
;MAIN P ART OF PROGRAM
START:CALL HEBI
CALL CRLF
CALL BIDE
CALL CRLF
JMP START
HEB1 PROC NEAR
XOR BX,BX
NEWCHAR:MOV AH,1
INT 21H
CMP AL,30H
JL EXIT
CMP AL,39H
JG NEXT
JMP NEXTO
NEXT:CMP AL,41H
JL EXIT
CMP AL,46H
JG NEXT1
JMP NEXTA
NEXT1:CMP AL,61H
JL EXIT
CMP AL,66H
JG EXIT
JMP NEXTB
NEXTO:SUB AL,30H
JMP DONE
NEXTA:SUB AL,37H
JMP DONE
NEXTB:SUB AL,57H
DONE:CBW
XCHG AX,BX
MOV CX,10H
MUL CX
SCHG AX,BX
ADD BX,AX
JMP NEWCHAR EXIT:RET
HEBI ENDP
BIDE PROC NEAR
MOV CX,10000
CALL DEC_DIV
MOV CX,1000
CALL DEC_DIV
MOV CX,100
CALL DEC_DIV
MOV CX,10
CALL DEC_DIV
MOV CX,1
CALL DEC_DIV
RET
BIDE ENDP
DEC_DIV PROC NEAR
MOV AX, BX
MOV DX, 0
DIV CX
MOV BX, DX
MOV DL, AL
ADD DL, 30H
MOV AH, 2
INT 21H
RET
DEC_DIV ENDP
CRLF PROC NEAR
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,02
INT 21H
RET
CRLF ENDP
WJST ENDS
END START
答案:
四、简答题(每小题5分,共30分)
1、如果AL的第3位与AH的第4位不相同,则CF置为1,否则将CF清0。
2、AX中的数据满足偶校验,则DX清0,否则DX置全。
3、已知DX:AX中联合存放着一个32位的数据,变成将该数据算术右移n位。
设n存放在寄存器CL中。
3、请将屏幕的第0页第10行第40列所显示的字符变成加亮并闪烁,如果该位置显示的字符为小写字母,还需要将其改变为大写。
(属性字节的第7位为闪烁位,第3位为加亮位)。
4、已知AL,BL,CL中分别存放着一个带符号的数,如果她们的绝对值都大于15,则将AH清0,都小于15,则将AH置1,否则将AH置全1。
5、将AH的第6位和第7位的值写入到BL的第i位和i+1位中,BL 的其余位不许改变,设i在CL中。
五、编程题(20分)
答题时先写出解题思路,程序的关键语句后加适当的注释。
已知TEXT开始的单元中存放着一篇英文文章,文章CTRL-Z结束。
编制程序将该文章中从第M个字符开始到第N个字符为止的子串移动到第L个字符开始的位置上,其中M,N和L分别存放DA TAM,DA TAN 和DA TAL单元中,并且M<N。
(CTRL-Z的ASCII码为1AH)。