汇编语言程序设计复习1 (带答案)
- 格式:pdf
- 大小:52.18 KB
- 文档页数:3
汇编语言程序设计复习资料1、(单选、2.5分)汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法________。
A、名字的第一个字符可以是大写英文字母及小写英文字母B、名字的第一个字符可以是字母、数字及、@、_C、名字的有效长度≤31 个字符D、在名字中不允许出现$参考答案:B2、(单选、2.5分)当程序顺序执行时,每取一条指令语句,IP 指针增加的值是__________。
A、1B、2C、3D、由指令长度决定的参考答案:D3、(单选、2.5分)下列属于合法的指令是_________。
A、MOV DS,ESB、MOV [SI],[DI]C、MOV AX,BLD、MOV [DI],BL参考答案:D4、(单选、2.5分)下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是________。
A、AX,BX,CX,DXB、BX,BP,SI,DIC、SP,IP,BP,DXD、CS,DS,ES,SS 参考答案:B5、(单选、2.5分)下列传送指令中有语法错误的是_________。
A、MOV CS,AXB、MOV DS,AXC、MOV SS,AXD、MOV ES,AX参考答案:A6、(单选、2.5分)与MOV BX,OFFSET VAR 指令完全等效的指令是_________。
A、MOV BX,VARB、LDS BX,VARC、LES BX,VARD、LEA BX,VAR参考答案:D7、(单选、2.5分)在汇编语言程序中,对END 语句的叙述正确的是________。
A、END 语句是一可执行语句B、END 语句表示源程序到此结束C、END 语句表示程序执行到此结束D、END 语句在汇编后要产生机器码参考答案:C将DX 的内容除以2,正确的指令是_________。
A、DIV 2B、DIV DX,2C、SAR DX,1D、SHL DX,1参考答案:C9、(单选、2.5分)下列数值表达式和地址表达式中,错误的是_________。
汇编语言程序设计第四版【课后习题答案】第1章汇编语言基础知识〔习题1.1〕简述计算机系统的硬件组成及各部分作用。
〔解答〕CPU:包括运算器、控制器和寄存器组。
运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为处理单元提供所需要的数据。
存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。
外部设备:实现人机交换和机间的通信。
〔习题1.2〕明确下列概念或符号:主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB。
〔解答〕主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。
辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速度慢。
RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电后能保存信息。
存储器由大量存储单元组成。
为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常称做I/O端口。
KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。
〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序?〔解答〕用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编译通过的程序就是目标程序。
〔习题1.4〕汇编语言与高级语言相比有什么优缺点?〔解答〕汇编语言与高级语言相比的优点:由于汇编语言本质就是机器语言,它可以直接地、有效地控制计算机硬件,因而容易产生运行速度快,指令序列短小的高效目标程序,可以直接控制计算机硬件部件,可以编写在“时间”和“空间”两方面最有效的程序。
《汇编语言程序设计》期末复习题及答案一、选择(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 中。
《汇编语言程序设计》复习题一、填空题1、8086CPU内部结构按功能分为两部分,即 BU(执行部件)和 BIU(总线接口部件)。
2、CPU中的总线接口部件BIU,根据执行部件EU的要求,完成CPU与主存储器或I/0端口之间的数据传送。
3、8086中的BIU由四个 16 位段寄存器、一个 16 位指令指针、 6 字节指令队列、 20 位地址加法器和总线控制电路组成。
4、8086/8088的执行部件EU由 8 个通用寄存器、 1 个专用寄存器、一个标志寄存器和 ALU 等构成。
5、根据功能不同,8086的标志位可分为状态标志和控制标志。
6、8086/8088构成的微机中,每个主存单元对应两种地址:段基值和偏移量。
7、8086CPU具有 20 根地址线,直接寻址能力可达 1M 。
8、逻辑地址由段基值和偏移量组成,其中的段基值是由段寄存器存储。
9、计算机的指令由操作码和地址码两部分组成。
10. 零地址指令是不带地址码的机器指令,其操作数是由隐含指定提供的。
11. 8088CPU中共有 14 个寄存器,这些寄存器为 16 位。
12. F标志寄存器共有9个标志位,除OF、SF、AF和CF外,还有 DF 、 IF 、 TF 、▁ ZF 和 PF ,其中用于记录是否产生进位的标志位是 CF 。
13. 标号和变量所具有的三种属性分别为段属性、偏移量属性和类型属性。
14. 操作数有三种类型,分别为常数操作数、寄存器操作数和存储器操作数。
15. 一个源程序中可以包含代码段、数据段堆栈段及附加段。
其中代码段是源程序中必不可少的,其它的段可有可无。
16. SEGMENT/ENDS称为段定义伪指令;ASSUME称为段寻址伪指令;NAME/END称为模块定义伪指令;源程序结束伪指令为 END ;过程定义伪指令为 PROC/ENDP 。
数据定义伪指令为 DB 、 DW 、DD 。
17. 一般DOS系统功能调用的步骤为:(1) 送入口参数到指定寄存器;(2)送功能号至AH ;(3)软中断指令INT 。
《汇编语言程序设计》期末复习题百度文库第一章:汇编语言基础知识概述在开始复习《汇编语言程序设计》之前,我们先来回顾一下汇编语言的基础知识。
1.1 汇编语言的定义和作用汇编语言是一种低级语言,可以直接操作计算机硬件,并且具有较高的执行效率。
它是机器语言的可读性表示,通过一系列指令来实现计算机的基本操作。
汇编语言在计算机系统中发挥着重要的作用,特别适合于编写底层程序和对性能要求较高的应用。
1.2 汇编语言的特点与高级语言相比,汇编语言具有以下特点:- 与硬件相关:汇编语言直接操作计算机硬件,可以实现对寄存器、内存及其他硬件资源的直接访问。
- 相对繁琐:由于直接操作硬件,所以汇编指令的书写比较繁琐,需要对计算机硬件有深入的了解。
- 执行效率高:汇编语言编写的程序执行效率高,能够充分发挥计算机硬件的性能。
1.3 汇编语言的基本概念在学习汇编语言时,需要了解以下基本概念:- 寄存器:汇编语言使用寄存器来存储数据和进行计算,常用的寄存器有通用寄存器和特殊寄存器等。
- 指令:汇编语言通过一系列指令来实现计算机的基本操作,如MOV、ADD、SUB等。
- 内存:汇编语言中使用内存来存储程序和数据,在编写程序时需要合理地管理内存。
- 标志位:用于记录计算过程中的状态信息,可以用于控制程序的执行流程。
第二章:汇编语言程序设计实践2.1 环境准备在进行汇编语言程序设计之前,需要正确配置环境,并安装相应的汇编语言开发工具。
一般来说,常用的汇编语言开发工具有MASM、NASM等。
2.2 汇编语言程序的编写编写汇编语言程序需要按照特定的格式和规范进行,一般包括以下几个步骤:- 定义程序入口:使用`start`指令定义程序的入口点。
- 导入库文件:将需要调用的库文件导入到程序中。
- 定义数据段:使用`data`关键字定义数据段,存放程序中用到的数据。
- 定义代码段:使用`code`关键字定义代码段,存放程序的主体逻辑。
- 定义子程序:可以将一些常用的代码逻辑封装成子程序,便于复用。
《汇编语言程序设计》课程知识复习学习材料试题与参考答案一、单选题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.下面指令执行后,改变AL寄存器内容的指令是( D )。
A.TEST AL,02HB.OR AL,ALC.CMP AL,BLD.AND AL,BL2.对寄存器AX的内容乘以4的正确指令序列是( B )。
A.SHR AX,1 /SHR AX,1B.SHL AX,1/ SHL,AX,1C.ROL AX,1 /ROL AX,1D.RCR AX,1/ RCR AX,13.设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是( A )A.85B92HB.86192HC.BB690HD.12169H4.指令JMP FAR PTR DONE属于 CA.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址5.将DX的内容除以2,正确的指令是 CA.DIV 2 B.DIV DX,2 C.SAR DX,1 D.SHL DX,16.编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有( D )。
A.CMPB.SUBC.ANDD.MOV7.汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( B )。
A.名字项B.操作项C.操作数项D.注释项8.假设执行ADD指令后AX=006EH,再执行AAA指令,AX中的值是( B )A. 14HB. 0104HC. 74HD. 04H9.用MOV指令将十进制数89以非压缩BCD码格式存入AX,可使用的指令是( D )A. MOV AX,89B. MOV AX,0809C. MOV AX,89HD. MOV AX,0809H10.下列语句中能与“DA1 DB 32H,34H”语句等效的是( A )A. MOV DA1,32HB. MOV DA1,32C. MOV WORD PTR DA1,3234HD. MOV WORD PTR DA1,‘24’MOV DA1+1,34H MOV DA1+1,3411.使用DOS功能调用时,子程序的编号应放在寄存器中( A )A. AHB. ALC. AXD. 任意指定12.下列语句中能实现留空8个字节单元的语句是( D )A. DA1 DT ?B.DA2 DW ?,?C. DA3 DD ?D.DA4 DQ ?13.指令JMP FAR PTR DONE属于CA.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址14.下列叙述不正确的是BA. 在不改变堆栈段寄存器的情况下,堆栈大小为64KBB. 紧跟设置堆栈段寄存器指令可以是设置堆栈指针以外的任何指令C. 中断服务程序的返回地址在堆栈中D. 堆栈中数据存放的特点是先进后出15.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是CA.12CSBH B.12B6BH C.12C59H D.12BFEH16.在下列指令的表示中,不正确的是CA.MOV AL,[BX+SI]B.JMP SHORT DONIC.DEC [BX]D.MUL CL17.在进行二重循环程序设计时,下列描述正确的是AA.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内B.外循环初值应置外循环之内;内循环初值应置内循环之内C.内、外循环初值都应置外循环之外D.内、外循环初值都应置内循环之外,外循环之内18.条件转移指令JNE的测试条件为AA.ZF=0 B.CF=0 C.ZF=1 D.CF=119.将DX的内容除以2,正确的指令是CA.DIV 2 B.DIV DX,2 C.SAR DX,1 D.SHL DX,120.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在(A )中。
汇编语言程序设计第1章:基础知识1、在汇编语言程序的开发过程中使用宏功能的顺序是( C )。
DXA、宏定义,宏调用B、宏定义,宏展开C、宏定义,宏调用,宏展开D、宏定义,宏展开,宏调用2、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( B )。
DXA、名字项B、操作项C、操作数项D、注释项3、可屏蔽中断就是它的请求是否被CPU响应要受(IF )的控制。
DX4、使用LINK连接命令,执行后可生成文件的扩展名为(EXE )。
DX5、在寄存器间接寻址中,如果指令中指定的寄存器为BP,则操作数在堆栈段中,段地址在SS寄存器中。
TK6、注释项用于说明程序段或是一条和几条指令的功能,一般用;(或分号)表示注释的开始。
TK7、DOS系统功能调用方式为:(1)置入口参数;(2)中断程序编号送AH寄存器后执行INT 21H。
TK8、通常主程序和子程序间参数传送的方法有三种:用寄存器传递、用存储单元传递、用堆栈传递(顺序可调换)。
TK9、中断是CPU暂停当前程序的执行,转而执行处理紧急事务的程序,并在该事务处理完后能自动恢复执行原先程序的过程。
在此,称引起紧急事务的事件为中断源。
TK10、在字符串操作指令中,DS∶SI指向源串,ES∶DI指向目的串。
TK11、计算机系统通过接口与外围设备通信。
TK12、键盘I/O、显示I/O和打印I/O分别对应16H、10H和17H号中断。
TK13、字符显示模式缓冲区中的一个字对应于屏幕上的一个字符。
每个字的第一个字节为显示字符的ASCII码,第二个字节为显示字符的属性。
TK14、简述上机运行汇编语言程序的过程。
JD答:首先打开未来汇编,新建一个空的汇编文件,后缀为.asm,然后输入汇编程序代码,保存,再编译成机器指令,然后连接成可执行文件,即exe文件,最后再运行。
15、简述程序中指令和伪指令的区别。
JD答:能被计算机识别并执行的二进制代码,它规定了计算机能完成的某一操作。
汇编语⾔复习题与答案汇编语⾔程序设计复习题⼀、选择题1.⽤户为了解决⾃⼰的问题,⽤汇编语⾔所编写的程序,称为(B)A.⽬标程序B.源程序C.可执⾏程序D.汇编程序2.某系列微机对存储器的分段,如果每⼀个段最多的字节存储单元是64K,那么表⽰段内字节单元偏移地址的⼆进制位数应是(B)A.20位B.16位C.15位D.12位3.设SP初值为2000H,执⾏指令“PUSH AX”后,SP的值是(D)A.1FFFHB.1998HC.2002HD.1FFEH4.循环指令LOOP产⽣循环的条件是(C)A.CX-1=1B.CX-1=0C.CX-1≠0D.CF=1和ZF=05.汇编语⾔源程序中,每个语句可由四项组成,其中名字项是⼀个符号,下⾯列出的有效名字是(A)A.VariableB.First&ldC.0FFFFHD.‘Memphis’6.要求将A,B两个字符的ASCⅡ码41H,42H顺序存放在连续两个字存储单元中,可选⽤的语句是(A)A.DA1DB‘AB’B.DA1DW‘AB’C.DA1DB0ABHD.DA1DW‘ABH7.某程序装⼊内存后,DS=1200H,CS=1400H,则程序中数据段中的数据最多是(C)字节。
A.2KB.4KC.8KD.16K8.有语句:COUNT EQU256下列四种叙述中,正确的是(C)。
A.COUNT是变量B.COUNT占⽤⼀个字节存储单元C.COUNT是符号常数D.COUNT占⽤⼆个字节存储单元9.下⾯指令中,源操作数的寻址⽅式为⽴即寻址的是(C)。
A.MOV AX,OFFSET AB.MOV AX,AC.MOV AX,1D.MOV AX,A〔BX〕10.下列指令执⾏后,不改变AL寄存器内容的指令是(B)。
A.AND AL,1B.CMP AL,DLC.XOR AL,ALD.SUB AL,DL11.执⾏1号DOS系统功能调⽤,从键盘输⼊的字符值存放在(A)寄存器中。
A.ALB.BLC.CLD.DL12.将CX寄存器低4位清零的正确指令是(B)。
汇编语言程序设计练习题1
一、填空题
1.在8088汇编语言中,变量的三个属性分别是段属性_、__偏移属性和_类型属性_。
2.在指令MOV AL,[SI+5]中, 两个操作数的寻址方式分别是_寄存器寻址_和_相对寄存器寻址_。
3.AX、BX、CX、DX均为_16_位寄存器,也可分别作为__2个___8__位寄器使用。
4.标号和变量所具有的三种属性分别为_段属性、__偏移__属性和__类型__属性。
5.某数据区的起始地址为70AOH:DDF6H,则该数据区的首字单元和16个字的末字单元的物理地址为_7E7F6H___和___________。
6.设当前的SP=100H,在执行PUSH指令后,SP=_0FE_H;若改为执行INT20指令,则SP=_0FA_H。
7.汇编指令通常由两部分组成:__操作码_和___操作数_。
8.8086/8088二十位物理地址由__16___位段地址和__16___位偏移地址组成。
9.若(AX)=8520H,且为有符号数,若实现(AX)/2,则应使用指令_SAR___,结果使(AX)=___________。
10.逻辑运算是按__位____操作。
11.MOV AX,BX指令的源操作数是___寄存器__寻址方式,而MOV AX,[BX] 指令的源操作数则是_寄存器间接_寻址方式。
12.访问堆栈的指令(如PUSH)使用SP为偏移地址指针,只能使用__SS__作为段寄存器。
13.8086可以作为寄存器间接寻址的寄存器有__BX_,___BP__,___SI___和 __DI__。
当用___BP_作地址指针时,通用传送指令的内存操作数隐含在堆栈段。
二、选择题(答案 CBCBC BACBA)
1.在计算机中一个字节由( )位二进制组成。
A. 2
B. 4
C. 8
D. 16
2.一个字符的ASCII值占用( )位(二进制)。
A. 6
B. 7
C. 8
D. 9
3.8088 CPU标志寄存器中有()个标志位。
A. 3
B. 6
C. 9
D. 12
4.INC [BX]指令的错误原因是()。
A. 数据类型不匹配
B. 内存操作数类型不确定
C. 非法的地址指针
D. 寄存器操作数没有偏移量
5.ASSUME伪指令的功能是()。
A. 过程定义语句
B. 逻辑段定义语句
C. 段寄存器分配语句
D. 内存变量的偏移地址
6.PTR伪指令的功能是()。
A. 过程定义语句
B. 修改或定义内存变量类型
C. 内存变量的偏移地址
D. 起始偏移地址设置语句
7.操作数直接存放在指令中,则它的寻址方式是( )。
A. 立即寻址
B. 寄存器寻址
C. 寄存器间接寻址
D. 直接寻址
8.MOV DS,0B000H指令的错误原因是()。
A. 数据类型不匹配
B. 目的操作数不能是立即数
C. 立即数不能直接送给段寄存器
D. DS不能作为目的寄存器
9.8088 CPU中用于保存堆栈段地址的寄存器是()。
① CS ② SS ③ DS ④ ES
10.把若干个模块连接起来成为可执行文件的系统程序称为( )。
A. 连接程序
B. 汇编程序
C. 编译程序
D. 目标程序
三、简答分析题
1.简要说明汇编语言循环程序结构的组成。
2. 若(AX)=6531H,(BX)=42DAH,则SUB AX,BX指令执行后:(AX)=____,(SF,ZF,CF,OF)=(____,____,____,____)。
3.指出下列各指令分别属于哪一类指令:
(1)ADC AX,BX;算数运算类
(2)RCL AX,CL;逻辑移位
(3)CLD;标志处理
4.
4.阅读下列程序,给出运行结果。
MOV AL,4*5
ROR AL,1
ADD AL,07H
MOV AH,AL
ADD AH,AL
SAR AL,1
ADD AL,AH
HLT
(AX)=?,CF=?,ZF=?
5.指出下列指令的错误
(1)MOV AH,BX;类型不匹配
(2)ADD 15H,BX;立即数不能作为目的操作数
(3)MOV CS,AX;不允许用MOV 指令改变CS的值
(4)MOV AX,[SI][DI];SI DI不能同时用于存储器寻址
(5)MOV BYTE PTR [BX],1000;1000大于一个字节允许数的范围,因此数据类型不匹配
6.执行指令段 AGAIN:MOV ES:[DI],AL
INC DI
LOOP AGAIN
完成的操作,与其等效的指令组为
___CLD________________
___REP STOSB__________
7.若(AX)=5555H,(BX)=0FF00H,试问在下列程序段:
AND AX,BX
XOR AX,AX
NOT BX
执行后,(AX),(BX)的内容是什么? (AX)=0,(BX)=00FFH
8.用完整的汇编语言编写一个程序,把20个字节的数组分成正数数组和负数数组,并分别计算两个数组中数据的个数。
(答案查看ppt第五章例题)
9.下列程序是通过调用过程实现N个元素的数组求和,请填写出程序中空缺的语句。
DSEG SEGMENT
ARY DW 100 DUP(?)
COUN DW ?
SUM DW 2 DUP(?)
TABLE DW 3 DUP(?)
DSEG ENDS
CODE SEGMENT
(1)___ASSUME CS:CODE,DS:DSEG____
START : MOV AX,DSEG
MOV DS,AX
MOV TABLE,OFFSET ARY
MOV TABLE[2],OFFSET COUNT
MOV TABLE[4],OFFSET SUM
MOV BX,OFFSET TABLE
CALL PROADD
MOV AX, 4C00H
INT 21H
PROADD : PROC NEAR
PUSH AX
PUSH DX
PUSH CX
PUSH SI
PUSH DI
(2)__MOV SI,[BX]__________
MOV DI,[BX+2]
(3)__MOV CX,[DI]__________
MOV DI,[BX+4]
XOR AX,AX
MOV DX,AX
NEXT : ADD AX,[SI]
(4)_ADC DX,0_________
(5)_INC SI_____________
LOOP NEXT
MOV [DI],AX
MOV [DI+2],DX
POP DI
POP SI
POP CX
POP DX
POP AX
RET
PROADD ENDP
CODE ENDS
END STATRT。