西华大学2005级汇编语言程序设计期末试题A答案
《汇编语言》试题A及参考答案

专业级,学生姓名: 学号:专业级,学生姓名: 学号: ()考试科目:汇编语言程序设计专业级,学生姓名: 学号: ()考试科目:汇编语言程序设计专业级,学生姓名: 学号: ()考试科目:汇编语言程序设计汇编语言试题(A)参考答案一:选择题(每题2分)二:填空题(每题2分)1. 0,5,54.随机数5..ASM9..OBJ三:简答题(每题5分)1.(1)用DOS 21H中断调用的功能调用4CH在用户程序结束后插入下面语句 MOV AH,4CH INT 21H (2)用BIOS中断调用20H 在用户程序结束后插入:INT 20H 2. FAR;段间调用。
NEAR;段内调用。
3.(1)无符号数乘2:SHL AX,1;RCL DX,1无符号数除2:SHR DX,1;RCR AX,1(2)有符号数乘2:SHL AX,1;RCL DX,1有符号数除2:SAR DX,1;RCR AX,1BX,OFFSET ADDNUMADD [BX]MOV AL,DS:[BX]5.(1)1200H(2)4C2AH(3)4C2AH(4)65B7H为地址[1200H]所指内容,AX 为1200H。
四:编程题( 2题共30分)1.(10分)MOV AX,2E00HMOV DS,AXMOV BX,[0100H]MOV AX,[0100H+2]MOV DS,AXMOV AX,[BX]2.(20分)STACK SEGMENT PARA STACK ‘stack’ (5分)DB 64 DUP(0)STACK ENDSDATA SEGMENT (5分)STRING DB‘……$’RESULT DB 26 DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA (5分) MAIN PROC FARSTART: MOV DX,DATAMOV DS,DXMOV CX,0FFH;255MOV AH,0MOV SI,0NEXT: MOV AL,STRING[SI] (5分)SUB AL,61HMOV DI,AXINC RESULT[DI]INC SILOOP NEXTMOV AH,4CHINT 21HMAIN ENDPCODE ENDSEND START汇编语言试题(A)评分标准和评分细则一:选择题(每题2分)二:填空题(每题2分)1. 0,5,54.随机数5..ASM9..OBJ三:简答题(每题5分)1.(1)用DOS 21H中断调用的功能调用4CH在用户程序结束后插入下面语句 MOV AH,4CH INT 21H (2)用BIOS中断调用20H 在用户程序结束后插入:INT 20H 2. FAR;段间调用。
汇编语言程序设计期末考试-试卷及参考答案

汇编语言程序设计期末考试-试卷及参考答案【汇编语言程序设计】期末考试-试卷及参考答案执行上述两条指令后,正确的结果是( B )。
A.(AX)=1001H; B.(AX)=0FFFH;C.(AX)=1000H; D.(AX)=0111H。
6.串指令中的目的操作数地址一定是由____A_ _提供。
()A.ES:[DI] ; B.SS:[BP];C.DS:[SI] ; D.CS:[IP]。
7.将DX的内容除以2,正确的指令是( C )。
A.DIV 2 ;B.DIV DX,2 ;C.SAR DX,1;D.SHL DX,1。
8. 用户为了解决自己的问题,用汇编语言所编写的程序,称为( B )。
A.目标程序; B.汇编语言源程序;C.可执行程序; D.汇编程序。
9.用一条指令仅实现将AX←BX+SI的方法是( D )。
A.XCHG AX,[BX][SI] ;B.MOV AX,[BX+SI];C.LEA AX,BX[SI] ;D.LEA AX,[BX][SI]。
10.设SP初值为2000H,执行指令“PUSH AX”后,SP的值是( C )。
A.1FFFH; B.1998H;C.1FFEH; D.2002H。
2. C二、指出下列指令的出错原因,并改正。
(每小题2分,共12分)1.MOV BX,DL;操作数类型不匹配,改正为:MOV BL,DL 或MOV BX,DX2.MOV CS,AX;代码段寄存器CS不能作目的操作数,改正为MOV DS,AX3.ADD AX,DS;段寄存器DS的内容不能作为加法指令的操作数,改正为MOV BX,DSADD AX,BX4.TEST BX,[CX];不能使用CX实现寄存器间接寻址,改正为MOV SI,CXTEST BX,[SI]5.SUB [BX],[BP+SI];两个操作数不能同为存储器操作数,且两个操作数的数据类型不确定,改正为:MOV AX,[BX]SUB AX,[BP+SI]或:MOV AL,[BX]SUB AL,[BP+SI]6.SHL DX ;没有给出移位次数,改正为SHL DX,1或 SHL DX,CL三、程序填空题(注意:每空只能填一条指令,并注释说明所填指令的作用!每空3分,共18分)1.在表TABLE处存放着N个无符号字节数,求表中前10个字节数的总和并保存在AX寄存器中。
2005级汇编语言程序设计试题A卷ans

第1页 共7页南华大学2007–2008学年度第1学期汇编语言程序设计 课程考试试卷(A 卷、2005级)考试日期:2008年1月 16日 考试类别:考试 考试时间:120分钟 题号 一 二 三 四 五 六 总分 得分一、 填空题:(每空1分,共20分)1、设SS=1000H ,SP=10H ,AX=BX=5678H ,顺序执行PUSH AX, PUSH BX 后,SP=__0CH ___,AX=___5678H ____,BX=__5678H _____。
2、MOV AX, [1234H]指令中的源操作数的寻址方式为___直接寻址___。
3.汇编语言程序上机编译的命令是___masm_____,连接的命令是__link____ 。
4.如果在一个程序开始执行以前(CS )=1a45H ,(IP )=2B40H ,则该程序的第一个字的物理地址是__1CF90H__________。
. 5.DB 、DD 伪指令中定义的每个操作数分别占__1__、__4__字节。
6.子程序的参数传送方式有变量传送, __寄存器传送__和地址表,__堆栈传送__四种方式。
7.汇编程序有2种功能调用,分别为___宏调用______、___子程序调用____。
8.中断系统的中断向量表用来存放__相应的中断处理程序的入口地址____,共预留了__1k __个字节空间。
9. 一个中断类型号为11H 的中断向量存储在地址为 __0044h __至__0047h _的单元得分阅卷人…………………………………线………………………………………订………………………………………装………………………………………学院 专业 考号 姓名第2页 共7页中。
10、在串操作指令CMPSB 执行时,用于源地址的寄存器是__SI ____;目的地址的寄存器是____DI ____;如果DF=1,则该指令执行后,目的地址寄存器__地址自动减量___。
《汇编语言程序设计》期末复习题和答案.doc

《汇编语言程序设计》期末复习题及答案一、选择(30题)1.下列是8位带符号二进制数的补码,其中最大的是(B )。
B、000000012.在一段汇编语言程序中多次调用另一段程序,用宏指令比用子程序实现(C )C、占内存空间大,但速度快3.数据定义为:EE DB 3, 4CC DW 3456H, 6789H执行指令“MOV CX, WORD PTR EE+1” 后,(CX) = ( B )B、5604H4.有如下指令序列:MOV AL, 95HMOV CL, 2SAR AL, CL上述指令序列执行后,AL的内容是(D )D、0E5H5.设A=186m B=273R,C=0BB E把这三个数看成无符号数,则它们之间的关系是(D )D、A<B=C6.用一条指令实现寄存器BX和SI的内容相加,并将结果送入AX中,这条指令是(D )D、LEA AX, [BX] [SI]7.要从端口1234H中读入8位数据,其指令应是(C )C、MOV DX, 1234HIN AL, DX8.循环控制指令LOOPNZ/LOOPNE继续执行循环的条件是(B )B、CX尹。
且ZF=O9.8088/8086存储器分段,每个段不超过(D )D、64K个字节10.表示过程定义结束的伪指令是(A )A、ENDP11.用来存放下一条将要执行的指令代码段地址的段寄存器是(D )D、CS12.假定(SS) =1000H, (SP) =0100H, (AX) =5609H,执行指令PUSH AX 后,存放数据56H的物理地址是(D )D、100FFH13.执行“SUB AX, [BP] [DI] ”指令,取源操作数时,使用的物理地址表达式是(A )A、16*SS+BP+DI14.设AX中有一带符号数8520H,执行“SA R AX, 1”指令后,AX中的值是(C )C、0C290H15.设(BX) =1234H, (DS) =2000H, (21234H) =5678H,则指令“LEA SI, [BX] ” 执行后的结果是:(B )B、SI=1234H16.测试BL中的数是否为负数,若为负数则转移至AA1处,横线处的指令应为(A )A、JNE17.设DF=O, (SI) =20H, (CX) =10,执行“REP LODSW"指令后,SI 中的内容是(C )C、34H18.在程序执行过程中,IP寄存器中始终保存的是(B )B、下一条指令的首地址19.设SP初值为2000H,执行指令“POP AX”后,SP的值是(A )A、2002H20.若AX=3500H, CX=56B8H,当AND AX, CX 指令执行后,AX= ( A )A、1400H21.汇编源程序时,出现语法错误的语句是(A )A、MOV DS, 1200H22.将数据1234H存放在存储单元中的伪指令是(C )C、DATA1 DB 34H, 12H23.下面指令执行后,可能改变AL寄存器内容的指令是(D )D、AND AL, BL24.操作数地址存放在寄存器的寻址方式称为(B )B、寄存器间接寻址25.用户为了解决自己的问题,用汇编语言所编写的程序,称为(B )B、汇编语言程序26.用DOS功能调用时,子功能调用的编号应放在(C )C、AH27.提供串指令中目的操作数地址的是(C )C、ES: [DI]28.在寄存器间接寻址方式下,能够提供有效地址的寄存器有(B )B、BX, BP, SI, DI29.已知某操作数的物理地址是2117AH,则它的段地址和偏移地址可能是(A )A、2025 : 0F2A30.中断向量表中的每个中断向量所占内存空间为:(B )B、4个字节二、填空(30题)1.在用直接寻址方式寻址操作数时,系统对段地址的默认值在段寄存器DS 中。
汇编语言程序设计试题参考答案

汇编语言程序设计参考答案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对数据交换的控制,数据传送速度快,但这种方式电路结构复杂,硬件开销大。
汇编语言期末考试试题及答案

汇编语言期末考试试题及答案------------------------------------------作者------------------------------------------日期汇编语言模拟试题及答案一,单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题 分,共 分).指令☺ ∙☞✌∙❆∙☠☜属于参考答案为 ✌.段内转移直接寻址.段内转移间接寻址.段间转移直接寻址.段间转移间接寻址☯解析 略.下列叙述正确的是参考答案为 ✌.对两个无符号数进行比较采用 指令,对两个有符号数比较用 指令 .对两个无符号数进行比较采用 指令,对两个有符号数比较用 指令 .对无符号数条件转移采用☺✌☜☺☠指令,对有符号数条件转移用☺☝☜☺☠☹指令.对无符号数条件转移采用☺☝☜☺☠☹指令,对有符号数条件转移用☺✌☜☺☠指令☯解析 对于无符号数和有符号数的比较都采用 指令;指令是串比较指令;对两个无符号数的条件转移指令应是:☺✌☜、☺☠、☺ ☜、☺☠✌;对两个有符号数的条件转移指令应是:☺☝☜、☺☠☹、☺☹☜、☺☠☝。
.一个有 个字的数据区,它的起始地址为 ✌☟: ✌☟,请给出这个数据区最末一个字单元的物理地址是参考答案为 ✌. ☟. ☟. ☟. ☞☜☟☯解析 末字与首字相隔( - =) 个字,且每个字占用 个字节,因此末字单元的物理地址应为:首字单元的物理地址+( - ) 即∙✌☟☟+ ✌☟+( - ) = ☟。
.在下列指令的表示中,不正确的是参考答案为 ✌. ✞∙✌☹,☯✠✋.☺ ∙☟❆∙☠✋. ☜∙☯✠. ✞☹∙☹☯解析 当只有一个存储器操作数时,这个操作数的类型不明确,例如选项 中的☯✠,没有明确的说明访问该存储单元的类型,此时存储器操作数就必须需用类型说明,如☜∙✡❆☜∙❆∙☯✠∙或∙☜∙∙❆∙☯✠但是在题目的选项 中,没有指出存储器操作数类型,所以该指令是不正确的;而其它选项中的指令均是正确的。
汇编语言试题库
汇编语言2005—2006学年第二学期期末考试复习题及参考答案一、填空1.十进制数369转换成二进制数为()2,转换成十六进制数为()16.2.计算机中的指令由(操作码)和(地址码)两部分组成。
3.8086的地址总线有20根,寻址范围为(1M)字节。
4.下一条将要执行的指令的地址存放在寄存器()中。
5.写出IBM PC机的三种子程序返回的指令(RET),(IRET),(IRETD)。
6.汇编语言源程序需经过(汇编)程序汇编,(obj)程序连接才能生成可执行文件。
7.存储器某单元的地址表示为2314H:4132H,则它的偏移地址=(4132),物理地址=(2314h+4132h=6446h)8.REP指令前缀与()指令配合使用。
9.在显示器上查看和修改内存单元的内容可以使用DEBUG的()和()命令。
10.(AL)=BFH,要求屏蔽第0,1两位,则要执行指令();如果要求第0,1位变反,可使用指令()11.宏汇编适合于(),()的子功能段使用;二、选择题1.设字长N=16,有符号数7AE9H的补码表示为()A.9EA7H B.76C4H C.8417H D.7AE9H2.比较有符号数3260H与0B425H的大小关系为()A.相等B.小于C.大于D.不能比较3.指令JMP WORD PTR[BX][DI]中转移的目标地址为()A.16d x(DS)+(BX)+(DI)B.16d x(ES)+(BX)+(DI)C.16d x(SS)+(BX)+(DI)D.16d x(CS)+(BX)+(DI)4.在指令MOV AX,[1000H]中,源操作数的寻址方式为()A.立即寻址B.直接寻址C.段内间接寻址D.寄存器寻址5.中断矢量表中存放的是()A.中断类型号B.断点地址C.中断服务程序D.中断服务程序入口地址6.8086的汇编语言指令系统中的条件转移指令可以使程序转移到()A.段内的任何地方B.距该指令偏移地址为-32768~+32767的地方C.距该指令偏移地址为-128~+127的地方.D.段外7.能定义ASCII码字符串的数据定义语句有()A.DB,DW,DD,DQ,DTB.DB,DW,DDC.DB,DWD.DB;8.若(AL)=87H,执行ADD AL,0F5H后,S,Z,C,O,P的状态为() A.SF=0,ZF=0,CF=1,OF=1,PF=0B.SF=1,ZF=0,CF=1,OF=0,PF=1 C.SF=0,ZF=0,CF=0,OF=1,PF=0D.SF=1,ZF=0,CF=1,OF=1,PF=19.比较指令CMP()A.专用于有符号数比较B.专用于无符号数比较C.专用于串比较D.不区分比较的对象是有符号数还是无符号数10.数据传送指令对标志位的影响为()A.都不影响;B.都影响;C.除了SAHF,POPF,其它均不影响.D.除了控制标志位,其它均不影响三、判断题()31.段间调用的子程序必须由伪操作FAR说明为远过程。
20042005学年(下)学期《汇编语言程序设计》试卷(A卷)和答案
华南师范大学计算机学院2004/2005学年(下)学期期末试卷《汇编语言程序设计》试卷(A卷)专业____________年级 04级本班级_______姓名________学号_______(要求:前四题直接写在试卷上)一、填空题:(每小题2分,共10分)1.数-27的补码表示是__11100101____(8位),扩展到16位为__1111111111100101_。
2.一个字5678H存到地址[1234H]单元中,则56H存放在 1235H 单元,78H存放在 1234H 单元。
3.堆栈的栈顶由堆栈指针寄存器指出,非栈顶字由基址指针寄存器指出。
4.编程用的操作数有立即数、寄存器操作数、内存操作数。
5.中断向量是中断子程序的入口,中断向量表是计算机中断服务程序中的一个向量表,它纪录着全部的中断向量二、改错题(每小题2分,共20分)(在不改变原题意的前提下,在试卷上画出每小题的错误之处,并在右边予以改正。
)1.MOV CX,SEG DATAMOV ES,CXMOV DS,ES MOV DS,CX2.B DW 100MOV AL,B MOV AX,B3.MOV DI,30HMOV [DI],16H MOV WORD PTR [DI],16H4.MOV AX,BX,IN AX,BX IN AX,DX5.ADD SI,BX ADD AL,BLDAA6.MOV DX,30SUB [DX],CX SUB WORD PTR [DX],CX7.PUSH AL PUSH AX8.MOV BX,16MOV AL,256 MOV AX,2569.INC AX,1 INC AX10.ADD 80H,AL ADD AL,80HIN 80H,AL IN AL,80H三、阅读程序(根据题目要求写出结果每小题6分,共30分)(可以给指令另加注释,也可以不加。
)1.下面程序的功能是什么?MOV AX,XCMP AX,YJGE LABXCHG AX,YLAB:MOV X,AX选择X,Y中的较大值存入X中2. 执行下列指令后AX、BX寄存器的内容?MOV SI,10HMOV AX,1234HMOV [SI+12H],AXLEA BX,[SI]MOV [SI+14H],BXLES BX,DWORD PTR [SI+12H] AX为1234H,BX为22H3. 下面程序的功能是什么?MOV CH,4LAB:MOV CL,4ROL BX,CLMOV DL,BLAND DL,0FHADD DL,30HCMP DL,3AHJL PRINTADD DL,7PRINT:MOV AH,02INT 21HDEC CHJNZ LAB显示输出BX寄存器里的内容4. 下面程序的功能是什么?STRING DB 100 DUP(?) MOV AX,SEG STRINGMOV DS,AXLEA SI,STRINGMOV CX,100LAB: MOV AL,[SI]CMP AL,’a’JB LAB1CMP AL,’z’JA LAB1SUB AL,32MOV [SI],ALAB1: INC SILOOP LAB将STRING里的小写字母’a’-‘z’转成相应的大写字母’A’-‘Z’5. 下面程序的功能是什么?MOV AX,SEG STRINGMOV DS,AXLEA DX,STRINGMOV AH,0AHINT 21HXOR BX,BXMOV CX,BXMOV CL,STRING[1]LEA SI,STRING[2]MOV AL,’A’LAB:CMP AL,[SI]JNZ LAB1INC BXLAB1:INC SILOOP LAB用BX记录输入缓冲区中有多少个字符‘A’四、问答题(共10分)1.简述上机运行汇编语言程序的过程。
全国2005年1月高等教育自学考试汇编语言程序设计试题
全国2005年1月高等教育自学考试汇编语言程序设计试题课程代码:02321一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题1分,共16分)1.已知某操作数的物理地址是2117AH,则它的段地址和偏移地址可能是( )。
A.2025∶0F2AB.2108∶00EAC.2000∶017AD.2100∶117A2.某程序装入内存后,DS=1200H,CS=1400H,则程序中数据段中的数据最多是( )字节。
A.2KB.4KC.8KD.16K3.以寄存器DI间接寻址的存储器字节单元内容加1的指令是( )。
A.INC [DI]B.INC DIC.INC BYTE PTR[DI]D.ADD [DI],14.有语句:COUNT EQU 256,下列四种叙述中,正确的是( )。
A.COUNT是变量B.COUNT占用一个字节存储单元C.COUNT是符号常数D.COUNT占用二个字节存储单元5.下面指令中,源操作数的寻址方式为立即寻址的是( )。
A.MOV AX,OFFSET AB.MOV AX,AC.MOV AX,A+1D.MOV AX,A[BX]6.已知SP=2110H,执行POP AX后,SP寄存器的值是( )。
A.2111HB.2112HC.210FHD.210EH7.将AX中有符号数除以2的正确指令是( )。
A.SHR AX,1B.SAR AX,1C.ROR AX,1D.RCR AX,18.比较BX和SI中的两个存储器地址,若BX≥SI转向HIGH的正确指令是( )。
A.JAE HIGHB.JBE HIGHC.JEG HIGHD.JLE HIGH9.指令SCASB操作数的段地址一定在( )寄存器中。
A.CSB.DSC.ESD.SS10.有数据定义语句BUF DW 0ABH,1,10 DUP(3 DUP(1,0),2)汇编后,为变量BUF分配的存储单元字节数是( )。
【汇编语言程序设计】期末考试-试卷及参考答案
JC?EXIT
DONE:INC?BX
(3)LOOPNEXT;将计数器 CX 减 1,并判断是否继续下一次循环
EXIT:HLT
2.BUFFER 为起始地址的存储区域中存放有 100 个字节数据,现将其首、尾颠倒过来, 重新排放这 100 个字节数据。请在程序中的空格处填入适当的指令使其完整。 MOV?CX,32H;循环 50 次
letterDB26DUP(?) countEQU$-letter
dataENDS codeSEGMENT ASSUMEcs:code,da:data start:movax,data
movds,ax movcx,count leasi,letter moval,‘A’ next:mov[si],al
movah,9;9 号功能调用显示提示信息
int21h
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程名称:汇编语言程序设计
考试时间:110分钟课程代码:
8401130
试卷总分:
100
分
一、填空题参考答案(本大题共20小题,每小题1.5分,总计30分)
1、248-8
2、条件控制(顺序不限)
3、64
4、7856H
5、7464H
6、1234H
7、98、VAR 的最高位为09、22H 10、1800FH 11、1,1,
0,
012、0014H
001CH
5566H
13、24二、判断正误题参考答案(本大题共10小题,每小题2分,总计20分)
1、错。
使用如MASM.EXE 等汇编程序对源程序汇编时才可以检查出语法错误,而LINK.EXE 程序的作用是将各个目标模块连接在一起以生成可执行文件。
2、对。
3、错。
在加法运算中,OF 标志位用于表示有符号数的溢出。
CF 标志位用于表示无符号数的溢出。
4、错。
不能直接将立即数传递到段寄存器中。
5、错。
操作数类型不匹配
6、错。
不能直接对两个内存单元进行操作
7、对。
8、错。
在PC 机中,当移位次数大于1时,需事先将移位次数放入CL 中。
9、错。
操作数的类型不明确。
10、错。
诸如BYTE
PTR 等形式的属性操作符只能用于内存单元。
三、简答题参考答案要点(本大题共5小题,其中每小题4分,总计20分)
1、Call 指令的功能是调用子过程。
执行该指令时,系统会先将返回地址进栈保护,然后再修
改cs 和ip 寄存器的内容,从而让程序的流程转向对应的子过程。
ret 指令经常用在被调用过程中,其功能是返回调用过程。
执行该指令时,系统会先将当前
栈顶单元的内容读取出来放入cs 和ip 寄存器中,从而让程序的流程发生改变。
2、
MOV AX,VAL1XCHG AX ,VAL2
MOV
VAL1,AX
3、长度为21个字节。
分配示意图略。
4、
(1)该程序段的功能是计算1+2+3+4+……+100
(2)该程序段执行完后,BX 的内容是1015、
(1)该程序段的功能是将SI 所指向的数据段内一片连续单元的内容复制到附加段内由
DI 所指向的连续单元中。
w
w .
z h
i n
a n
c h
e .c
o m
(2)与该程序段等效的指令:REP MOVSB
四、编程题参考答案(本大题共2小题,其中第一小题10分,第二小题20分,总计30分)1、参考程序:CODES SEGMENT ASSUME CS:CODES START:
MOV CX,100
MOV BX,1MOV DL,3MOV DH,0
LOP:
MOV AX,BX DIV DL CMP AH,0
JNZ NEXT INC DH
NEXT:INC BX
LOOP LOP SUB AX,AX MOV AL,DH MOV BL,10DIV BL
MOV CH,AH MOV DL,AL ADD DL,30H MOV AH,2INT 21H MOV DL,CH ADD DL,30H
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H CODES ENDS END START
评分要点:(1)正确统计能被3整除的数据个数
4分(2)正确显示个数
4分(3)程序结构完整、清晰
2分
2、参考程序:DATAS SEGMENT
STR DB 80,?,80DUP(?)
CR DB 13,10,'$'
LETTER DB 81DUP(?)OTHER DB 81DUP(?)DATAS ENDS
w w
w .
z h
i n
a n
c h
e .c
o m
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS START:
MOV AX,DATAS MOV DS,AX
LEA DX,STR MOV AH,0AH INT 21H LEA DX,CR MOV AH,9INT 21H
SUB BX,BX MOV SI,BX MOV DI,BX
MOV CX,BX MOV CL,STR+1ADD BX,2
LOP:
MOV AL,STR[BX]CMP AL,'A'
JB CASE1CMP AL,'Z'JBE CASE2
CMP AL,'a'JB CASE1CMP AL,'z'
JA CASE1CASE2:
MOV LETTER[SI],AL
INC SI JMP NEXT CASE1:
MOV OTHER[DI],AL INC DI NEXT:
INC BX LOOP LOP
MOV LETTER[SI],'$'MOV OTHER[DI],'$'LEA DX,LETTER MOV AH,9INT 21H
LEA DX,CR MOV AH,9INT 21H
LEA DX,OTHER
w w
w .
z h
i n
a n
c h
e .c
o m
MOV AH,9INT 21H MOV AH,4CH INT 21H CODES ENDS
END START 评分要点:
(1)内存单元定义合理,程序结构完整、清晰4分(2)正确输入字符串2分
(3)正确分离原字符串,得到两个子字符串6分(4)正确输出两个子字符串
3分
w w
w .
z h
i n
a n
c h
e .c
o m。