资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
汇编语言程序设计复习题一、 选择题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.1FFFH B.1998H C.2002H D.1FFEH4.循环指令LOOP产生循环的条件是( C ) A.CX1=1 B.CX1=0 C.CX10 D.CF=1和ZF=05.汇编语言源程序中,每个语句可由四项组成,其中名字项是一个符号,下面列出的有效名字是( A ) A. Variable B. First & ld C.0FFFFH D. Memphis6. 要求将A,B两个字符的ASC码41H,42H顺序存放在连续两个字存储单元中,可选用的语句是( A ) A. DA1 DB AB B.DA1 DW AB C. DA1 DB 0ABH D.DA1 DW ABH7.某程序装入内存后,DS=1200H,CS=1400H,则程序中数据段中的数据最多是( C )字节。A.2K B.4KC.8K D.16K8.有语句:COUNT EQU 256下列四种叙述中,正确的是( C )。A.COUNT是变量 B.COUNT占用一个字节存储单元C.COUNT是符号常数 D.COUNT占用二个字节存储单元9.下面指令中,源操作数的寻址方式为立即寻址的是( C )。A.MOV AX,OFFSET A B.MOV AX,AC.MOV AX,1 D.MOV AX,ABX10.下列指令执行后,不改变AL寄存器内容的指令是( B )。A.AND AL,1 B.CMP AL,DLC.XOR AL,AL D.SUB AL,DL11.执行1号DOS系统功能调用,从键盘输入的字符值存放在( A )寄存器中。A.AL B.BLC.CL D.DL12.将CX寄存器低4位清零的正确指令是( B )。A. AND CX,0F0H B.AND CX,0FFF0HC.AND CX,1110H D.MOV CX,0授课:XXX13.微机中,有符号数是用( B )表示的 A原码 B补码 C反码 DBCD码 14.把汇编源程序变成目标代码程序的过程是( B ) A编译 B汇编 C编辑 D链接 二、 填空题1.ZF标志位是标志结果是否为零的,若结果为零,ZF为( 1 ),否则ZF为( 0 )。当ZF为1时,SF为( 0 ) 2. 从80386开始,Intel的CPU具有3种运行模式:实模式、保护模式和虚拟8086模式。3. 16位无符号整数的表示范围为0-65535,写成16进制形式为(0H-FFFFH),16位有符号整数的表示范围为-32768-+32767,写成16进制形式为(8000H7FFFH ) 4. 寻址方式指的是指令按什么方式给出操作数或与其有关的地址信息,80386以上的微处理器指令寻址方式有八种:立即寻址方式、寄存器寻址方式、直接寻址方式、寄存器间接寻址方式、寄存器相对寻址方式 、基址变址寻址方式 、相对基址变址寻址方式 、比例变址寻址方式 。5.循环程序通常由( 循环准备 )(循环体)(循环的控制与修改)和循环结果处理四部分构成 。6. 宏指令定义必须由伪指令( MACRO )开始,伪指令( ENOM )结束,两者之间的语句称为( 宏定义体 ) 7.调用程序与子程序之间的参数传递方法有四种,即堆栈法、(约定寄存器,)(约定存储单元法,)( 向量传递法 ) 8.分别用一条语句实现下述指明的功能 (1)栈顶内容弹出送字变量AYW( POP AYW ) (2)双字变量AYD存放的地址指针送ES和SI( LES SI,AYD ) (3)变量AY2类型属性送AH( MOV AH,TYPE AY2 ) (4)不允许中断即关中断( CLI ) (5)将字符串HOW ARE YOU!存入变量AYB( AYB DB HOW ARE YOU!) (6)子程序返回调用程序( RET )(7)地址表达式AYY4的偏移地址送字变量ADDR( MOV ADDR,OFFSET AYY4 ) (8)AX的内容加1,要求不影响CF( INC AX ) (9)BX的内容加1,要求影响所有标志位( ADD BX,1 ) (10)若操作结果为零转向标号GOON( JZ GOON ) (11)BX寄存器低4位置 1( OR BX,000FH )(12)AL寄存器最低位置 0( AND AL ,0FEH )(13)AX与BX的值互换( XCHG AX , BX )(14)变量 ARRAY 的地址送DI 寄存器 ( LEA DI, ARRAY或 MOV DI , OFFSET ARRAY )三. 排错题:每小题列出了一条指令,判断该指令有无语法错误,如果存在语法错误,请指出具体的错误原因。 1PUSH 5588H ;push的源操作数不能是立即数授课:XXX2MOV DS, 1720H ;给段寄存器赋值不能给立即数3ADD AX, CL ;AX是16位的,CL是8位的,不能相加4AND AX,DX ;DX不是基址寄存器5. MOV CS, AX ;MOV 指令不能给CS段寄存器传送数据6. MOV M1 , M2 ;MOV指令不能给两个存储单元之间直接传送数据7. LEA BX , OFFSET VAR ;多了 OFFSET 项四、简答题 1.试述CMP AX,BX和SUB AX,BX两条语句的异同点? 相同点:都执行AX-BX操作,影响所有标志位且对档志位的影响相同 不同点:CMP执行后AX,BX内容不改变,而SUB执行后,AX内为AX-BX之差,即内容变化了。2.标号有哪三个属性?其含义是什么?段属性指定义该标号的段地址;偏移属性:指该标号的偏移地址类型属性:指标号是在定义它的段内引用还是在其它段引用 3.子程序和中断处理子程序在调用方法及返回指令上有何区别?子程序调用是由CALL 指令调用的,而中断分为内中断和外中断,内中断是通过 INT n指令调用中断处理子程序的,外中断是来自于CPU外部的中断,它的产生是不可预测的,当这些中断产生时由系统自动完成中断处理子程序的调用。子程序返回执行RET 指令,而中断处理子程序的返回执行 IRET。4.简述宏指令与子程序的区别。采用宏和子程序均能达到代码共享、简化源程序的目的,但它们的区别也是显而易见的。区别主要有以下几点:(1) 工作方式的区别宏调用是在汇编时由汇编程序进行宏扩展的,而子程序是在程序执行期间由调用程序调用的。因此使用宏指令占用较大的空间但速度较快,而使用子程序占用较小的空间但执行时间较长。(2) 参数传递的方便性 宏指令定义时可以带有形式参数,宏调用时可以直接在宏指令名后带有实参数以替换形式参数,参数传递十分方便。而子程序参数的传递是通过寄存器、堆栈等方法实现的,实现起来不是很方便。(3) 参数的多样性及灵活性:宏指令的实参数可以是常数、寄存器、内存变量、操作码或操作码的一部分等,这是子程序所不能比拟的。5.简述子程序设计注意事项。(1)子程序说明:为了便于引用,子程序就在开头对其功能、调用参数各返回参数等予以说明,例如参数的类型、格式及存放位置等。(2)寄存器的保存与恢复:设计良好的子程序在其开头应保存它将用到的寄存器的内容,而在返回前再恢复它们,以保证调用程序的寄存器内容不被破坏。授课:XXX(3)密切注意堆栈状态:在含有子程序的汇编语言程序设计中,要密切注意堆栈的变化,这包括要注意一切与堆栈有关的操作。当执行RET指令时,从堆栈弹出的数据应该正好是由相应的CALL 指令压入的值,否则后果不可预测。6.简述完整段定义和简化段定义的汇编语言程序的一般结构。完整段定义汇编语言程序一般格式如下:STSGSEGMENT STACK S DW 32 DUP(?) ;堆栈段定义STSGENDSDATASEGMENT。;数据段定义DATA ENDSCODESEGMENT ;代码段定义MAINPROC;主程序开始ASSUMECS:CODE , DS:DATA,SS:STSGMOV AX , DATA ;设置DS段的值MOVDS , AX。;MOVAX ,4C00H ;程序结束返回DOSINT21HMAINENDPCODEENDSENDMAIN简化段定义汇编语言程序的一般结构:(1)使用16位指令模式的一般格式.MODEL SMALL ;存储模式.586 ;指令集.STACK 64 ;堆栈段定义.DATA ;数据段定义 。.CODE ;代码段定义.STARTUP ;主程序起始。.EXIT ;程序结束返回DOSEND(2)使用32位指令模式的一般格式.model flat, stdcall ;存储模式
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号