汇编语言编程题目资料答案
汇编语言试题及参考答案
汇编语言试题及参考答案一,填空题1.ZF标志位是标志结果是否为零的,若结果,ZF为( 1 ),否则ZF为( 0 ).当ZF为1时,SF为( 0 )2.标号可以有两种类型属性.它们是( )和( )3.8位无符号整数的表示范围为0--255,写成16进制形式为( ),8位有符号整数的表示范围为-128--+127,写成16进制形式为( )4.伪指令DB,GROUP 和NAME 三个标号名字域必须有名字的是( ),不得有名字的是( ),可有可无名字的是( ).5.循环程序通常由( )( )( )和循环结果外理四部分构成6.在数值不达式中,各种运算符可可混合使用,其优先次序规则*,/( )于+,-;XOR,OR( )于AND,LT( )于GT7. 宏指令定义必须由伪指令( )开始,伪指令( )结束,两者之间的语句称为( )8.调用程序与子程序之间的参数传递方法有四种,即堆栈法( )( )( )9.分别用一条语句实现下述指明的功能(1)栈顶内容弹出送字变量AYW( )(2)双字变量AYD存放的地址指针送ES和SI( )(3)变量AY2类型属性送AH( )(4)不允许中断即关中断( )(5)将字符串'HOW ARE YOU!'存入变量AYB( )(6)子程序返回调用程序( )(7)地址表达式AYY[4]的偏移地址送字变量ADDR( )(8)AX的内容加1,要求不影响CF( )(9)BX的内容加1,要求影响所有标志位( )(10)若操作结果为零转向短号GOON( )二,单选题1.IBM PC微机中,有符号数是用( )表示的1.原码2.补码3.反码4.BCD码2.把汇编源程序变成代码程序的过程是( )1.编译2.汇编3.编辑4.链接三,己知:VAR1,VAR2的类型属性分别为字和字节,标号LPFAR的类型属性为FAR.指出下列非法语句的错误原因1.POP CS( )2.INC [BX] ( )3.MVL 8( )4.JLE LPFAR( )5.MOV DB,1800( )6.MOV[DI],VAR17.SUB AX,VAR2( )8.CMP SS AX( )四,简答题1.试述子程序的一般结构组成2.标号有哪三个属性其含义是什么3.试述CMP AX,BX和SUB AX,BX两条语句的异同点五,阅读如下程序段,回答所提出的问题,假定X1,X2,...XN为无符号数. ORG 100HBLOK DW X1,X2, (X)COUNT EQU ($-BLOK)/2RESULT DW COUNT,...LEA BX,BLOK-2MOV CX,RESULTXOR AX,AXGOON:ADD BX,2CMP AX,[BX]JAE NEXTMOV AX,[BX]NEXT:LOOP GOONMOV RESULT+2,AX程序段执行完,回答下述问题RESULT+2字存储单元的内容=( )BX=( )程序循环次数=( )六,在下述程序段的每一空框内填入一个语句(不得修改其它语句),以实现如下功能:字节变量STR中存放着一个字符串,以0DH为结束标志,试求串长度并送字变量COUNT中.LEA SI,STR( )XOR CX,CXGOON: CMP AL,[SI]( )INC CX( )JMP GOONNEXT:MOV COUNT,CX七,编制将DS段中名为BUFB的字节存储区改写为空白字符(编码为20H)的程序段.假定BUFB存储区定义为BUFB DB N DUP('^'),其中N 为字面常量.八,己知宏指令为:SHIFT MACRO RR,COUNTMOV AX,COUNTIF RR LE 64MOV CL,3SHR AX,CLIF RR LT 16MOV CL,6SHR AX,CLENDIFENDIFENDM宏调用为:SHIFT 15,7FFFHSHIFT 80,9FFFH写出宏扩展后的等效源程序段.九,编写完整程序,功能是把N个8个二进制数据转换成16进制字符数据.假定N个数据存放在字节变量VARB中,转换后的字符数据存放在HVARB中,提示0--9的字符码为30H--39H,A--F的字符码为41H--46H汇编语言试题<>答案一,填空题(1)1,0,0(2)NEAR或近程,FAR或远程(3)0--FFH,80H--7FH(4)GROUP,NAME,DB(5)循环准备,循环体,循环的控制与修改(6)高,低,等(7)MACRO,ENOM,宏体(8)约定寄存器法,约定存储单元法,向量传递法(9)(POP AYW)(LES SI,AYD)(MOV AH,TYPE AY2)(CLI)(AYB DB"HOW ARE YOU!")(RET)(MOV ADDR,OFFSET AYY[4])(INC AX)(ADD BX,1)(JZ GOON)二,选择题1. ( 2 )2. ( 2 )三,1.CS不能作目的操作数2.[BX]=义性3.乘法指令源操作数不能是立即数4.远程标号不能作为条件转移指令的操作数5.立即数不能直接送段寄存器6.两个操作数不能同时为存储器操作数7.操作数不配,AX为字,VAR2为字节8.段寄存器不能作为运算指令的操作数四,简答题1.由保存现场,取入口参数,加工处理,进也口友数,恢复现场和返回程序2.段属性指定义该标号的段地址偏移属性:指该标号的偏移地址类型属性:指标号是在定义它的段内引用还是在其它段引用3.相同点:都执行AX-BX操作,影响所有标志位且对档志位的影响相同不同点:CMP执行后AX,BX 内容不改变,而SUB执行后,AX内为AX-BX之差,即内容变化了五,MAX(X1,X2,...XN)(COUNT-1)六,(MOV AL,ODH)(JE NEXT或JZ NEXT)(INC SI)七,MOV AX,SEG BUFBMOV DS,AXLEA SI BUFBMOV CX,NGOON:MOV BYTE PTR[SI],20HINC SILOOP GOON八,MOV AX,7FFFHMOV CL,3SHR AX,CLMOV CL,6SHR AX,CLMOV AX,9FFFH九,DATA SEGMENTVARB DB 45,36,377Q, (11011011)N EQU $-VARBHVARB DB 2 NDRP( )DATA ENDSSTACK SEGMENT PARA STACK "STACK" DB 256 DUP( )STACK ENDSCODE SEGMENTASSUME CS:COOE,DS:DATA,SS:STACK MAIN: PROC FARPUSH DSSUB AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV DX,NLEA DI,HVARBLEA SI,VARB;置初值GOCN:MOV AH,[SI]MOV AL,AHAND AH,0F0HMOV CL,4SHR AH,CLCMP AH,9JNA NEXT1ADD AH,7NEXT1:ADD AH,30HAND AL,DFH CMP AL,9JNA NEXT2ADD AL,7NEXT2:ADD AL,30H MOV [DI],AHMOV [DI],ALADD DI,2INC SIDEC DXJNZ GOONRETMAIN ENDP CODE ENDSEND MAIN。
汇编语言题库及部分答案
汇编语言题库及部分答案一、单项选择题1、在下列的选项中,能够组成计算机系统的是(A )。
A.硬件系统和软件系统B.CPU、存储器、输入/输出设备C.操作系统、各种语言D.系统软件和应用软件2、汇编语言属于( B )。
A.用户软件B.系统软件C.高级语言D.机器语言3、汇编语言源程序经汇编程序汇编后产生的文件的扩展名是(B )。
A.EXE B.OBJ C.ASM D.LST4、汇编语言的什么文件经链接(LINK)后产生可执行文件?(D) A.ASM B.EXE C.LST D.OBJ5、中央处理器CPU是由(D )组成的。
A.运算器B.控制器C.寄存器组D.前三者6、IBM PC机的DOS是属于( B )。
A.用户软件B.系统软件C.系统硬件D.一种语言7、汇编语言源程序是( A )程序。
A.不可直接执行的B.可直接执行的C.经汇编程序汇编后就可执行的D.经连接后就可直接执行的8、8086/8088 CPU的寄存器组中,8位的寄存器共有(C )个。
A.4B.6C.8D.109、8086/8088 CPU的寄存器组中,16位的寄存器共有(D )个。
A.10B.12C.13D.1410、8086/8088 CPU执行算术运算时PSW共有( C )个标志位会受影响。
A.4B.5C.6D.711、在程序执行过程中,IP寄存器始终保存的是(B )。
A.上一条指令的首地址B.本条指令的首地址。
C.下一条指令的首地址D.需计算有效地址后才能确定地址。
12、IBM PC机的存储器可分( D )个段。
A.4B.256C.512D.6553613、当使用BP作编程地址时,此时使用的是(D )段。
A.CSB.DSC.ESD.SS14、如果指令的运算结果为0,则( C )标志位为1。
A.SFB.OFC.ZFD.CF15、如果指令的运算结果中有奇数个1,则(A )标志位为0。
A.PFB.CFC.OFD.SF16、IBM PC机的内存是按(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寄存器。
汇编语言试题及参考答案
汇编语言试题及参考答案一、选择题(每题2分,共20分)1. 汇编语言中的指令通常由哪两部分组成?A. 操作码和操作数B. 地址和数据C. 指令和数据D. 操作码和地址答案:A2. 以下哪个不是汇编语言中的寻址方式?A. 直接寻址B. 间接寻址C. 立即寻址D. 寄存器寻址答案:B3. 在汇编语言中,以下哪个指令用于将数据从内存加载到寄存器中?A. MOVB. CMPC. ADDD. SUB答案:A4. 汇编语言中,以下哪个指令用于比较两个寄存器的内容?A. MOVB. CMPC. ADDD. SUB答案:B5. 在汇编语言中,以下哪个指令用于将一个寄存器的内容与立即数相加?A. MOVB. CMPC. ADDD. SUB答案:C6. 汇编语言中的条件跳转指令通常使用哪些条件?A. 零、非零B. 正、负C. 溢出、非溢出D. 所有上述条件答案:D7. 在汇编语言中,以下哪个指令用于将一个寄存器的内容与另一个寄存器的内容相减?A. MOVB. CMPC. ADDD. SUB答案:D8. 汇编语言中的循环结构通常使用哪种类型的跳转指令?A. 无条件跳转B. 条件跳转C. 直接跳转D. 间接跳转答案:B9. 在汇编语言中,以下哪个指令用于将一个寄存器的内容与内存中的内容相加?A. MOVB. CMPC. ADDD. SUB答案:C10. 汇编语言中,以下哪个指令用于将一个寄存器的内容与另一个寄存器的内容进行逻辑与操作?A. ANDB. ORC. NOTD. XOR答案:A二、填空题(每题2分,共20分)1. 在汇编语言中,指令MOV AX, BX的作用是将寄存器________的内容复制到寄存器________中。
答案:BX,AX2. 汇编语言中的指令JMP FAR PTR 100H:200H的作用是跳转到内存地址________。
答案:100H:200H3. 汇编语言中,指令CALL的作用是________。
汇编语言复习题附答案
汇编语言复习题附答案一、选择题1. 汇编语言是一种()。
A. 高级语言B. 机器语言C. 低级语言D. 面向对象语言答案:C2. 在汇编语言中,指令通常由()组成。
A. 操作码和操作数B. 操作数和地址C. 操作码和地址D. 操作码、操作数和地址答案:A3. 汇编语言中的寄存器通常用来()。
A. 存储数据B. 存储指令C. 存储程序D. 存储地址答案:A4. 汇编语言中的指令MOV AX, BX的作用是()。
A. 将AX寄存器的值移动到BX寄存器B. 将BX寄存器的值移动到AX寄存器C. 将AX和BX寄存器的值相加D. 将AX和BX寄存器的值相减答案:B5. 汇编语言中的循环结构通常使用()指令实现。
A. JZB. JNZC. LOOPD. CALL答案:C二、填空题1. 汇编语言中的指令ADD AX, BX表示将AX和BX寄存器的值相加,并将结果存入____寄存器。
答案:AX2. 汇编语言中的指令SUB AX, BX表示将AX寄存器的值减去BX寄存器的值,并将结果存入____寄存器。
答案:AX3. 汇编语言中的指令CMP AX, BX用于比较AX和BX寄存器的值,但不进行存储操作,结果影响____标志。
答案:标志寄存器4. 汇编语言中的指令JMP LABEL用于无条件跳转到标签____处执行。
答案:LABEL5. 汇编语言中的指令PUSH AX将AX寄存器的值压入____。
答案:堆栈三、简答题1. 简述汇编语言与机器语言的区别。
答案:汇编语言是一种低级语言,它使用助记符来表示机器语言的指令,更易于人类理解和编写。
机器语言则是由二进制代码组成的指令集,直接被计算机硬件执行,但对人类来说难以阅读和编写。
2. 描述汇编语言中如何实现条件跳转。
答案:汇编语言中实现条件跳转通常使用条件跳转指令,如JZ(跳转如果零)、JNZ(跳转如果非零)、JMP(无条件跳转)等。
这些指令根据CPU的状态寄存器中的条件码标志来决定是否跳转到指定的标签处执行。
(完整版)第1章_汇编语言基础习题答案
(完整版)第1章_汇编语言基础习题答案第1章汇编语言基础1.1 简答题(1)哪个处理器的指令系统成为Intel 80x86系列处理器的基本指令集?8086(2)ROM-BIOS 是什么?ROM-BIOS是固化在只读存储器中的基本输入输出系统,是PC 软件系统最低层的程序。
(3)什么是通用寄存器?一般指处理器最常使用的整数寄存器,可用于保存整数数据、地址等(4)堆栈的存取原则是什么?采用先进后出FILO或者后进先出LIFO的操作方式。
(5)标志寄存器主要保存哪方面的信息?用于反映指令执行结果或控制指令执行形式。
(6)最高有效位MSB是指哪一位?数据的最高位,例如对8、16、32位数据,MSB依次指D7、D15和D31位(7)汇编语言中的标识符与高级语言的变量和常量名的组成原则有本质的区别吗?没有(8)汇编语言的标识符大小写不敏感意味着什么?表示字母大小写不同、但表示同一个符号(9)在汇编语言源程序文件中,END语句后的语句会被汇编吗?不会(10)汇编时生成的列表文件主要包括哪些内容?主要包含源程序和目标代码。
1.2 判断题1)EAX也被称为累加器,因为它使用最频繁。
对,EAX中的A来自英文累加器(Accumulator)6)处理器的传送指令MOV属于汇编语言的执行性语句对7)汇编语言的语句由明显的4部分组成,不需要分隔符区别。
错,使用了分隔符才有了明显的4部分8)MASM汇编语言的注释用分号开始,不能用中文分号对,源程序中的分隔符以及各种标识符都是英文9)程序终止执行也就意味着汇编结束,所以两者含义相同。
错,两者完全是两个概念1.3 填空题(1)Intel 8086支持( ) 容量主存空间,IA-32处理器支持( ) 容量主存空间。
1MB ,4GB(2)Intel ( ) 处理器将80x86指令系统升级为32位指令系统,()处理器内部集成浮点处理单元、开始支持浮点操作指令。
80386,80486(3)IA-32处理器有8个32位通用寄存器,其中EAX,(),( )和EDX,可以分成16位和8位操作;还有另外4个是( ),( ),( ),和( )。
计算机技术汇编语言试题含答案
计算机技术汇编语言试题含答案第一部分:选择题1. 汇编语言是计算机硬件的一种低级编程语言,其特点是()。
A. 高级、易读易写B. 低级、复杂C. 低级、易读易写D. 高级、复杂答案:C2. 汇编语言是一种()。
A. 人机交互语言B. 低级语言C. 高级语言D. 自然语言答案:B3. 汇编语言最主要的作用是()。
A. 提高计算机运行速度B. 完成特定的计算任务C. 方便程序员编写高级语言程序D. 简化计算机指令的执行过程答案:C4. 汇编语言的指令是由()组成的。
A. 二进制代码B. 十进制代码C. 字母和数字D. 中文字符答案:A5. 汇编语言与机器语言之间的关系是()。
A. 完全相同B. 相似但不完全一样C. 完全不同D. 无法确定答案:B第二部分:简答题1. 什么是汇编器?它的作用是什么?汇编器是一种用于将汇编语言代码翻译成机器代码的软件工具。
其作用是将人类可读的汇编语言指令转换成计算机能够理解的二进制代码,以便计算机能够执行相应的操作。
2. 谈谈汇编语言的优点和缺点。
汇编语言的优点包括:- 直接操作底层硬件,可精确控制计算机执行指令,提高程序执行效率。
- 可以直接访问和利用硬件资源,如寄存器、内存等。
- 可以编写高效的程序,适用于对性能要求较高的场景。
- 编写汇编语言程序相对来说较为简单,可以更好地理解计算机的工作原理。
汇编语言的缺点包括:- 难以学习和掌握,对于初学者来说门槛较高。
- 编写的程序复杂度高,维护困难。
- 汇编语言代码的可移植性差,不同的计算机体系结构需要不同的汇编指令集。
- 缺乏高级语言的抽象和封装特性,代码可读性差。
第三部分:编程题请编写一段汇编语言代码,实现将数组 A 中所有元素加 1 的功能。
数组 A 的起始地址保存在寄存器 AX 中,数组长度保存在寄存器 BX 中。
假设数组 A 的元素都是字节类型。
```asmMOV CX, 0 ; 用于循环计数的寄存器MOV SI, AX ; 用于保存数组起始地址的寄存器LOOP_START:MOV AL, [SI] ; 将当前数组元素的值加载到 AL 寄存器ADD AL, 1 ; 将 AL 寄存器中的值加 1MOV [SI], AL ; 将 AL 寄存器中的值存回数组对应位置INC CX ; 循环计数器加 1INC SI ; 数组地址指针加 1CMP CX, BX ; 比较循环计数器和数组长度JL LOOP_START ; 如果循环计数器小于数组长度,则跳转到LOOP_START 继续循环```答案:以上汇编语言代码实现了将数组 A 中的所有元素加 1 的功能。
汇编语言试题试题及其答案和评分
汇编语言原理习题集一、单项选择题(每小题1分,共20分)1、设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是( )A、85B92HB、86192HC、BB690HD、12169H2、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( )A、AX,BX,CX,DXB、BX,BP,SI,DIC、SP,IP,BP,DXD、CS,DS,ES,SS3、循环指令LOOPNZ终止循环的条件是( )。
A、CX=0,且ZF=0B、CX=0,或ZF=1C、CX10,且ZF=0D、CX10,或ZF=14、对寄存器AX的内容乘以4的正确指令序列是( )。
A、SHR AX,1 SHR AX,1B、SHL AX,1 SHL,AX,1C、ROL AX,1 ROL AX,1D、RCR AX,1 RCR AX,15、执行INC指令除对SF、ZF有影响外,还要影响的标志位是( )。
A、OF,AF,PFB、OF,AF,CFC、OF,PF,CFD、AF,PF,CF6、设DH=10H,执行NEG DH指令后,正确的结果是( )。
A、DH=10H CF=1B、DH=0F0H CF=0C、DH=10H CF=0D、DH=0F0H CF=17、下列传送指令中有语法错误的是( )。
A、MOV CS,AXB、MOV DS,AXC、MOV SS,AXD、MOV ES,AX8、下面指令执行后,改变AL寄存器内容的指令是( )。
A、TEST AL,02HB、OR AL,ALC、CMP AL,BLD、AND AL,BL9、执行除法指令后,影响的标志位是( )。
A、CF,OFB、SF,ZFC、CF,OF,SFD、AF,CF,OF,PF,SF,ZF都不确定10、执行下面指令序列后,结果是( )。
MOV AL,82HCBWA、AX=0FF82HB、AX=8082HC、AX=0082HD、AX=0F82H11、与MOV BX,OFFSET VAR指令完全等效的指令是( )。
汇编习题(含答案)汇编
第一章基本知识一、单项选择题1.若十进制数为132.75,则其十六进制数为( B )A.21.3B.84.CC.4.6D.62.若[X]补=11111,则其十进制真值为(C )A.-31B.-15C.-1D.313.已知X=78,Y=-83则[X+Y]补=( C )A.0F5HB.0A1HC.0FBHD.65H4.已知[X]补=98H, 则[X]补/2=( A )A.0CCHB.4CHC.49HD.31H二、填空题1.(35)10 = (23)16。
2.(15)10 = (1111)2。
3. 计算机的存储容量1KB = (1024)Byte。
4. 计算机的存储容量1MB = (1024)KB。
5. 计算机的存储容量1GB = (1024)MB。
第二章8086计算机组织一、单项选择题1.在微机系统中分析并控制指令执行的部件是( C )A.寄存器B.数据寄存器C.CPUD.EU2.在计算机的CPU中执行算术逻辑运算的部件是( A )A.ALUB.PCC.ALD.AR3.能被计算机直接识别的语言是( C )A.C语言B.汇编语言C.机器语言D.面向对象语言4.8086/8088的存储器组织是将存储器划分为段,可作为段的起始地址的是( B )。
A.185A2H B.00020HB.01004H D. 0AB568H5.堆栈中当前出栈的存储单元地址是( A )A.SS*10H+SPB.SS*10H+BPC.SS*10+SPD.SS*10+BP6.标志寄存器中属于控制标志位的是(B )A.DF,OF,SF B.DF,IF,TFC.OF,CF,PF D. AF, OF, SF7.8086/8088存储器分段,每个段不超过( D )A.64K个字 B.32K个字节C. 1M个字节D. 64K个字节二、填空题1. 假设某个字的值为1234H,其低位字节地址是20H,高位字节地址是21H,那么该字的地址是_______20H_____________。
汇编语言试题及答案
汇编语言试题及答案一、选择题1. 汇编语言是一种:A. 高级语言B. 低级语言C. 机器语言D. 标记语言答案:B2. 汇编程序的编译过程包括:A. 预处理、编译、链接B. 编译、链接、运行C. 编译、预处理、链接D. 链接、编译、预处理答案:A3. 下列哪项是汇编语言的指令:A. MOV AX, BXB. int main()C. print "Hello, World!"D. System.out.println("Hello, World!");答案:A二、填空题4. 在汇编语言中,指令______用于将数据从内存传送到寄存器。
答案:MOV5. 汇编语言中的______指令用于实现无条件跳转。
答案:JMP6. 汇编语言中的______指令用于实现条件跳转。
答案:JZ 或 JE(零标志跳转)三、简答题7. 简述汇编语言的特点。
答案:汇编语言是一种低级语言,它非常接近机器语言,通常用于编写硬件操作和系统软件。
其特点是执行效率高,但编程复杂度高,可读性和可移植性较差。
8. 汇编语言与机器语言有何区别?答案:汇编语言是一种符号化的机器语言,它使用助记符代替机器语言中的二进制代码,更易于人类理解和编写。
机器语言则是计算机硬件直接执行的指令集,通常以二进制形式存在。
四、编程题9. 编写一段汇编语言程序,实现将AX寄存器的值加1。
答案:INC AX10. 编写一段汇编语言程序,实现将内存地址[100]处的值与BX寄存器的值相加,并将结果存回内存地址[100]。
答案:MOV AX, [100]ADD AX, BXMOV [100], AX五、论述题11. 论述汇编语言在现代计算机系统中的作用和局限性。
答案:汇编语言在现代计算机系统中主要用于系统底层开发、硬件驱动编写、嵌入式系统编程等领域。
其作用在于能够直接控制硬件,实现高效的资源利用。
然而,由于其复杂度高、可读性差、可移植性低,它在高级应用开发中的使用受到限制。
《汇编语言》试题(A4)及参考答案
《汇编语言》试题(A4)及参考答案work Information Technology Company.2020YEAR专业级,学生姓名: 学号:2专业级,学生姓名: 学号: (3)考试科目:汇编语言程序设计4专业级,学生姓名: 学号: (5)考试科目:汇编语言程序设计6专业级,学生姓名: 学号: (7)考试科目:汇编语言程序设计8汇编语言试题(A)参考答案一:选择题(每题2分)1.B2.B3.B4.C5.C6.C7.B8.C9.A10.C二:填空题(每题2分)1. 0,5,52.55H3.04034.随机数5..ASM6.200FEH7.10108.169..OBJ10.00H三:简答题(每题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,14.MOV BX,OFFSET ADDNUMADD [BX]MOV AL,DS:[BX]5.(1)1200H(2)4C2AH(3)4C2AH(4)65B7H6.AX为地址[1200H]所指内容,AX 为1200H。
10四:编程题( 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分)1.B2.B3.B4.C5.C6.C7.B8.C9.A10.C二:填空题(每题2分)1. 0,5,52.55H3.04034.随机数5..ASM6.200FEH7.10108.169..OBJ10.00H三:简答题(每题5分)1.(1)用DOS 21H中断调用的功能调用4CH在用户程序结束后插入下面语句 MOV AH,4CH INT 21H (2)用BIOS中断调用20H 在用户程序结束后插入:INT 20H2. FAR;段间调用。
汇编考试题及答案详解
汇编考试题及答案详解一、选择题(每题2分,共20分)1. 下列哪一项是汇编语言的特点?A. 高级语言B. 面向对象C. 接近硬件D. 自动内存管理答案:C2. 汇编指令MOV AX, [BX]的含义是:A. 将AX寄存器的内容移动到BX寄存器B. 将BX寄存器的内容移动到AX寄存器C. 将内存地址BX指向的内容移动到AX寄存器D. 将AX寄存器的内容存储到内存地址BX指向的位置答案:C3. 下列哪一项不是汇编语言的伪操作码?A. ORGB. DBC. IFD. MOV答案:D4. 在汇编语言中,立即数的寻址方式是:A. 直接寻址C. 间接寻址D. 基址寻址答案:A5. 汇编程序中,用于定义数据的伪操作码是:A. EQUB. ENDC. DBD. DW答案:C6. 汇编语言中,指令JMP FAR PTR LABEL的作用是:A. 跳转到当前段内的LABELB. 跳转到其他段内的LABELC. 跳转到当前段的开始位置D. 跳转到其他段的开始位置答案:B7. 汇编语言中的段寄存器CS的作用是:A. 存储当前代码段的基地址B. 存储当前数据段的基地址C. 存储当前堆栈段的基地址D. 存储当前附加段的基地址答案:A8. 下列哪一项不是汇编指令的寻址方式?B. 寄存器寻址C. 相对寻址D. 绝对寻址答案:C9. 汇编语言中,指令PUSH AX的作用是:A. 将AX寄存器的内容压入堆栈B. 将AX寄存器的内容弹出堆栈C. 将AX寄存器的内容移动到其他寄存器D. 将AX寄存器的内容存储到内存答案:A10. 汇编语言中,指令DIV AX的作用是:A. 将AX寄存器的内容除以AL寄存器的内容B. 将AX寄存器的内容除以AH寄存器的内容C. 将AX寄存器的内容除以DX寄存器的内容D. 将AX寄存器的内容除以立即数答案:A二、简答题(每题5分,共10分)1. 解释汇编语言中的堆栈操作。
答案:堆栈操作是汇编语言中的一种数据结构操作,它遵循后进先出(LIFO)的原则。
(完整版)汇编语言习题详解(全部)(免费)
《IBM—PC汇编语言程序设计》习题参考答案第一章.习题1.1用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(1) 369 (2) 10000 (3) 4095 (4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH1.2将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=2551.3将下列十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=46601.4完成下列十六进制数的运算,并转换为十进制数进行校核:(1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835(3) ABCD-FEH=AACFH=43727(4) 7AB×6FH=35325H=2178931.5下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。
(1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6) -85-(-76)答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0(2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0(3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0;OF=0(4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=10100001B=0A1H;CF=0;OF=1(5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1(6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+0100 1100B=11110111B=0F7H;CF=0;OF=0 1.6下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?(1) D8 (2) FF答:(1) D8H表示的带符号数为-40,D8H表示的无符号数为216;(2) FFH表示的带符号数为-1,FFH表示的无符号数为255。
汇编语言试题及答案
汇编语言试题及答案在此提供一篇长度超过2000字的文章,包含汇编语言试题及答案。
文章排版整洁美观,语句通顺,全文表达流畅,无影响阅读体验的问题。
文章中不包含网址链接。
请注意,为了保持文章的可读性,我将不使用特定的合同或作文格式。
以下是试题及答案:汇编语言试题及答案第一部分:选择题1. 汇编语言是一种与计算机底层直接交互的语言,它是一种________。
A. 低级语言B. 高级语言C. 自然语言D. 人工语言2. 汇编指令通常由________组成。
A. 字节B. 字C. 双字D. 指针3. 汇编语言最基本的操作单元是________。
A. 指令B. 寄存器C. 内存单元D. 字节4. 哪个寄存器用于保存程序执行的当前地址?A. AXB. BXC. IPD. SP5. 在汇编语言中,ADD指令的作用是________。
A. 从内存中读取数据B. 将两个数相加C. 将某个寄存器的值加1D. 将数据写入内存6. 在8086汇编语言中,DW是什么的缩写?A. Double WordB. Data WordC. Define WordD. Data Width7. JMP指令用于________。
A. 跳转到程序指定的地址B. 变量声明C. 将寄存器的值减1D. 在屏幕上显示字符8. 在汇编语言中,数据可以以________的形式表示。
A. 二进制B. 十进制C. 十六进制D. 所有上述形式9. 在8086汇编语言中,MOV指令的作用是________。
A. 将数据复制到一个寄存器或内存位置B. 将寄存器的值加1C. 跳转到程序指定的地址D. 读取屏幕上的字符10. 汇编语言编写的程序需要经过________才能在计算机上运行。
A. 编译B. 解释C. 加密D. 校验第二部分:简答题1. 简要解释一下汇编语言和机器语言的区别。
汇编语言是一种接近机器语言的低级语言,使用助记符来代替机器指令的二进制码。
汇编语言通过编译器将其转换为机器语言,然后由计算机执行。
《汇编语言程序设计》考试练习题及答案
《汇编语言程序设计》考试练习题及答案一、单选题1. 计算机中存取信息或数据的最小单位为()A 、位B 、字节C 、字D 、双字答案:B2. 调用子程序的指令为()A 、CALLB 、RETC 、HLTD 、NOP答案:A3. DOS功能调用是通过()指令去调用DOS系统提供的软件中断处理程序A 、INT 21HB 、INT 23HC 、INT 12HD 、INT 11H答案:A4. 满足()时,CPU允许中断A 、IF=0B 、IF=1C 、DF=0D 、DF=1答案:B5. 完成对CL寄存器的内容乘以4的正确操作是()。
A 、ROL CL,1 ROL CL, 1B 、MUL 4C 、SHL CL, 1 SHL CL, 1D 、MOV CL , 2 SHL CL, CL答案:C6. 下面寄存器中可以分为两个独立8位寄存器的是()A 、AXB 、DIC 、CSD 、SI答案:A7. ()是用二进制编码的机器指令的集合及一组使用机器指令的规则,是CPU能直接识别的唯一语言。
A 、汇编语言B 、机器语言C 、JAVA语言D 、C语言答案:B8. 源程序模块结束语句为()A 、ORGB 、ENDC 、SEGMENTD 、START答案:B9. 8位补码表示的有符号数的表示范围是()A 、0~255B 、-128~+127C 、0~65535D 、-32768~+32767答案:B10. 在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来,下列说法正确的是()A 、占内存空间小,但速度慢B 、占内存空间大,但速度快C 、占内存空间相同,但速度快D 、占内存空间相同,但速度慢答案:B11. 与LEABX ,BUF指令完全等效的指令是()。
A 、MOV BX ,BUFB 、LDS BX ,BUFC 、MOV BX ,OFFSET BUFD 、MOV BX ,WORD PTR BUF答案:C12. 14的非压缩BCD码为()A 、00010100B 、01000001C 、0000000000010100D 、0000000100000100答案:D13. 要实现使BETA的值为56,应采用的语句是()A 、BETA DB 56B 、BETA DB 56HC 、BETA EQU 56HD 、BETA EQU 56答案:D14. ()不可以做目的操作数A 、立即数B 、寄存器C 、存储器操作数D 、累加器答案:A15. 计算机一般由中央处理器、存储器和输入/输出子系统组成,其中()可以存放程序、数据、信息及中间结果。
(完整版)汇编语言试题及答案
一,单项选择题(每小题1 分,共20 分1-10CCCCAADACB 11-20.ADBBAADDCC1.指令JMP FAR PTR DONE 属于( CA.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址2.下列叙述正确的是(A.对两个无符号数进行比较采用CMP 指令,对两个有符号数比较用CMP S指令B.对两个无符号数进行比较采用CMPS 指令,对两个有符号数比较用CM P 指令C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/J NL指令D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/J NB指令3.一个有128 个字的数据区,它的起始地址为12ABH:00ABH, 请给出这个数据区最末一个字单元的物理地址是(A.12CSBHB.12B6BHC.12C59HD.12BFEH4.在下列指令的表示中,不正确的是(A.MOV AL,[BX+SI]B.JMP SHORT DONIC.DEC [BX]D.MUL CL5.在进行二重循环程序设计时,下列描述正确的是(A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内B.外循环初值应置外循环之内;内循环初值应置内循环之内C.内、外循环初值都应置外循环之外D.内、外循环初值都应置内循环之外,外循环之内6.条件转移指令JNE 的测试条件为( A.ZF=0B.CF=0C.ZF=1D.CF=17.8086CPU 在基址加变址的寻址方式中,变址寄存器可以为(A.BX 或CXB.CX 或SIC.DX 或SID.SI或DI8.已知BX=2000H,SI=1234H, 则指令MOV A X,[BX+SI+2] 的源操作在(中。
A.数据段中偏移量为3236H 的字节B.附加段中偏移量为3234H的字节C.数据段中偏移量为3234H 的字节D.附加段中偏移量为3236H 的字节9.执行如下程序:( MOV AX,0MOV AX,0MOV BX,1MOV CX,100A:ADD AX,BXINC BXLOOP AHLT执行后(BX=(A.99B.100C.101D.10210.上题的程序执行后(AX=(A.5000B.5050C.5100D.515011.对于下列程序段:(AGAIN:MOV AL,[SI]MOV ES:[DI],ALINC SIINC DILOOP AGAIN也可用指令完成同样的功能。
汇编语言考试题库及答案
汇编语言考试题库及答案一、选择题1. 在汇编语言中,以下哪个指令用于将数据从内存加载到寄存器中?A. MOVB. ADDC. SUBD. MUL答案:A2. 假设寄存器AX的值为1234H,执行指令“AND AX, 0F0H”后,AX 的值是多少?A. 1230HB. 0F34HC. 0F30HD. 1234H答案:C二、填空题1. 在汇编语言中,________指令用于将立即数加载到寄存器中。
答案:MOV2. 寄存器EAX的高16位是_______。
答案:AX三、简答题1. 解释汇编语言中的“段”是什么概念?答案:在汇编语言中,“段”是内存管理的一个概念,用于将程序的不同部分(如代码、数据、堆栈)分隔开来。
每个段都是内存中的一个区域,它有一个段基址,程序中的地址由段基址和偏移量组合而成。
2. 描述汇编语言中循环结构的实现方式。
答案:循环结构在汇编语言中通常通过标签和跳转指令实现。
首先定义一个循环的开始标签,然后在循环体中执行需要重复的操作。
循环结束前使用条件跳转指令(如JE、JNE等)跳回循环开始的标签,直到满足跳出循环的条件。
四、编程题1. 编写一个汇编程序,实现将两个16位无符号数相加,并将结果存储在寄存器AX中。
答案:```MOV AX, 1234HMOV BX, 5678HADD AX, BX```上述程序首先将1234H加载到AX寄存器中,然后将5678H加载到BX寄存器中,最后使用ADD指令将BX中的值加到AX中,结果存储在AX寄存器中。
2. 编写一个汇编程序,实现将字符串"Hello, World!"存储在内存中。
答案:```.DATAString DB 'Hello, World!', 0```上述程序在数据段定义了一个字符串"Hello, World!",后面跟着一个空字符作为字符串的结束标记。
《汇编语言程序设计》必考试题及答案
《汇编语言程序设计》必考试题及答案一、选择题1. 汇编语言属于 ____。
A. 高级语言B. 机器语言C. 低级语言D. 自然语言答案:C. 低级语言2. 在汇编语言中,寄存器eax主要用于 ____。
A. 存储返回值B. 存储函数参数C. 存储局部变量D. 存储全局变量答案:A. 存储返回值3. 汇编语言中,jmp指令用于 ____。
A. 设置循环条件B. 调用子程序C. 跳转到指定地址D. 返回主程序答案:C. 跳转到指定地址二、简答题1. 请简述汇编语言与高级语言的区别。
汇编语言是一种低级语言,使用助记符来代表机器指令,每条汇编指令对应一条机器指令。
而高级语言更加抽象,采用更接近人类自然语言的表达方式,通过编译器将高级语言编写的程序转换为机器语言。
2. 请列举汇编语言常用的寄存器及其作用。
汇编语言常用的寄存器包括:- eax:主要用于存储返回值。
- ebx、ecx、edx:通用寄存器,用于暂存计算结果。
- esi、edi:源操作数寄存器和目的操作数寄存器,用于存储数据传输时的源地址和目的地址。
- ebp、esp:用于管理函数调用过程中的栈帧。
- eip:指令指针寄存器,存储下一条将要执行的机器指令的地址。
三、编程题请编写汇编语言程序,实现从键盘输入两个数,并将其相加后输出的功能。
```assemblysection .dataprompt db '请输入两个数,以空格分隔:', 0result db '两数相加的结果为:%d', 0section .bssnum1 resb 4num2 resb 4section .textglobal _start_start:; 输出提示信息mov eax, 4mov ebx, 1mov ecx, promptmov edx, 20int 0x80; 输入第一个数mov ebx, 0mov ecx, num1 mov edx, 4int 0x80; 输入第二个数 mov eax, 3mov ebx, 0mov ecx, num2 mov edx, 4int 0x80; 将两个数相加 mov eax, [num1] mov ebx, [num2] add eax, ebx; 输出结果mov ebx, eaxmov eax, 1mov ecx, resultint 0x80; 退出程序mov eax, 1xor ebx, ebxint 0x80```以上为一个简单的汇编语言程序,实现了从键盘输入两个数,并将其相加后输出的功能。
汇编语言试题及答案
汇编语言试题及答案一、选择题1. 下列汇编指令中,用于加载立即数至寄存器的是:A. MOVB. ADDC. SUBD. XOR答案:A. MOV2. MOV指令中,源操作数与目的操作数的位数必须相同吗?A. 是B. 否答案:B. 否3. 下列指令中,用于从内存读取数据的是:A. MOVB. JMPC. ADDD. LEA答案:D. LEA4. 下列寻址方式中,可以直接给出操作数的地址的是:A. 直接寻址B. 间接寻址C. 寄存器寻址D. 寄存器间接寻址答案:A. 直接寻址5. CPU中的程序计数器(PC)用于保存:A. 下一条指令的地址B. 当前指令的地址C. 上一条指令的地址D. 中断服务程序的地址答案:A. 下一条指令的地址二、填空题1. 8086处理器的数据总线位数是_________。
答案:162. MOV AX, BX 汇编指令是将______的值复制到______。
答案:BX,AX3. 寻址方式LEA BX, [SI+DI]的含义是将_______与_______的和作为BX的值。
答案:SI,DI4. 8086处理器的寻址空间大小是_________。
答案:1MB5. 标志寄存器中的ZF标志位表示_________。
答案:零标志位,表示结果为零三、简答题1. 简述什么是汇编语言?汇编语言是一种底层的程序设计语言,通过使用助记符来代替具体的操作码,使得编写的代码易于阅读和理解。
汇编语言直接操作计算机硬件,与机器语言密切相关,最终会被翻译成机器语言运行在计算机上。
2. 什么是寄存器?寄存器是计算机内部用于存储数据和执行操作的高速存储器。
不同的计算机体系结构会有不同的寄存器数量和用途。
寄存器的访问速度非常快,因此在编写汇编语言代码时,经常使用寄存器来进行数据的操作和传递。
3. 请举例说明MOV指令的用法及其作用。
MOV指令用于将数据从一个位置复制到另一个位置。
它可以将立即数、寄存器或内存中的数据复制到目标寄存器或内存位置。
汇编资料答案
一、单项选择题1 .完成将累加器AX 清零, 下面错误的指令是( C)A .SUB AX, AX B .XOR AX, AXC .OR AX, 00HD .AND AX, 00H2 .设DS = 5788H , 偏移地址为94H , 该字节的物理地址是(B )A .57974HB .57914HC .5883HD .58ECH3 . 指令的操作数中, 允许出现表达式, 例如BUF1 与BUF2 均为变量名, 下面指令中语法正确的是(D )A .MOV AX,BUF1 * BUF2B .MOV AX,BUF1/ BUF2C .MOV AX,BUF1 + ES:BUF2D .MOV AX,BUF2 - BUF14 . MOV AL, 80HMOV CL, 2SAR AL,CL上述指令序列执行后, 结果是(D )A .AL = 40HB .AL = 20HC .AL = 0C0HD .AL = 0E0H5 .在执行POP [BX]指令, 寻找目的操作数时, 段地址和偏移地址分别是(B )A .无段地址和偏移地址B .在DS 和BX 中C .在ES 和BX 中D .在SS 和SP 中6 .在下列段寄存器中, 代码寄存器是( B)A .ESB .CSC .DSD .SS7 .执行下面的程序段后, (AX) = ( B)TAB DW 1 , 2 , 3 , 4 , 5 , 6ENTRY EQU 3MOV BX, OFFSET TABADD BX, ENTRYMOV AX, [ BX]A .0003HB .0300HC .0400HD .0004H8 .下面指令中影响状态位CF 的指令是(D )A .INC AXB .DEC AXC .NOT AXD .NEG AX9 .判当CX = 0 时, 转ZERO 执行的错误指令是( B)A .CMP CX, 0B .MOV AX,CXJZ ZERO JZ ZEROC .OR CX, CXD .JCXZ ZEROJZ ZERO10 .执行1 号DOS 系统功能调用后, 从键盘输入的字符应存放在(A )A .AL 中B .BL 中C .CL 中D .DL 中11 .设物理地址(10FF0H) = 10H , (10FF1H) = 20H, (10FF2H) = 30H , 如从地址10FF1H 中取出一个字的内容是( B)A .1020HB .3020HC .2030HD .2010H12 .完成同指令XCHG AX ,BX 相同功能的指令或指令序列是(D )A .MOV AX,BXB .MOV BX ,AXC .PUSH AXD .MOV CX, AXPOP BX MOV AX,BXMOV BX ,CX13 .十六进制数88H, 可表示成下面几种形式, 请找出错误的表示(D)A .无符号十进制数136B .带符号十进制数- 120C .压缩型BCD 码十进制数88 D .8 位二进制数- 8 的补码表示14 .指令指针寄存器是(A )A .IPB .SPC .BPD .PSW15 .DA – BYTE EQU THIS BYTEDA –WORD DW ′AB′,′CD′,′EF′,′GH′. . . . . . . .MOV AL , DA–BYTE + 3MOV AH, BYTE PTR DA–WORD + 4上述二条传送指令执行后AX 中的内容是(D )A .′DE′B .′HC′C .′CF′D .′FC′16 .已定义FEES DW 100 DUP(0) , 则指令MOV CX , SIZE FEES 的等效指令是(B )A .MOV CX, 100B .MOV CX, 200C .MOV CX, 400D .MOV CX, 100 DUP( 0)17 .使状态标志位CF 清零的错误指令是(C)A .OR AX, AXB .SUB AX, AXC .MOV CF, 0D .CLC18 .设SP = 1110H , 执行PUSH AX 指令后, SP 的内容为(B )A .SP = 1112HB .SP = 110EHC .SP = 1111HD .SP = 110FH19 .当执行指令ADD AX, BX 后, 若AX 的内容为2BA0H , 设置的奇偶标志位PF = 1 ,叙述正确的是(.D )A .表示结果中含1 的个数为偶数B .表示结果中含1 的个数为奇数C .表示该数为偶数D .表示结果中低八位含1 的个数为偶数20 .完成将累加器AL 清零, 并使进位标志CF 清零, 下面错误的指令是(A )A .MOV AL, 00HB .AND AL , 00HC .XOR AL ,ALD .SUB AL, AL21 .完成对字单元BUF 的内容加1 运算, 下面错误的指令是( C)A .MOV BX,BUFB .MOV BX , OFFSET BUFINC BX INC WORD PTR[BX]MOV BUF ,BXC .MOV BX,BUFD .MOV BX , 0INC WORD PTR[BX] INC WORD PTR BUF [BX]22 .完成对寄存器BX 的内容求补运算, 下面错误的指令是( D)A .NEG BXB .NOT BXINC BX INC BXC .XOR BX , 0FFFFHD .MOV AX, 0INC BX SUB AX,BX23 .MOV AL , 79ADD AL, 0B1H指令执行后, 设置的标志位CF 和OF 的值是(D )A .CF = 0 OF = 1B .CF = 1 OF = 1C .CF = 0 OF = 0D .CF = 1 OF = 024 .XOR AH , AHMOV AL , 90HCWD执行上述指令后, 结果是(C )A .DX:AX = 0000: FF90HB .DX:AX = FFFF: 0090HC .DX:AX = 0000 :0090HD .DX:AX = FFFF: FF90H25 . DABY1 DB 12H, 34H , 56H , 78HDB $ - DABY1DABY2 DB 10H DUP (1 , 2 , 3 )…MOV DX, SIZE DABY1ADD DX, WORD PTR DABY1 + 4上述指令序列执行后, DX 的内容是( C)A .05HB .1005HC .0105HD .0202H26 . 执行下列指令序列后, 正确的结果是( A)MOV AL , 81HADD AL, ALADC AL, ALA .AL = 05HB .AL = 204HC .AL = 04HD .AL = 205H27 .下列指令执行后总是使CF = 0 ,OF = 0 的是(A)A .ANDB .NEGC .NOTD .INC28 .可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是(D )A .AX,BX ,CX, DXB .DS, ES,CS, SSC .SP ,BP, I P,BXD .SI , DI ,BP ,BX29 .汇编源程序出现语法错误的指令有(D)A .MOV [BX + SI ] , ALB .MOV AX, [BP + DI]C .MOV DS, AXD .MOV CS , AX30 .下列串操作指令中, 必须同时指明源串和目的串地址的指令是(D )A .STOSWB .LODSWC .SCASWD .CMPSW31 .设BL 中有一无符号数, 实现把BL 中的数乘以2 , 应选用的指令是(B )A .SHR BL , 1B .SHL BL, 1C .SAR BL, 1D .RCL BL, 132 .执行PUSH AX 指令的正确步骤是(A)A .1 .SP←SP - 1 , ( SP )←AHB .1 .(SP) ←AH , SP←SP - 12 .SP←SP - 1 , ( SP )←AL 2 .( SP) ←AL, SP←SP - 1C .1 .SP←SP + 1 , ( SP )←AHD .1 .(SP) ←AH , SP←SP + 12 .SP←SP + 1 , ( SP )←AL 2 .( SP) ←AL, SP←SP + 133 .CF = 1 时转移到目标地址的条件转移指令是(B )A .JNCB .JC C .JZD .JS34 .在执行NEG 指令时, 对标志位CF 有影响, 其影响的规则是(C )A .对正数求补时,CF = 0B .对负数求补时,CF = 0C .对非零数求补时, CF = 1D .对零求补时,CF = 135 .用一条指令仅实现将BX + SI = > AX 的方法是(D)A .XCHG AX, [BX] [ SI ]B .MOV AX, [ BX + SI ]C .LEA AX,BX[SI]D .LEA AX, [ BX] [ SI ]36 .选用串操作指令时,错误的操作是(D )A .置方向标志位B .根据串操作指令设置重复次数并送入CXC .设置源操作数及目的操作数指针D .源操作数和目的操作数都可以加段超越37 .用户为了解决自己的问题,用汇编语言所编写的程序,称为(B)A .目标程序B .源程序C .可执行程序D .汇编程序38 .某系列微机对存储器的分段,如果每一个段最多的字存储单元( 16位二进制) 是32K ,那么表示段内字节单元偏移地址的二进制位数应是(B )A .20 位B .16 位C .15 位D .12 位39 .下面指令中,合理而有意义的指令是(D)A .REP LODSB B .REP SCASBC .REP CMPSBD .REP MOVSB40 .在汇编语言程序中,对END 语句的叙述正确的是(C )A .END 语句是一可执行语句B .END 语句表示程序执行到此结束C .END 语句表示源程序到此结束 D .END 语句在汇编后要产生机器码41 . 下面所列通用数据传送指令的几种传送中, 错误的传送方式是(D)A .从累加器到存储器B .立即数到存储器C .从寄存器到存储器D .从存储器到存储器42 .设SP 初值为2000H ,执行指令“PUSH AX”后, SP 的值是(D )A .1FFFHB .1998HC .2002HD .1FFFH43 .连接两个汇编语言目标程序时, 若其数据段的段名相同, 组合类型为PUBLIC, 定位类型为PARA, 连接后第一个目标程序数据段的起始物理地址是00000H, 长度为1376H, 试问第二个目标程序数据段的起始物理地址是: ( C)A .01377HB .01378HC .01380HD .01400H44 .条件转移指令JB 产生程序转移的条件是(A )A .CF = 1B .CF = 0C .CF = 1 和ZF = 1D .CF = 1 和ZF = 045 .在下列段寄存器中, 代码寄存器是( B)A .ESB .CSC .DSD .SS46 . 要求将A, B 两个字符的ASCII 码, 41H, 42H 顺序存放在一个字存储单元中, 可选用的语句是( A)A .DA1 DB ′AB′ B .DA1 DW ′AB′C .DA1 DB 0ABHD .DA1 DW 0ABH47 .设AL = 20H, SI = 0500H , DS = 3000H , (30500H) = 0C0H, CF = 1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.1编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序用大写字母显示这三个字符。
【解】:MAIN PROC FARstart:push dssub ax,axpush axinput:mov ah,7Hint 21Hcmpe:cmp al,20HJE exitcmp al,61HJL inputcmp al,7AHJG inputprint:sub al,01Hmov dl,almov ah,02Hint 21Hadd al,01Hmov dl,almov ah,02Hint 21Hadd al,01Hmov dl,almov ah,02Hint 21H;输出换行回车mov dl,0AHmov ah,02Hint 21Hj mp inputexit :retMAIN ENDPEND start5.2 将AX寄存器中的16位数分成4组,每组4位,然后把这4组数分别放在AL、BL、CL和DL中。
【解】:DB 4 dup(?).stack 100H.codeMAIN PROC FARstart:push dsand ax,00Hpush axmov ax,1234Hmov cx,04Hmov si,00Hlop:push cxmov cl,04Hrol ax,clpush axand al,0FHmov BYTE PTR x[si],alpop axpop cxadd si,2Loop lopmov al,[X]mov bl,[X+2]mov cl,[X+4]mov dl,[X+6]print:mov ah,02Hint 21Hmov dl,almov ah,02Hint 21Hmov dl,blmov ah,02Hint 21Hmov dl,clmov ah,02Hint 21Hexit:retMAIN ENDPEND start5.3 试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示MATCH,若不相同则显示NO MATCH。
【解】:data segmentstring1 db "111111111",13,10,"$"string2 db "222222222",13,10,"$"inf1 db "match!",13,10,"$"inf2 db "no match!",13,10,"$"data endscode segmentmain proc farassume ds:data,cs:code,es:codestart: push dsmov ax,0push axmov ax,datamov ds,axmov es,axlea si,string1lea di,string2mov cx,9repz cmpsbjz matchlea dx,inf2jmp dispmatch:lea dx,inf1disp :mov ah,09int 21hretmain endpcode endsend start5.4 试编写一程序,要求能从键盘接收一个个位数N,然后响铃N次(响铃的ASCII码为07H)。
【解】:main proc farstart:push dssub ax,axpush axinput:mov ah,01Hint 21Hcmp al,20Hje exitcmp al,30Hjle inputcmp al,3AHjge inputsub al,30Hmov cx,axand cx,0FFHlop:mov dl,07Hmov ah,2Hint 21Hloop lopjmp inputexit :retmain endpend start5.5 编写程序,将一个包含有20个数据的数组M分成两个数组:正数数组P和负数数组N,并分别把这两个数组中数据的个数显示出来。
【解】:DATA SEGMENTBUF DB -32, 25, 36, -18, -64, 0, -3COUNT EQU $ - BUFPLUS DB ? ; 存放正数MINUS DB ? ; 存放负数DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX, DATAMOV DS, AXMOV BL, 0 ; 负数个数MOV DL, 0 ; 正数个数MOV SI, OFFSET BUF ; 首地址MOV CX, COUNT ; 循环次数LOP1: MOV AL, [SI] ; 取第一个数CMP AL, 0 ; 和0比较JGE NEXT0 ; 大于等于0,转INC BL ; 小于0, BL加1JMP NEXT1 ; 转 NEXT1NEXT0: INC DL ;大于等于0, DL加1NEXT1: INC SI ; 指针增1DEC CX ; 循环次数减1JNZ LOP1 ; CX不等于0,转回MOV MINUS, BL ; 存储负数个数MOV PLUS, DL ; 存储正数个数CODE ENDSEND START5.6 试编写一汇编语言程序,要求从键盘接收一个4位的十六进制数,并在终端上显示与它等值的二进制数。
【解】:stacks segment stacks db 20 dup(0)stacks endsdata segmentn equ 4char db n+1 ;输入内存字符db 0db n+1 dup(0)input db 'Input the number:',0dh,0ah,'$' enter db 0dh,0ah,'$'output db 'Result is:',0dh,0ah,'$'data endscode segmentassume cs:code,ss:stacks,ds:datastart: mov ax,datamov ds,axlea dx,inputmov ah,9int 21hlea dx, charmov ah,0ahint 21hlea dx,entermov ah,9int 21hmov si,2mov cx,4l0: mov bl,char[si]cmp bl,30hjb startcmp bl,39hjbe l00cmp bl,61hjb startcmp bl,66hja startsub bl,57hjmp l333l00: sub bl,30hl333:mov char[si],bl inc sidec cxjnz l0lea dx,outputmov ah,9int 21hmov si,2l000:mov bl,char[si]mov ch,4mov cl,4shl bl,clll00:test bl,80hjnz l1mov dl,'0'mov ah,2int 21hjmp l2l1: mov dl,'1'mov ah,2int 21hl2: shl bl,1dec chjnz ll00inc sicmp si,6jne l000mov ah,4chint 21hcode endsend start5.7 设有一段英文,其字符变量名为ENG,并以$字符结束。
试编写一程序,查对单词SUN在该文中的出现次数,并以格式“SUNXXXX”显示出次数。
【解】:mov Z,0lea esi,ENGlp1: lodsblp2: cmp al,"$"jz toQuitcmp al,"S"jnz lp1lodsbcmp al,"U"jnz lp2lodsbcmp al,"N"jnz lp2inc Zjmp lp1toQuit:5.8 有一个首地址为MEM的100D字数组,试编制程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零。
【解】:stack 100H.datamem dw 12,0,0,0,0,0,1,2,3,6,4,7,8,2,1,0,0,54,5,0,2,4,7,8,0,5,6,2,1,4,8,5,1,45,7, 5,1,2,0,2,4,0,2,54,0,12,0,0,0,0,0,1,2,3,6,4,7,8,2,1,0,0,54,5,0,2,4,7,8,0,5,6,2,1,4 ,8,5,1,45,7,5,1,2,0,2,4,0,2,54,0,45,7,5,1,2,0,2,4,0,2.codeMAIN PROC FARstart:push dsand ax,0push axmov ax,@datamov ds,ax;----------------------mov ax,0Hmov bx,64Hmov cx,64Hmov si,0FFFEHrepeat:ADD si,2Hcmp MEM[si],0HJE callsloop repeatcalls:INC axcall sortcmp ax,1HJE lastValueDEC cxjmp repeatexit :retlastValue:mov mem[bx],0HDEC cxjmp repeatMAIN ENDPsort PROC NEARpush cxpush sisub si,2Hs:add si,2Hmov dx,mem[si]mov mem[si+2],dxloop sreturn:pop sipop cxretsort ENDPEND start5.9 在STRING到STRING+99单元中存放着一个字符串,试编制一程序测试该字符串中是否存在数字。
如有,则把CL的第5位置1,否则将该位置0。
【解】:XOR EBX,EBXMOV ESI,OFFSET STRINGMOV ECX,99START_LOOP:LODSBCMP AL,'0'JC LOOP_NEXTCMP AL,'9'JNC LOOP_NEXTOR BL,10HLOOP_NEXT:LOOP START_LOOPMOV CL,BL5.10 在首地址为TABLE的数组中按递增次序存放着100H个16位补码数。
试编写一个程序把出现次数最多的数及其出现次数分别存放于AX和CX中。
【解】:data segmentTable dw 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9dw 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9dw 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9dw 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9dw 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9dw 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9dw 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9dw 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9dw 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9dw 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,-1,-1Result dw 0,0,0,0data endscode segmentassume cs:code,ds:datastart:mov ax, datamov ds, ax;-------------------------------mov si, offset Tablemov ax, [si] ; ax存放最大数mov bx, [si] ; bx存放最小数mov cx, 199 ; 循环199次@C001:inc siinc simov dx, [si]cmp dx, axjg @C002cmp dx, bxjl @C003jmp @C004@C002:mov ax, dxjmp @C004@C003:mov bx, dx@C004:loop @C001; 保存结果mov Result, axmov Result+2, bx;-------------------------------mov si, offset Tablemov cx, 200@C005:mov ax, [si]xor dx, dx;------------------------------- push cxmov di, offset Tablemov cx, 200@C006:mov bx, [di]cmp ax, bxjnz @C007inc dx@C007:inc diinc diloop @C006pop cx;-------------------------------cmp dx, Result+6jle @C008mov Result+4, axmov Result+6, dx@C008:inc siinc siloop @C005;-------------------------------mov ax,4c00hint 21hcode endsend start; 最后结果 Result 9, -1, 5, 365.11 试编制一个程序,把AX中的十六进制数转换为ASCII码,并将对应的ASCII码依次存放到MEM数组中的4个字节中。