《汇编语言》习题及解答
汇编语言试题及参考答案
![汇编语言试题及参考答案](https://img.taocdn.com/s3/m/0045d98b6529647d2728524a.png)
汇编语言试题及参考答案一,填空题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。
汇编语言习题与答案
![汇编语言习题与答案](https://img.taocdn.com/s3/m/6626c63dcfc789eb172dc83b.png)
汇编语言习题与答案一、填空题:把答案填在题中横线上。
1.8位无符号整数的表示范围为0~255,写成16进制形式为00H~__________;8位有符号整数的表示范围为-128~+127,写成16进制形式为__________~__________。
2.8086/8088分段管理存储空间,但每段容量最大不超过__________。
3.逻辑地址为F000:100的存储单元,其物理地址是__________。
4.用来指示堆栈栈顶的偏移地址的是__________寄存器。
5.若要测试AL寄存器D4、D2、D0位是否都为0,则可使用__________指令语句(含操作数),以产生转移条件。
这条指令执行后将利用标志位__________实现转移。
6.若定义:bdata db2dup(1,2,2dup(3),4),则dbata变量前5个单元从低地址到高地址的数据依次是__________。
7.假设varw是一个16位变量,则指令“mov varw,ax”的目的操作数的寻址方式是__________。
二、选择题:在每小题给出的四个选项中,只有一项是符合题目要求的,请把所选项前的字母填在题后的括号内。
1.对汇编语言源程序进行翻译,形成OBJ文件的是A.汇编程序B.连接程序C.编辑程序D.调试程序[]2.下列各个8位二进制数的补码中,真值最大的是A.10001000B.11111111C.00000000D.00000001[]3.MASM语句中,表达常数不正确的形式是A.01101001BB.A346HC.’A’D.5600[]4.如果SS=600H,则说明堆栈段物理地址起始于A.60HB.600HC.6000HD.60000H[]5.dw50dup(?)预留了存储空间的字节数是A.25B.50C.100D.200[]6.下列指令中有操作数在代码段中的是A.mov ax,34hB.add ax,bxC.inc word ptr[34h]D.cmp ax,[34h][]7.假设AL=5,要使得AL=0FAH,应执行的指令是A.not alB.and al,0fhC.xor al,0f0hD.or al,0fh[]8.设置逻辑段应该采用的一对伪指令是A.segment/endsB.start/end startC.proc/endpD.macro/endm[]9.条件转移指令JNE条件是A.CF=0B.CF=1C.ZF=0D.ZF=1[]10.逻辑移位指令SHL可用于A.有符号数乘以2B.有符号数除以2C.无符号数乘以2D.无符号数除以2[]11.执行“in al,dx”指令后,进入AL寄存器的数据来自A.寄存器B.存储器C.立即数D.外设端口[]12.将十进制数75以压缩BCD码送入AX,正确的指令是A.mov ax,0075B.mov ax,0705C.mov ax,0075hD.mov ax,0705h[]13.如下指令可将AX寄存器内容改变的是A.cmp ax,bxB.test ax,bxC.and ax,bxD.xchg ax,bx[]14.设AH=10H,执行“neg ah”指令后,正确的结果是A.AH=10H、CF=1B.AH=F0H、CF=0C.AH=10H、CF=0D.AH=F0H、CF=1[]15.如下程序段:again:mov es:[di],alinc diloop again可用指令__________完成相同的功能。
汇编语言试题及答案
![汇编语言试题及答案](https://img.taocdn.com/s3/m/9416cb3a814d2b160b4e767f5acfa1c7aa0082f5.png)
汇编语言试题及答案一、单项选择题(每题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寄存器。
汇编语言试题及参考答案
![汇编语言试题及参考答案](https://img.taocdn.com/s3/m/2639d8c00129bd64783e0912a216147916117e1c.png)
汇编语言试题及参考答案一、选择题(每题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的作用是________。
汇编语言复习题附答案
![汇编语言复习题附答案](https://img.taocdn.com/s3/m/d807a5e6ed3a87c24028915f804d2b160b4e863f.png)
汇编语言复习题附答案一、选择题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的状态寄存器中的条件码标志来决定是否跳转到指定的标签处执行。
计算机技术汇编语言试题含答案
![计算机技术汇编语言试题含答案](https://img.taocdn.com/s3/m/4eca360fe418964bcf84b9d528ea81c758f52e3b.png)
计算机技术汇编语言试题含答案第一部分:选择题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 的功能。
汇编语言习题及答案
![汇编语言习题及答案](https://img.taocdn.com/s3/m/32c50114c5da50e2524d7f98.png)
汇编语言复习题简答题1.存储器地址为什么要分段?物理地址是如何形成的?2.IBM PC机的寻址方式(与数据有关的寻址方式)有几种?各举一例说明。
3.80x86微机的存储器中存放信息如下图所示。
试读出30022H与30024H字节单元的内容与30021H和30022H字单元的内容。
4.现有(DS)= 2000H,(BX)=0100H,(SI)= 0002H, (20100)= 12H, (20101)=34H, (20102)= 56H, (20103)=78H, (21200)=2AH, (21201)= 4CH, (21202)=B7H, (21203) = 65H,试说明下列各条指令执行完后AX的内容。
1)MOV AX,1200H2)MOV AX,BX3)MOV AX,[1200H]4)MOV AX,[BX]5)MOV AX,1100[BX]5.完成下列各式补码数的运算,并根据结果设置标志位SF,CF,ZF,OF,指出运算结果是否有效1)01001001b+10011101b2)01000001b-10101011b6.有符号定义语句如下:BUFF DB 1,2,3,’123’EBUFF DB 0L EQU EBUFF-BUFF问L的值为多少?为什么?答案:1、IBM PC系列机的字长为16位,能够访问的最大存储空间64KB,而在IBM PC内存为1MB的情况下,访问这1MB的存储空间需要20位。
为了解决字长为16位的机器访问1MB的存储空间,将1MB空间每16B分为一段,共64K段,以16位段地址:16位偏移地址的形式组成,物理地址通过如下方式计算:物理地址=段地址×10h + 偏移地址2.IBM PC机的寻址方式有7种:1)立即寻址:MOV AX, 1234H;2)寄存器寻址:MOV AX, BX;3)直接寻址:MOV AX, [1234H];4)寄存器间接寻址:MOV AX, [BX];5)寄存器相对寻址:MOV AX, 20H[BX];6)基址变址寻址:MOV AX, [BX][SI];7)相对基址变址寻址:MOV AX, 100H[BX][SI];3.解:(30022H)= 12H(30024H) = 56H(30021H) = 12CDH(30022H) = 3412H4.解:(1)MOV AX,1200H解:(AX)=1200H(2)M OV AX,BX解:(AX)= 0100H(3)M OV AX,[1200H]解:物理地址=(DS)×10H+1200H(AX) = 4C2AH(4)M OV AX,[BX]解:物理地址=(DS)×10H+0100H=20100H(AX)=3412H(5)M OV AX,1100[BX]解:物理地址=(DS)×10H+0100H+1100H=21200H(AX)=4C2AH5.(1)01001001b+10011101b解:01001001+ 10011101————————11100110 由此可得:SF=1 CF=0 ZF=0 OF = 0 计算结果有效(2)01000001b-10101011b解:01000001- 10101011————————=> 01000001+ 01010101————————10010110 由此可得:SF=1 CF=1 ZF=0 OF=1 减法计算中,被减数、减数符号相反,结果符号与减数相同,OF=1计算结果无效6.有符号定义语句如下:BUFF DB 1,2,3,’123’EBUFF DB 0L EQU EBUFF-BUFF问L的值为多少?为什么?解:根据数据段的定义,BUFF长度定义为6个字节,分别存放1,2,3,‘1’,‘2’,‘3’,而后紧接着为EBUFF的地址,故L值为6程序题1 MOV BL,64HMOV CL,03HXOR AX,AXAGAIN:ADD AL,BLADC AH,0DEC CLJNZ AGAIN问:(1)该程序段完成的功能是:(2)AX=________。
汇编语言练习题及习题答案
![汇编语言练习题及习题答案](https://img.taocdn.com/s3/m/a3d02cdb760bf78a6529647d27284b73f3423645.png)
汇编语言练习题及习题答案选择1、用户为了解决自己的问题,用汇编语言所编写的程序,称为___________。
A 、目标程序B、源程序C、可执行程序D、汇编程序2、无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是___________。
A、ADD BH,01HB、OR BH,01HC、XOR BH,01HD、TEST BH,01H3、设AL=20H,SI=0500H,DS=3000H,(30500H)=0C0H,CF=1,执行SBB AL,[SI]后,正确的结果是___________。
A、AL=5FH SF=1 CF=1B、AL=60H SF=1 CF=0C、AL=5FH SF=0 CF=1D、AL=60H SF=0 CF=04、设AX=1000HNEG AXNOT AX执行上述指令后,正确的结果是___________。
A、AX=1001HB、AX=0FFFHC、AX=1000HD、AX=0111H5、CBW指令的功能是___________。
A、把源操作数的符号位扩展到目的操作数中B、把AL中的符号位扩展到AH中C、把AH中的符号位扩展到AL中D、把AX中的符号位扩展到DX中6、AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是A、指令XOR AX,AX执行后,AX内容不变,但设置了标志位B、指令OR DX,1000H执行后,将DX最高位置1,其余各位置0C、指令AND AX,OFH执行后,分离出AL低四位D、NOT AX,执行后,将AX清07、执行下列指令序列后,正确的结果是___________。
MOV AL,81HADD AL,ALADC AL,ALA、AL=05HB、AL=204HC、AL=04HD、AL=205H4、TEST DL,55HJE NEXT….NEXT:……上述程序段,执行JE指令时能产生转移的情况是。
A、DL>55HB、DL<55HC、DL=55HD、DL中第0、2、4、6位均为05、设CL=05H,要获得CL=0AH,可选用的指令是。
汇编语言试题及答案
![汇编语言试题及答案](https://img.taocdn.com/s3/m/5fd01330571252d380eb6294dd88d0d233d43cc5.png)
汇编语言试题及答案一、选择题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. 论述汇编语言在现代计算机系统中的作用和局限性。
答案:汇编语言在现代计算机系统中主要用于系统底层开发、硬件驱动编写、嵌入式系统编程等领域。
其作用在于能够直接控制硬件,实现高效的资源利用。
然而,由于其复杂度高、可读性差、可移植性低,它在高级应用开发中的使用受到限制。
汇编考试题及答案详解
![汇编考试题及答案详解](https://img.taocdn.com/s3/m/424c609d09a1284ac850ad02de80d4d8d15a01a4.png)
汇编考试题及答案详解一、选择题(每题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)的原则。
汇编习题及解答
![汇编习题及解答](https://img.taocdn.com/s3/m/01f9277d27284b73f24250d5.png)
选择题(部分习题应多选)1、汇编语言源程序经汇编后不能直接生成(1)。
(A).OBJ文件(B).LST文件(C).EXE文件(D).CRF文件2、运算型指令的寻址和转移型指令的寻址,其不同点在于(2)。
(A)前者取操作数,后者决定程序的转移地址(B)后者取操作数,前者决定程序的转移地址(C)两者都是取操作数(D)两者都是决定程序的转移地址3、JMP WORD PTR [DI]是(3)。
(A)段内间接转移(B)段间间接转移(C)段内直接转移(D)段间直接转移4、JMP FAR PTR ABCD(ABCD是符号地址)是(4)。
(A)段内间接转移(B)段间间接转移(C)段内直接转移(D)段间直接转移5、INC指令不影响(5)标志。
(A)OF (B)CF(C)SF (D)ZF6、条件转移指令JNE的测试条件是(6)。
(A)OF (B)CF(C)SF (D)ZF7、逻辑移位指令SHL用于(7);(A)带符号数乘2 (B)带符号数除2(C)无符号数乘2 (D)无符号数除2而算术移位指令SAL用于(8)。
(A)带符号数乘2 (B)带符号数除2(C)无符号数乘2 (D)无符号数除28、下列程序执行后,请选择正确的结果:10A3H:2000H XOR AL,AL2002H MOV AX,CS2004H MOV SS,AX2006H MOV SP,2F00H2009H MOV DX,2012H200CH PUSH DX200DH CALL 2700H2010H ADD CX,DX2012H HLT10A3H:2700H POP CXRET8.1、(AX)=(9);(A)10A3H (B)2000H(C)2012H (D)2799H8.2、(SP)=(10);(A)2F02H (B)2F00H(C)2EFEH (D)2EFCH8.3、(DX)=(11);(A)2700H (B)2F00H(C)2012H (D)2010H8.4、(CX)=(12);(A)2700H (B)2F00H(C)2010H (D)4024H8.5、ZF=(13);(A)1 (B)0(C)不定(D)-110、对于下列程序段:AGAIN:MOV ES:[DI],ALINC DILOOP AGAIN可用指令(16)完成相同的功能。
(完整版)汇编语言习题详解(全部)(免费)
![(完整版)汇编语言习题详解(全部)(免费)](https://img.taocdn.com/s3/m/c60e025289eb172ded63b7bf.png)
《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。
汇编语言练习题含答案
![汇编语言练习题含答案](https://img.taocdn.com/s3/m/a21125c152d380eb63946d4b.png)
B)LINK C)MASM D)EDIT 69.在上机操作过程中,MASM 命令执行后,除了生成一个目标文件外,根据选择还可以生 成一个( )文件。 A)LST B)EXE C)MAP D)ASM 70.LINK 命令执行后可以生成一个以( )为扩展名的文件。 A)ASM B)EXE C)OBJ D)COM 71.8086 汇编程序一个段最大可定义( )字节。 A)1M B)64K C)32K D)16K 72.若要求一个段的起始位置能被 256 整除的单元开始,在定位方式选项中应选( )。 A) BYTE B)WORD C)PARA
C)100
D)A 的段地址
66.若定义“B DW 1,2,10 DUP(0)”,则该伪指令分配( A)10
)字67.若定义“C DD 2,4”,则该伪指令分配( A)2
)个字节单元。
B)4
C)6
D)8
68.伪指令( )是规定的汇编说明符,它在源程序汇编时进行说明。 A)DEBUG
A)SF B)OF C)ZF D)CF 15 如果指令的运算结果中有奇数个1,则( )标志位为0。 A)PF B)CF C)OF D)SF 16. IBM PC 机的内存是按( )是编址的。 A)位 B)字节 C)字 D)双字 17 存储器的一个字节表示( )位。 A)8 B)16 C)32 D)64 18 如果某个字变量的数据存放在奇地址单元,则 8086/8088 CPU 读写该变量时需要( )个 读写周期。 A)1 B)2
C)3 D)4 19 在机器内部操作中,CPU 与存储器之间的任何信息交换使用的都是( )地址。 A)逻辑 B)物理 C)有效 D)相对 20. 一个16位相对位移的范围是( )。 A)0~65535 B)0000H~0FFFH C)8000H~7FFFH D)8000H~FFFFH 21 物理地址的形成过程是将段地址左移( )位加偏移地址。 A)2 B)3 C)4 D)5 22 如果某一存储单元的逻辑地址为 236FH:1000H。则物理地址为( )。 A)1236FH B)336FH C)336F0H D)246F0H 23 如果内存的某一单元的物理地址为 12345H。则它的逻辑地址为( ):0345H。
汇编语言习题答案
![汇编语言习题答案](https://img.taocdn.com/s3/m/ee9175b7294ac850ad02de80d4d8d15abe23003d.png)
第1章自测练习一、选择题(四选一)1.某个加法运算结果使标志ZF=1,则标志SF为A。
A0 B 1 C 不改变原来的状态 D 不确定2.可以为存储器操作数提供偏移地址的寄存器组是B。
A AX、BX、CX、DXB BX、BP、SI、DIC SP、IP、BP、DXD CS、DS、ES、SS3.8086/8088确定下一条执行指令物理地址的计算表达式为D。
A DS× 16+EAB ES× 16+EAC SS×l6+SPD CS×l6+IP4.某系列微机对存储器分段,如果每个段最多的字存储单元(16位二进制)是32K,那么表示段内字节单元偏移地址的二进制位数应是C位。
A14 B 15 C 16 D 205.十进制数-100的8位二进制数的补码为 D 。
A10011011 B 01100100 C 10011101 D 100111006.下列各个8位二进制数的补码中,绝对值最大的是A。
A10001000 B 11111110 C 00000100 D 000000017.16位有符号数的补码所表示的十进制数的范围是B。
A-32767~+32768 B -32768~+32767C -65535~+65536D 0~655358.对数值83A7H作逻辑非运算后的结果是D。
A83A8H B、73A8H C、7C59H D、7C58H9.指令“mov cx,[bp+16]”的源操作数采用的段寄存器是 B 。
A CSB SSC DSD ES10.指向程序堆栈区的段寄存器是 B 。
A CSB SSC DSD ES11.有效地址是指 C 。
A存储器操作数的物理地址 B 存储器操作数的段地址C 存储器操作数的偏移地址D 立即数的偏移地址12.寄存器间接寻址方式中,操作数在 C 中。
A通用寄存器 B 段寄存器C 主存单元D 堆栈13.指令“mov ax,es:[bx][si]”源操作数的物理地址是D。
《汇编语言》习题及解答
![《汇编语言》习题及解答](https://img.taocdn.com/s3/m/5e713928172ded630a1cb67f.png)
第1章基础知识检测点(第9页)(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13位。
(2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。
(3)1KB的存储器可以存储8192(2^13)个bit,1024个Byte。
~(4)1GB是24(2^30)个Byte、1MB是1048576(2^20)个Byte、1KB是1024(2^10)个Byte。
(5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为: 64(KB)、1(MB)、16(MB)、4(GB)。
(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。
则它们一次可以传送的数据为: 1(B)、1(B)、2(B)、2(B)、4(B)。
(7)从内存中读取1024字节的数据,8086至少要读512次,80386至少要读256次。
(8)在存储器中,数据和程序以二进制形式存放。
解题过程:'(1)1KB=1024B,8KB=1024B*8=2^N,N=13。
(2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。
(3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。
(4)1GB=24B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。
(5)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。
这样的CPU最多可以寻找2的N次方个内存单元。
(一个内存单元=1Byte)。
(6)8根数据总线一次可以传送8位二进制数据(即一个字节)。
(7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。
(8)在存储器中指令和数据没有任何区别,都是二进制信息。
(完整版)汇编语言试题及答案
![(完整版)汇编语言试题及答案](https://img.taocdn.com/s3/m/c2b81d85dc3383c4bb4cf7ec4afe04a1b171b057.png)
一,单项选择题(每小题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也可用指令完成同样的功能。
《汇编语言》作业及答案
![《汇编语言》作业及答案](https://img.taocdn.com/s3/m/ae7c9993b9d528ea81c7794b.png)
习题一1.在计算机内部,计算机能够直接执行的程序语言是。
A.汇编语言B.C++语言C.机器语言D.高级语言2.在堆栈段中,存放栈顶地址的寄存器是。
A.IPB.SPC.BXD.BP3.指令指针寄存器IP用来存放代码段中的偏移地址。
在程序运行的过程中,它始终指向。
A.下一条指令的首地址B.下一条指令的地址C.当前指令的首地址D.当前指令的地址4.编译程序的功能是。
A.检查源程序中的语法错误和逻辑错误B.将源程序编译成目标程序C.改正源程序中的语法错误D.将高级语言源程序翻译成汇编语言源程序5.用户为了解决自己的问题,用汇编语言所编写的程序,称为。
A.目标程序B.源程序C.可执行程序D.汇编程序6.计算机中用来存储程序、数据等信息的记忆装置是。
A.控制器B.运算器C.CPUD.存储器7.在宏汇编中,源程序必须通过____编译_______生成目标代码,然后用连接程序将其转化为可执行文件,该文件可在系统中运行。
习题二1当SS=3000H,SP=0100H时,执行PUSH AX指令后,堆栈顶部的物理地址是()A.30100HB.30098HC.30102HD.300FEH2设10000010B分别以原码、补码及反码表示时,则对应的十进制数依次是()A.-82、-126、-2B.-2、-125、126C.-2、-126、-125D.-82、-125、1253标志寄存器中属于控制标志位的是()A.DF,OF,SFB.DF,IF,TFC.OF,CF,PFD.AF,OF,SF4设(AX)=4544H,在执行指令”SUB AH,AL”之后,()A.CF=0,OF=0B.CF=0,OF=1C.CF=1,OF=0D.CF=1,OF=15若寄存器AX、BX、CX、DX的内容分别为18,19,20,21时,依次执行PUSH AX,PUSH BX,POP CX,POP DX后,寄存器CX的内容为______19____________。
汇编语言考试题库及答案
![汇编语言考试题库及答案](https://img.taocdn.com/s3/m/c4abc404f4335a8102d276a20029bd64783e62b7.png)
汇编语言考试题库及答案一、选择题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!",后面跟着一个空字符作为字符串的结束标记。
汇编语言试题及答案
![汇编语言试题及答案](https://img.taocdn.com/s3/m/a3c48a516ad97f192279168884868762cbaebb49.png)
汇编语言试题及答案一、选择题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指令用于将数据从一个位置复制到另一个位置。
它可以将立即数、寄存器或内存中的数据复制到目标寄存器或内存位置。
汇编语言课后习题及答案 按章节 超全面
![汇编语言课后习题及答案 按章节 超全面](https://img.taocdn.com/s3/m/83bd071cfc4ffe473368abdf.png)
`00第一章课外练习题一、单项选择题:1.从键盘输入的字符,在计算机内存储的是它的(A)(A)二进制编码(B)四进制编码(C)八进制编码(D)十六进制编码2.6位无符号二进制数能表示的最大十进制数是(B)。
(A)64 (B)63 (C)32 (D)31 3.十进制数269变换为十六进制数是(C)。
(A)10B (B)10C (C)10D (D)10E 4.8位的微型计算机系统是以16位来表示地址,则该微机系统有(C)个地址空间。
(A)255 (B)65535 (C)65536 (D)1048576 5.8位有符号二进制数能表示的最大十进制数是(D)。
(A)256 (B)255 (C)128 (D)127 6.十六进制数88H,可表示成下面几种形式,请找出错误的表示(D)。
(A)无符号十进制数136 (B)带符号十进制数-120(C)压缩型BCD十进制数88 (D)8位二进制数-8的补码表示7.有一个数值152,它与十六进制数6A相等,那么该数值是(B)。
(A)二进制数(B)八进制数(C)十进制数(D)四进制数8.7位ASCII总共可表示(C)个符号。
(A)256 (B)127 (C)128 (D)255 9.4B的字长是(C)。
(A)8位(B)16位(C)32位(D)64位二、判断题(判断每题正误,对的在题后括号内划“√”,错的划“×”)1.字节通常用英文单词“Bit”来表示(×)。
2.目前广泛使用的Pentium计算机其字长为5个字节(×)。
3.存储器中将8个相邻的二进制位作为一个单位,这种单位称为字节(√)。
4.微型计算机的字长并不一定是字节的整数倍(×)。
三、填空题1.8位有/无符号整数的表示范围写成16进制形式为(80~~7F)/(00~~FF)。
2.己知:计算机中有一个“01100001”编码,如果把它看作是无符号数,它是十进制什么数(97);如果认为它是BCD,则表示(01100001)BCD;认为它是某个ASCII,则代表(a)字符。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章基础知识检测点(第9页)(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13位。
(2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。
(3)1KB的存储器可以存储8192(2^13)个bit,1024个Byte。
~(4)1GB是24(2^30)个Byte、1MB是1048576(2^20)个Byte、1KB是1024(2^10)个Byte。
(5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为: 64(KB)、1(MB)、16(MB)、4(GB)。
(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。
则它们一次可以传送的数据为: 1(B)、1(B)、2(B)、2(B)、4(B)。
(7)从内存中读取1024字节的数据,8086至少要读512次,80386至少要读256次。
(8)在存储器中,数据和程序以二进制形式存放。
解题过程:'(1)1KB=1024B,8KB=1024B*8=2^N,N=13。
(2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。
(3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。
(4)1GB=24B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。
(5)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。
这样的CPU最多可以寻找2的N次方个内存单元。
(一个内存单元=1Byte)。
(6)8根数据总线一次可以传送8位二进制数据(即一个字节)。
(7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。
(8)在存储器中指令和数据没有任何区别,都是二进制信息。
》第2章寄存器~检测点(第19页)(1)写出每条汇编指令执行后相关寄存器中的值。
第一空:F4A3H第二空:31A3H第三空:3123H第四空:6246H第五空:826CH第六空:6246H第七空:826CH第八空:04D8H第九空:0482H第十空:6C82H第十一空:D882H第十二空:D888H第十三空:D810H第十四空:6246H(2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
解答如下:mov ax,2add ax,axadd ax,axadd ax,ax检测点(第25页)(1)00010H,1000FH(2)1001H,2000H…第2题说明:因为段的起始地址要为16的倍数。
所以当段地址小于1001H或大于2000H时CPU都无法寻到。
(1)解题过程:物理地址=SA*16+EAEA的变化范围为0h~ffffh物理地址范围为(SA*16+0h)~(SA*16+ffffh)现在SA=0001h,那么寻址范围为(0001h*16+0h)~(0001h*16+ffffh)=0010h~1000fh(2)解题过程:)物理地址=SA*16+EA20000h=SA*16+EASA=(20000h-EA)/16=2000h-EA/16EA取最大值时,SA=2000h-ffffh/16=1001h,SA为最小值EA取最小值时,SA=2000h-0h/16=2000h,SA为最大值这里的ffffH/16=fffh是通过WIN自带计算器算的按位移来算确实应该为,这里小数点后的f应该是省略了单就除法来说,应有商和余数,但此题要求的是地址最大和最小,所以余数忽略了;如果根据位移的算法(段地址*16=16进制左移一位),小数点后应该是不能省略的我们可以反过来再思考下,如果SA为1000h的话,小数点后省略SA=1000h,EA取最大ffffh,物理地址为1ffffh,将无法寻到20000H单元这道题不应看成是单纯的计算题|检测点(第35页)答:CPU修改了4次IP的值。
情况如下:第1次:执行完mov ax,bx后第2次:执行完sub ax,ax后;该步执行后,寄存器ax清零第3次:读入jmp ax后第4次:执行完jmp ax后;连续两步ip均为0最后IP的值为0;最后IP的值为0000H,因为最后ax中的值为0000H,所以IP中的值也为0000H^第三章寄存器(内存访问)检测点(第55页)(1)(题目:略)第一空:2662H第二空:E626H第三空:E626H第四空:2662H第五空:D6E6H第六空:FD48H第七空:2C14H第八空:0000H第九空:00E6H第十空:0000H第十一空:0026H第十二空:000CH'提示:此题可在DEBUG中利用E命令在本机上按照题目中所给出的内存单元及其数据进行相应地修改,然后再用A命令进行写入(题目中所给出的)相应的汇编指令,最后再进行T命令进行逐步执行,以查看相应结果。
(2)指令序列如下:(3)mov ax,6622h(4)jmp 0ff0:0100(5)mov ax,2000h(6)mov ds,ax(7)mov ax,[0008](8)mov ax,[0002]2.写出CPU执行每条指令后,CS、IP和相关寄存器中的数值。
指令序列↓{寄存器→CS IP DS AX BX初始值→2000H0000(1000H00mov ax,6622h2000H00031000H6622H0000 jmp 0ff0:0100~00001000H6622H00001000Hmov ax,2000h1000H00031000H2000H—0000 mov ds,ax1000H00052000H2000H0000 mov ax,[0008]1000H0008…C389H00002000Hmov ax,[0002]1000H000B2000H EA66H0000》3.再次体会:数据和程序有区别吗如何确定内存中的信息哪些是数据,哪些是程序?检测点(第70页)(1)补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20000H-2000FH 中。
mov ax,1000Hmov ds,axmov ax,2000Hmov ss,axmov sp,10h(2)补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20000H-2000FH 中。
mov ax,2000H…mov ds, axmov ax,1000Hmov ss, axmov sp,0—检测点(第129页)~(1)下面的程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,完成程序:assume cs:codesgcodesg segmentdw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hstart: mov ax,0mov ds, axmov bx,0mov cx,8s: mov ax,[bx]$mov cs:[bx],axadd bx,2loop smov ax,4c00hint 21hcodesg endsend start;(2)下面的程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,数据的传送用栈来进行。
栈空间设置在程序内。
完成程序:assume cs:codesgcodesg segmentdw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hdw 0,0,0,0,0,0,0,0,0,0;10个字单元用作栈空间,所以栈空间的大小为10*2=20,化成16进制即为14 start: mov ax, codesg;或mov ax, csmov ss ,axmov sp, 24h;或mov sp, 36;10h+14h=24hmov ax,0,mov ds, axmov bx,0mov cx,8s: push [bx]pop cs:[bx];或pop ss:[bx] ;关键在于cs与ss此时地址相同add bx,2loop smov ax,4c00hint 21hcodesg ends(end start检测点(第183页)(1)程序如下:assume cs:codedata segmentdw 2 dup (0)data ends—code segmentstart: mov ax, datamov ds, axmov bx,0jmp word ptr [bx+1]code endsend start<若要使jmp指令执行后,CS:IP指向程序的第一条指令,在data段中应该定义哪些数据答案①db 3 dup (0)答案②dw 2 dup (0)答案③dd 0jmp word ptr [bx+1]为段内转移,要CS:IP指向程序的第一条指令,应设置ds:[bx+1]的字单元(2个字节)存放数据应为0,则(ip)=ds:[bx+1]=0简单来说就是,只要ds:[bx+1]起始地址的两个字节为0就可以了[、(2)程序如下:assume cs:codedata segmentdd h~data endscode segmentstart: mov ax,datamov ds,axmov bx,0mov [bx], bx;或mov [bx], word ptr 0;或mov [bx], offset startmov [bx+2], cs;或mov [bx+2], cs ;或mov [bx+2], seg codejmp dword ptr ds:[0]~code endsend start补全程序,使用jmp指令执行后,CS:IP指向程序的第一条指令。
第一格可填①mov [bx],bx ②mov [bx],word ptr 0 ③mov [bx],offset start等。
第二格可填①mov [bx+2],cs ②mov [bx+2],cs ③mov [bx+2],seg code等。
解析:jmp dword ptr ds:[0]为段间转移,(cs)=(内存单元地址+2),(ip)=(内存单元地址),要CS:IP指向程序的第一条指令,第一条程序地址cs:0,应设置CS:IP指向cs:0;程序中的mov [bx],bx这条指令,是将ip设置为0mov [bx+2],cs,将cs这个段地址放入内存单元执行后,cs应该不变,只调整ip为0,(ip)=ds:[0]=0(3)用Debug查看内存,结果如下:,2000:1000 BE 00 06 00 00 00 ......则此时,CPU执行指令:mov ax,2000hmov es,axjmp dword ptr es:[1000h]后,(cs)= 0006H,(ip)= 00BEH解析:jmp dword ptr为段间转移,高位存放段地址,低位存放偏移地址(cs)=(内存单元地址+2),(ip)=(内存单元地址).根据书P16,对于寄存器AX,AH为高位(前1字节为高位),AL为低位(后1字节为低位)推算出(内存单元地址)=00BEH,(内存单元地址+2)=0006H根据书P182,高位存放段地址(后2个字节为高位),低位存放偏移地址(前2个字节为低位) (cs)=(内存单元地址+2),(ip)=(内存单元地址)推算出(cs)=0006H,(ip)=00BEH.检测点(第184页))补全编程,利用jcxz指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。