山东大学_ 汇编语言 教程 手册 编程程序设计__课程试卷(B)
汇编语言试题及答案

汇编语言试题及答案一、单项选择题(每题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大学《汇编语言程序设计》期末课程考试试卷

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对数据交换的控制,数据传送速度快,但这种方式电路结构复杂,硬件开销大。
2.山东大学程序设计-答案

程序设计一、程序阅读题,写出程序的输出结果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)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
山东大学_ 汇编语言程序设计__课程试卷(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)。