四川大学2004年汇编语言程序设计半期试题(堂下开卷)答案
- 格式:doc
- 大小:46.00 KB
- 文档页数:5
《汇编语言程序设计》考试试卷答案1.a补码=29H, b补码=0BA H, 〔a+b〕补=E3 H ;则〔a-b〕补=6F H;2.BHE和A0;8088为准16位CP U,外部数据总线只有8位;3.分状态标志和控制标志两大类,主要区别:状态标志的值取决于一个操作完成后算术逻辑部件ALU所处的状态,控制标志的值是通过指令人为设置的,以控制程序的执行。
4.CS和IP;5.BX= 9B8D H, BP= 0200 H 。
6.16H或22;80H,70H,60H,50H;7.奇/偶校验错误、溢出错误、帧错误功能;8.读写信号(RD或WR), 存储器/输入输出(M/IO)9.状态信息,数据总线10.中断类型码12H或18, 中断服务入口地址5030:3800H11.CX=0或(ZF)=1二、① 6202H ② 6232H ③ 0632H ④ 3632H三、对(xxx)求补码数的绝对值1. 写出代码段中语句的注释①保存前缀段地址②压入偏移量③数据段赋值④取待测数据⑤设置标志⑥若为正,则结束⑦为负数.求补⑧求补后的结果送回原单元2. 程序的功能①当(xxx)>0时,(xxx)不变②当(xxx)<0时,对其求补。
四、 1. D 2. E 3. L 4. C 5. F 6. B7. A 8. K 9. J 10.I 11. G 12. H五、1. 总线接口部件Eu与执行部件BIU的协调工作过程如下:(1) 每当指令队列中有两个空字节(8088是一个空字节)时,BLU就会自动把下一指令取到指令队列中。
(2 ) Eu总是从指令队列的前部取指令,并且执行。
与此同时,BLU按步骤(1)工作;在Eu执行指令中,如果需要访问存储器或I/O部件,而且BLU也允许,则会转入总线周期。
(3)如果指令队列已满,而且BLU又没有总线访问的请求,则BIU进入空闲状态。
(4)注指令队列中装入指令时,是按照指令在存储器中的排列顺序进行的,但执行转移、调用和返回指令时,下一条要执行的指令就不是存储器中紧接着的那条指令了。
四川大学期末考试试题(闭卷)(2006-2007学年第2学期)课程号:课程名称:汇编语言程序设计(B卷)任课教师:适用专业年级:计算机科学与技术05级学号:姓名:考试须知四川大学学生参加由学校组织或由学校承办的各级各类考试,必须严格执行《四川大学考试工作管理办法》和《四川大学考场规则》。
有考试违纪作弊行为的,一律按照《四川大学学生考试违纪作弊处罚条例》进行处理。
四川大学各级各类考试的监考人员,必须严格执行《四川大学考试工作管理办法》、《四川大学考场规则》和《四川大学监考人员职责》。
有违反学校有关规定的,严格按照《四川大学教学事故认定及处理办法》进行处理。
题号一二三四五六卷面成绩得分阅卷教师阅卷时间一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分1.下面的数值表示中,和100相等的是哪一个()(A)B (B)100H (C)64H (D)642.如果(SP)=30H,执行PUSH BX指令后,(SP)=()(A)28H (B)2EH (C)32H (D)31H3.如果(AL)=35H,执行AND AL,0FFH指令后,CF=()(A)0 (B)1(C)2 (D)和执行AND AL,0FFH指令前的取值保持一致4.以下指令中,执行后要影响标志位的指令为()(A)MOV AL,BL (B)SAHF (C)NOT CL (D)PUSHF5.对于SAR指令的相关原理,正确的描述为()(A)执行SAR指令后,目的操作数最高位补充0(B)该指令实质上与SHR指令没有区别(C)如果移位次数大于1,则移位次数必须预先存放在CL寄存器(D)该指令不影响CF标志位6.关于SUB指令对OF标志的影响,正确的描述为()(A)当程序员把SUB指令的操作数看作无符号数时,SUB指令不影响OF标志(B)当程序员把SUB指令的操作数看作无符号数时,SUB指令要影响OF标志,但是程序员认为它此时没有意义(C)SUB指令有时会影响OF标志,但有时不会(D)程序员使用SUB指令时总是认为它所影响的OF标志是有意义的7.DEBUG中,T命令的功能为()(A)显示当前系统时间(B)查看指定内存单元的内容注:试题字迹务必清晰,书写工整。
四川大学2018—2019学年第2学期《汇编语言程序设计》考试试卷(A卷)(闭卷时间120分钟)院/系年级专业姓名学号1、简述计算机系统组成。
2、程序中用什么语句来结束程序的执行?用什么语句来表示程序的结束和指出程序执行的起点?3、除了用4CH号系统功能调用结束程序的执行并退出,还有哪些办法?4、把下列二进制数转换为十六进制数和十进制数。
(1)01101101 (2)10110010 (3)1111115、下列各数均为十进制数,请采用8位二进制补码运算,并回答标志寄存器FLAGS中CF和OF的值,运算结果所代表的十进制数是多少?如果用16位二进制补码运算,其结果所代表的十进制数是多少?FLAGS中CF和OF的值呢?(1)85+69 (2)85+(-69) (3)85-(-69) (4)85-(69)6、下面的程序能否输出字符0~9?如不能,应如何修改?CODE SEGMENTASSUME CS:CODEK=30HJ DW 0START: MOV DL, KMOV AH, 2INT 21HK=K+1INC JCMP J, 10JNZ STARTMOV AH, 4CHINT 21HCODE ENDSEND START7、在宏定义中有时需要LOCAL 伪操作,为什么?8、根据以下要求写出输入输出指令:(1) 读61H端口(2) 写20H端口(3) 读3F8H端口(4) 写3F9H端口9、主程序从键盘输入一个八位的二进制数,对其作求补码操作,用子程序对求补后的值以二进制形式显示。
(正数的补码=输入)10、编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字母。
四川大学2018—2019学年第2学期《汇编语言程序设计》考试试卷(A卷)参考答案1、计算机由中央处理器CPU,存储器,输入系统,输出系统组成,由系统总线连接在一起。
CPU包括运算器和控制器,运算器执行指令,控制器负责计算机的控制。
汇编语言程序设计题目以及答案[P1] 汇编语言程序设计题目以及答案汇编语言是一种底层计算机语言,它直接使用机器指令来编写程序。
本文将介绍一些汇编语言程序设计的题目,并提供相应的答案。
通过这些题目和答案的学习,读者可以更好地理解和掌握汇编语言程序设计的基本概念和技巧。
[题目一] 计算两个数的和要求:编写汇编程序,计算两个给定的整数的和,并将结果存储在指定的内存位置中。
答案:```assemblysection .datanum1 dd 10 ; 第一个整数num2 dd 20 ; 第二个整数result dd 0 ; 结果section .textglobal _start_start:mov eax, [num1] ; 将num1值存入寄存器eaxadd eax, [num2] ; 将num2值与eax寄存器中的值相加mov [result], eax ; 将结果存储到result变量mov eax, 1 ; 准备执行系统调用mov ebx, 1 ; 文件描述符:标准输出mov ecx, result ; 输出的数据mov edx, 4 ; 数据长度int 0x80 ; 执行系统调用mov eax, 1 ; 准备执行系统调用xor ebx, ebx ; 正常退出int 0x80 ; 执行系统调用```[题目二] 字符串反转要求:编写汇编程序,将一个给定的字符串反转,并将结果存储在指定的内存位置中。
答案:```assemblysection .datastr db 'Hello', 0 ; 待反转的字符串section .bssreverse resb 6 ; 存储反转后的字符串section .textglobal _start_start:mov esi, str ; esi指向待反转的字符串mov edi, reverse ; edi指向存储反转结果的位置 mov ecx, 5 ; 字符串长度为5mov ebx, 1 ; ebx用于计数reverse_loop:mov al, [esi+ebx]mov [edi-ebx+5], alinc ebxloop reverse_loopmov byte [edi+5], 0 ; 在末尾添加字符串结束符 mov eax, 4 ; 准备执行系统调用mov ebx, 1 ; 文件描述符:标准输出mov ecx, reverse ; 输出的数据mov edx, 6 ; 数据长度int 0x80 ; 执行系统调用mov eax, 1 ; 准备执行系统调用xor ebx, ebx ; 正常退出int 0x80 ; 执行系统调用```[题目三] 求平均数要求:编写汇编程序,计算给定的一组整数的平均数,并将结果存储在指定的内存位置中。
汇编语言程序设计试卷一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分)1.十六进制数88H,可表示成下面几种形式,请找出错误的表示()。
① 无符号十进制数136② 带符号十进制数-120③ 压缩型BCD码十进制数88④ 8位二进制数-8的补码表示2.指令指针寄存器是()。
① IP② SP③ BP④ PSW3.当执行指令ADD AX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是()。
① 表示结果中含1的个数为偶数② 表示结果中含1的个数为奇数③ 表示该数为偶数④ 表示结果中低八位含1的个数为偶数4.完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是()。
① MOV AL,00H② AND AL,00H④ SUB AL,AL5.下列指令执行后总是使CF=0,OF=0的是()。
① AND② NEG③ NOT④ INC6.完成同指令XCHG AX,BX相同功能的指令或指令序列是()。
① MOV AX,BX② MOV BX,AX③ PUSH AXPOP BX④ MOV CX,AXMOV AX,BXMOV BX,CX7.设AH=0,AL=06H,BL=09H,执行指令ADD AL,BLAAA之后,其结果应是()。
① AH=01,AL=05② AH=1 AL=15③ AH=0 AL=0FH④ AH=0 AL=058.设AL=0B4H,BL=11H,指令“MUL BL”和指令“IMUL BL”分别执行后OF,CF的值为② OF=1,CF=1③ OF=0,CF=0④ OF=0,CF=19.在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是()。
① CX=0且ZF=0② CX=0且ZF=1③ CX=0或ZF=0④ CX=0或ZF=110.下面指令中,合理而有意义的指令是()。
① REP LODSB② REP SCASB③ REP CMPSB④ REP MOVSB11.在汇编语言程序中,对END语句的叙述正确的是()。
汇编语言程序设计参考答案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对数据交换的控制,数据传送速度快,但这种方式电路结构复杂,硬件开销大。
《汇编语言程序设计》课程知识复习学习材料试题与参考答案一、单选题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.ZF标志位是标志结果是否为零的,若结果,ZF为(),否则ZF为()。
当ZF为1时,SF为()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为无符号数。
华南师范大学计算机学院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.简述上机运行汇编语言程序的过程。
微机原理及接口技术期末模拟试题A一、单项选择题 (在下列每小题的四个备选答案中,选出一个正确的答案,并将号码填在括号内。
每小题1分,共10分)1、8086/8088 的时钟信号是由( )提供。
A. 8259B. 8255C. 8284D. 82532、指令 MOV AX , 0283H[BX][SI] 中源操作数的寻址方式为( )。
A. 寄存器间接寻址B. 基址变址相对寻址C. 基址寻址D. 变址寻址3、某存储单元的段基址为3806H,段内偏移地址为2948H,该存储单元的物理地址为( )。
A. 4100HB. 3A9A8HC.3B008HD. 3AA08H4、某存储器芯片有地址线15根,数据线8根、该存储器芯片的存储容量为( )。
A. 15K×8B. 32K×256C. 1K×8D. 32K×85、某存储器芯片容量为2K×4bit、若用它组成16K×8bit存储器组,所用芯片数以及用于组内寻址的地址线为( )。
A. 2片、11根B. 16片、14根C. 8片、16根D. 16片、8根6、 DMAC 8237具有( ) 独立通道。
A . 八个B . 二个C . 四个D . 三个7、可编程中断控制器8259A每片具有( ) 优先权控制。
A . 4级B . 2级C . 8级D . 6级8、若要某系统的8253的2通道输出波形为占空比1:1的方波、分频系数为1000、二进制计数,其工作方式命令字为( )。
A. A6HB. B6HC. B4HD. C7H9、8237片内寻址的端口有( )个。
A. 4B. 2C. 8D. 1610、8259片内寻址的端口有( )个。
A. 4B. 2C. 8D. 16二、填空题:(每空1分,共计40分)1、伪指令ASSUME在程序中出现时表示:( )。
2、汇编语言源程序中的语句结构由4部分组成,每个部分称为项(也可称为域或埸),各项名称分别为:( )、( )、( )、( )。
汇编语言程序设计试题答案汇编语言程序设计试题一、单项选择题(在每小题的四个备选答案中〜选出一个正确答案〜并将正确答案的序号填在题干的括号内。
每小题2分〜共50分)1. CPU发出的访问存储器的地址是()A. 偏移地址B. 物理地址C. 逻辑地址D. 段地址2. 使计算机执行某种操作的命令是( )A. 伪指令B. 标号C. 指令D. 助记符3. 若AX=3500H,CX=56B8〜当AND AX CX旨令执行后〜AX=()A. 1400HB. 77F8HC. 0000HD. 0FFFFH4. 计算机处理问题中会碰到大量的字符、符号〜对此必须采用统一的二进制编码。
目前〜微机中普遍采用的是( ) 码。
A. BCD 码B. 二进制码C. 十六进制码D.ASCII 码5. 下列关于8086CPU勺工作原理的描述错误的是()。
A(汇编程序员可以通过对各种寄存器中内容的修改实现对CPU的控制。
B(CPU在访问内存时〜采用“段地址*16+偏移地址”的形式给出要访问的内存单元的物理地址。
C(任意时刻〜CS:IP指向的内容即是此刻CPU正在执行的指令。
D(传送指令能够更改所有通用寄存器的内容。
6( 一个有128个字的数据区〜它的起始地址为12ABH:00AB〜请给出这个数据区最末一个字单元的物理地址是, ,A(12C5BH B(12C59H C(12B6BH D(12BFEH7. 16位结构的CPU不一定具备的特性是()。
A. 运算器一次最多可以处理16位的数据B. 寄存器的最大宽度为16 位C. 地址总线为16 根D. 寄存器和运算器之间的通路为16 位8. 下列指令的书写正确的是, , 。
A( push alB( mov cs:[0],ds:[10]C( pop siD( mov ds:[0],29(在DEBUG:具中〜显示寄存器内容的命令是,,。
A. GB. DC. TD. R10.能够将ax中的内容送到内存0000:0200H处的指令序列是,, A(mov ds,0mov bx,200hmov [bx],ax B(mov ax,200hmov ds,axmov bx,0mov [bx],axC(mov ax,20hmov ds,axmov bx,0mov [bx],axD(mov bx,20hmov ds,bxmov bx,0mov [bx],ax11(若栈顶的物理地址为20100H H当执行完指令PUSH AX后〜栈顶的物理地址为, , 。
四川大学汇编考试题及答案1四川大学期末考试试题(闭卷)(2006-200学年第2学期)课程号: ________ 课程名称:汇编语言程序设计(B 卷) ________ 任课教师: _______________ 适用专业年级:计算机科学与技术05级学号: ________________ 姓名: _______________要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分1.下面的数值表示中,和100相等的是哪一个( )2•如果(SF ) =30H,执行 PUSH BX 旨令后,(SP )=( ) (A ) 28H (B ) 2EH (C ) 32H(D ) 31H3.如果(AL ) =35H,执行AND AL , 0FFH 指令后,CF=( )(A ) 0(B ) 1(C ) 2(D )和执行AND AL ,0FFH 指令前的取值保持一致4.以下指令中,执行后要影响标志位的指令为( )(A )MOV AL ,BL(B ) SAHF (C ) NOT CL (A) B(B ) 100H(C ) 64H(D ) 64(D ) PUSHF5. 对于SAR指令的相关原理,正确的描述为( )(A)执行SAR指令后,目的操作数最高位补充0(B)该指令实质上与SHR指令没有区别(C)如果移位次数大于1,则移位次数必须预先存放在CL寄存器(D)该指令不影响CF标志位6•关于SUB指令对OF标志的影响,正确的描述为( )(A)当程序员把SUB指令的操作数看作无符号数时,SUB指令不影响OF标志(B)当程序员把SUB指令的操作数看作无符号数时,SUB指令要影响OF标志,但是程序员认为它此时没有意义(C)SUB指令有时会影响OF标志,但有时不会(D)程序员使用SUB指令时总是认为它所影响的OF标志是有意义的7. DEBUG中,T命令的功能为( )(A)显示当前系统时间(B)查看指定内存单元的内容(C)单步执行下一条指令(D)修改指定寄存器的内容8. DEBUG中,R命令的功能为( )(A)查看内存单元内容(B)查看或修改指定寄存器的内容(C)单步执行(D)连续执行9•条件转移指令的最大转移范围为 ( )(A)没有转移范围的限制(B) -128到127个字节(C) -3276到32767个字节(D) 0到255个字节10•如果(AL) =0DH,执行SUB AL 80H指令后,正确的结果为哪一个( )(A) (AL) =8DH, OF=1(B)(AL) =0DH, OF=011.如果(SP =80H 执行指令CALL FAR PTR P 后 (SP =( )(A) 80H(B ) 84H(C ) 7CH7EH12.如果数据段中一个内存单元对应的物理地址为2F724H (DS ) =2F00H 那么使用DS 段寄存 器指明该单元的段基值时,需要使用哪一个偏移量才能正确访问该单元( )(A) 0024H (B ) 0F724H(C ) 0724H(D )2724H13•如果(AL ) =B ,执行ROL AL 1指令后,正确的结果为( )(A) (AL ) = B (B )(AL ) = B (C )(AL ) = B(D )(AL ) = B14•以下指令中,没有使用基址寻址的指令是哪一个( )(A ) AND CL ,100H[BX] (B ) MOV [BP] BX (C ) SBB TAB1[BX] AH(D ) XOR AX 200H[BP]15.如果(AL ) =66H,执行如下程序片段后,正确的执行结果为( )STC OR AL ,1 ADC AL ,82H16•假设PR1是一个FAR 类型的子程序名称,那么CALL PR 指令执行的正确步骤为以下哪一个 ( )(A) 先将CS IP 的内容压栈,再按照PR1对应的逻辑地址修改CS IP,使程序流程转移至PR1 子程序入口(C )(AL ) =8DH, OF=0(D )(AL ) =0D1H OF=1(D )(A)(AL ) =0E9H CF=1(C )(AL ) =0EAH, CF=0 (B) (AL ) =0E9H CF=0(D )(AL ) =0EAH, CF=1(B)先按照PR1对应的逻辑地址修改CS IP的内容,使程序流程转移至PR1子程序入口,然后将CS IP的内容压栈,保存返回点(C)先将IP的内容压栈,再按照PR1对应的段内偏移量修改IP,使程序流程转移至PR1子程序入口(D)先将CS IP、FR的内容压栈,再按照PR1对应的逻辑地址修改CS IP,使程序流程转至PR1子程序入口17•如果(AL) =03H (BL) =05H执行如下程序片段后,正确的执行结果为以下哪一个( )SUB AL BLAAS(A) (AL) =0FEH CF=1 (B)(AL) =0F8H CF=1(C)(AL) =08H CF=1 (D)(AL) =08H CF=0 18•在8086/808汇编语言程序设计中,源程序中能够合法使用的内存单元地址是以下哪一种( )(A)逻辑地址(B)物理地址(C)段基址(D)位地址19. 如果(SI) =0088H (DS) =5570H对于物理地址为55788H勺内存字单元,其内容为0235H对于物理地址为5578AH勺内存字单元,其内容为0E60H那么执行指令LDS SI [SI]以后,正确的执行结果为( )(A )(DS) =5570H (SI) =0088H (B)(DS) =0235H (SI) =0E60H(C)(DS) =0E60H (SI) =0235H (D)(DS) =0088H (SI) =5570H20. 如果(BX) =0054H (SI) =0033H (DS) =0022H (SS =0030H 在指令ADD AL100H[BX][S中,其源操作数的EA为( )(A) 0187H (B) 12A7H (C) 1387H(D) 0087H、多项选择题(本大题共5小题,每小题2分,共10分)在每小题列出的五个备选项中有二个至五个是符合题目要求的,请将其代码填写在题后的括号内。
⼀、单项选择题(本⼤题共20⼩题,每⼩题1分,共20分) 1.假设存储器中从7462H单元开始的四个相邻字节单元中的内容依次是32H,46H,52H,OFEH,则存放字数据OFE52H的字地址是( )A.7462HB.7463HC.7464HD.7465H 2.下列寄存器组中,在访问存储器操作数地址时,可以提供偏移地址的是( )A.BP、BX、SI、DIB.AX、BX、CX、DXC.SP、IPD.BX、SI、DI、DS 3.当堆栈为空时,如SS=0805H,SP=40H,栈底字单元的物理地址是( )A.08090HB.08089HC.0808EHD.08450H 4.执⾏POP BP指令时,源操作数的物理地址表达式是( )A.16*SS+SPB.16*SS+BPC.16*DS+BPD.16*CS+BP 5.设ADRT=100H,不符合语法规则的语句是( )A.MOV AX,ADRTB.MOV AX,[ADRT+SI]C.MOV [ADRT],AXD.MOV ADRT[SI],AX 6.下⾯XCHG指令语句中,语法正确的是( )A.XCHG AX,DSB.XCHG BL,[BX]C.XCHG AL,OFHD.XCHG[SI],[DI] 7.设(AL)=63H(BL)=29H执⾏下⾯指令后( ) SUB AL,BL DAS AX的内容是A.(AX)=0304HB.(AX)=0034C.(AX)=0034HD.(AX)=0304 8.设BX=1234H,DS=2000H,(21234H)=5678H,则指令"LEA SI,[BX]"执⾏后的结果是( )A.SI=5678HB.SI=1234HC.SI=2000HD.SI=3234H 9.设DF=0,SI=20H,CX=10,执⾏REP LODSW指令后,SI中的内容是( )A.20HB.30HC.34HD.40H 10.设AL=0A8H,CL=23H,执⾏乘法指令MUL CL后,标志位OF,CF的值分别是( )A.OF=1,CF=1B.OF=1,CF=0C.OF=0,CF=1D.OF=0,CF=0 NEG BX NOT BX 上述三条指令执⾏后,BX中的内容是( )A.-1B.-2C.-3D.-4 12.设数据段有:DA1 DB XX ;是任⼀数据 DA2 DB OFEH 下列两条指令:MOV DL, DA1 OR DL,DA2 执⾏后,DL中的内容可能是( )A.0FFH或0FEHB.只能是0FEHC.只能是0FFHD.只能是01H 13.NUM1=200 NUM2=0C8H MOV AL,NUM1 XOR NUM2 上述语句执⾏后AL中的值是( )A.200B.0C8HC.0D.0FFH 14. ORG 100H NUM EQU 8042H DA1 DB 56H MOV BX,0FFSET DA1 上述程序段执⾏后BX中的值是( )A.56HB.100HC.101HD.102H 15.设数据段中定义语句 DA1 DB 12H,34H DA2 DW 12H,34H 下⾯有语法错误的语句是( )A.BUF1 DW DA1B.MOV DA1+1,AXC.MOV BYTE PTR DA2+1,ALD.MOV WORD PTR DA1,AX 16.在同⼀程序段中,定义下⾯伪指令,错误的是( )A.PORT1 EQU ALB.PORT2=ALC.PORT2=2A50H AND OFFHD.PORT3 EQU 2A50H 17.X DB 20H DUP(0) Y DW ''''7A'''',''''8B'''' MOV CL, LENGTH X 执⾏上述指令后,CX中的内容是( )A.0120HB.2010HC.207AHD.7A20H 18.执⾏SUB AX,[BP][DI]指令,取源操作数时,使⽤的物理地址表达式是( )A.16*SS+BP+DIB.16*ES+BP+DIC.16*DS+BP+DID.16*CS+BP+DI 19.BUFF单元开始,连续存放了⼗个字节数据,欲找出与AL中内容不同的数,并将不同数据的地址偏移量送ADR单元,应选⽤的指令序列是( )A.REPZ CMPSBB.KEPNZ CMPSB JZ K1 JZ K1 MOV ADR,DI MOV ADR,DI, K1:…… K1:……C.REPZ SCASBD.REPNZ SCASB JZ K1 JNZ K1 DEC DI DEC DI MOV ADR,DI MOV ADR,DI K1:…… K1:…… 20. TEST VAR,55H JE ZER0 ZER0:…… 上述程序段执⾏JE ZER0指令后能够产⽣分⽀的条件是( )A.VAR=0B.VAR=55HC.VAR中第1,3,5,7位均为0D.VAR中第0,2,4,6位均为0 ⼆、填空题(本⼤题共5⼩题,每⼩题1分,共5分) 21.逻辑地址由___________组成。
《汇编语言程序设计》练习题一参考答案一、简答题1.2.答:字节单元:(30022H) = AB H,(30024H) = EF H字单元:(30021H) = AB34 H,(30022H) = CDAB H。
3.答:(1)MOV BX, OFFSET BLOCK + 0AHMOV DX, [BX](2)MOV BX, 0AHMOV DX, BLOCK[BX](3)MOV BX, OFFSET BLOCKMOV SI, 0AHMOV DX, [BX][SI]4.答:BYTE_VAR 42 59 54 45 0C EE 00 ?? - 01 02 01 02 ?? 00 ?? 0102 01 02 ?? 00 ?? 01 02 - 01 02 ??WORD_VAR 00 00 01 00 02 00 00 00 - 01 00 02 00 00 00 01 0002 00 00 00 01 00 02 00 - 00 00 01 00 02 00 ?? ??FB FF 59 42 45 54 56 02 -5.答:宏展开:2 DATA0 DW ?2 DATA1 DW ?6.答:可以用来指示存储器地址的寄存器有BX、SP、BP、DI、SI、IP、CS、DS、7.答:该程序的第一个字的物理地址是0AAA40H。
8.答:(1) 064DH(2) 0691H(3) 05ECH9.答:(1)MOV AX, [ BX+0CH ]MOV ZERO, AX(2)MOV AX, ARRAY[BX]MOV ZERO, AX10答:DATASG SEGMENT AT 0E000HWORD_ARRAY LABEL WORDBYTE_ARRAY DB 100 DUP (?)DATASG ENDSSTACKSG SEGMENT PARA STACK 'STACK'DW 32 DUP (?)TOS LABEL WORDSTACKSG ENDSCODESG SEGMENTORG 1000HMAIN PROC FARASSUME CS:CODESG, DS:DATASG, ES:DATASG, SS:STACKSG START:MOV AX, STACKSGMOV SS, AXMOV SP, OFFSET TOSPUSH DSSUB AX, AXPUSH AXMOV AX, DATASGMOV DS, AXMOV ES, AX……RETMAIN ENDPCODESG ENDSEND START11.答: CLRB MACRO N, ARRAYCLDMOV CX, NMOV AL, 20HLEA DI, ARRAYREP STOSBENDM12.答:(1)AX、BX、CX、DX、AH、AL、BH、BL、CH、CL、DH、DL、13.答:唯一正确的是D。
汇编语言程序设计试题及答案1.对于有符号的数来说,下列哪个值最大(D)A:0F8HB:11010011BC:82 D:123Q2.下列有关汇编语言中标号的命名规则中,错误的是(D)A:通常由字母打头的字符、数字串组成B:标号长度不能超过31个字符C:?和$不能单独作为标号D:.号不可位于标号首3.8088/8086存储器分段,每个段不超过(D )A.64K个字B.32K个字节C.1兆个字节D.64K个字节4.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式(B)A:寄存器寻址B:相对基址变址寻址C:变址寻址D:基址变址寻址5.若AX= - 15要得到AX=15应执行的指令是(A )A.NEG AXB.NOT AXC.INC AXD.DEC AX6.8086/8088系统执行传送指令MOV时( A)A.不影响标志位B.影响DF方向标志C.影响SF符号标志D.影响CF进位标志7.若要求一个操作数中的若干位维持不变,若干位置“1”,可以使用(B)A:NOT B:OR C:AND D:XOR8.下列指令中段默认为堆栈段的是( C)A.MOV AX,[BX+SI+10]B.ADD AX,ES:[SI]C.SUB [BX],[BP][DI]D. MOV DX,[1000H]9.关于8086/8088微机系列,下列说法哪个是正确的(D)A:一个存储单元由16个二进制位组成,简称字。
B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。
C:在内存空间中,可以无限分配段,且段的大小不受限制。
D:段与段之间可以邻接,也可以重叠。
10.下列关于堆栈的说法,错误的是(D)A:以“先入后出”为原则。
B:栈区最高地址单元的前一个单元为栈底。
C:运行中SP寄存器动态跟踪栈顶位置。
D:压栈和弹出都是以字节为单位。
11.表示过程定义结束的伪指令是( A)A.ENDPB.ENDSC.ENDD.ENDM12.BUF1 DB 3 DUP(0,2 DUP (1,2),3)COUNT EQU $-BUF1符号COUNT等价的值是( B)A.6B.18C.16D.913.下列标志位中,可以用来判断计算结果正负的是(B)A:PF B:SF C:DF D:OF14.下列指令正确的是( CD)A. MOV [100H], [BX]B.MOV DS, ESC. ADD V[BX], CXD.MOV AX, 34H15.下列哪个寄存器是属于指针寄存器(C)A:SI B:DX C:SP D:ES二、填空题 (每小题4 分,共 20 分)1.下列程序段求数组FLD的平均值,结果在AL中。
2004年〈汇编语言程序设计〉半期试题(堂下开卷)答案
一.名词解释(本大题共5小题,每小题3分,共15分)试解释下列名词的含义。
1.寄存器:计算机系统内,位于CPU内部的存储单元,CPU访问此类存储单元不需要使用总线。
2.物理地址:CPU通过地址总线向外发送的20位地址,在访问内存单元前,CPU必须先将CPU内部的逻辑地址转换为物理地址。
3.段基值:逻辑地址的一个组成部分,用于指示一个段在内存中的起始地址。
4.寻址方式:指令获取操作数的方式。
5.补码:计算机系统内部用于表示带符号数的一种编码,正整数的补码为其真值本身,负整数的补码为其真值变反加1的结果。
二.计算题(本大题共5小题,每小题4分,共20分)试按照各小题的要求给出计算结果。
1.将十进制数100分别转换为二进制、十六进制数,它们的表示形式分别为多少?
答案:二进制为01100100B,十六进制为64H
2.假设(DS)=0C00H,(BX)=0210H,对于指令MOV DS:100H[BX],AL,其目的操作数的物理地址为多少?
答案:EA = (BX)+0100H = 0310H,物理地址= (DS)*16 + EA = 0C000H + 0310H = 0C310H
3.假设(BX)=0100H,(SI)=0020H,对于指令ADD DL,[BX][SI],其源操作数的偏移量为多少?
答案:EA = (BX)+(SI)+ 0 = 0120H
4.假设当前(SP)=0060H,连续执行5条PUSH指令后,(SP)=?
答案:每执行一条PUSH指令,(SP)被减2,因此执行5条PUSH指令后,(SP)=0060H – 5*2 =0060H -000AH = 0056H
5.对于一个十进制数– 80,其二进制补码表示形式为多少?
答案:首先求得二进制真值为– 01010000B,负数补码为变反加1的结果,即10110000B
三.排错题(本大题共4小题,每小题5分,共20分)每小题列出了一条指令,判断该指令有无语法错误,如果存在语法错误,请指出具体的错误原因,判断正确给2分,分析
正确给3分,判断错误不给分。
1.MOV CS,0600H
参考答案:错误,不能使用MOV指令传递立即数给CS
2.PUSH 074CH
参考答案:错误,单操作数指令不能使用立即数
3.ADD AX,CL
参考答案:错误,寄存器长度不匹配
4.OR BX,[CX]
参考答案:错误,CX不能用于存储器寻址
四.程序分析题(本大题共6小题,每小题5分,共30分)每小题列出了一段小的程序片段和相关存储单元的初始值,请按题目的要求分析各程序片段的运行结果。
(寄存器中的内容请使用十六进制形式给出)
1.阅读如下程序片段
MOV AL,4CH
MOV BL,86H
ADD AL,BL
执行上述程序片段后,(AL)= 0D2H (1分),(BL)= 86H (1分),CF= 0 (1分),OF= 0 (1分),PF= 1 (1分)
2.阅读如下程序片段
MOV AL,0F3H
MOV DL,0C4H
ADD AL,DL
AND AL,0FH
执行上述程序片段后,(AL)= 07H (1分),(AF)= 不确定(1分),CF= 0 (1分),OF= 0 (1分),PF= 0 (1分)
注意:逻辑运算指令中,除NOT指令外,CF、OF均置0,AF为不确定
3.阅读如下程序片段
MOV AL,6FH
MOV CL,04H
ROL AL,CL
执行上述程序片段后,(AL)= 0F6H (2分),(CL)= 04H (1分),
CF= 0 (1分),OF= 不确定(1分)
注意:移位指令中,当指令的移位次数大于1时,OF为不确定
4.阅读如下程序片段
MOV AX,0632H
MOV BX,0C202H
SUB AL,BL
SBB AH,BH
INC AX
执行上述程序片段后,(AX)= 4431H (2分),(CF)= 1 (2分),
OF= 0 (1分)
注意:INC指令不影响CF标志位
5.阅读如下程序片段,假设(DS)=0100H,字节单元(01024H)=56H,字节单元(01025H)=28H
MOV BX,0024H
LEA BX,[BX]
AND BX,0FFH
ADC BX,[BX]
执行上述程序片段后,(BX)= 287AH (3分),(CF)= 0 (2分),
OF= 0 (1分)
6.阅读如下程序片段,假设(SP)=0064H
MOV AX,0001H
MOV BX,0002H
PUSH AX
PUSH BX
POP AX
POP BX
执行上述程序片段后,(AX)= 0002H (2分),(BX)= 0001H (2分),(SP)= 0064H (1分)
五.程序设计题(本大题共3小题,每小题5分,共15分)(注:不是唯一答案)
1.试编写一程序片段,实现BL高4位与低4位相互交换(5分)
参考解答:
MOV CL, 4
ROL BL, CL
2.试编写一程序片段,不使用乘除法指令,实现((AX)*5+14)/ 2的功能(AX中的数据理解为补码)(5分)
参考解答:
MOV BX, AX
MOV CL, 2
SAL AX, CL
ADD AX, BX
ADD AX, 14
SAR AX, 1
3.试编写一完整程序,实现88242567H与0A435C218H两个32位无符号数相加的功能。
(要求编写完整源程序,含程序框架)(5分)
参考解答:
DATA SEGMENT
V AR1 DD 88242567H
V AR2 DD 0A435C218H
V AR3 DD ?
DATA ENDS
STACK1 SEGMENT STACK
DW 40H DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACK1
BEGIN: MOV AX, DATA
MOV DS, AX
MOV AX, V AR1
ADD AX, V AR2
MOV V AR3, AX
MOV AX, V AR1+2
ADC AX, V AR2+2
MOV V AR3+2, AX
MOV AH, 4CH
INT 21H CODE ENDS
END BEGIN。