《汇编期末复习题(完整含答案版)(11页).doc》由会员分享,可在线阅读,更多相关《汇编期末复习题(完整含答案版)(11页).doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-一、 问答题1、 写出8086操作数的寻址方式。8086的存储器寻址方式有哪些?答:操作数的寻址方式有:立即(数)寻址。寄存器寻址。存储器寻址。存储器寻址方式有:立即寻址。寄存器寻址。直接寻址。寄存器间接。寄存器相对。基址变址。相对基址变址。2、 何谓中断向量,何谓中断号?答:中断向量即中断服务程序的入口地址。中断类型号是系统分配给每个中断源的代号。3、 试写出由逻辑地址计算物理地址的计算公式。写出8086在存储器寻址下,存储单元的逻辑地址的表示形式。答:PA=段基址*16+偏移量 LA=段基址:偏移量4、 在内存物理地址为00002H起的字单元内存放7856H,请用图表示出它们在存储器里存
2、放的情况。00002H00003H00004H56H78H4题图寄存器 00002H00003H00004H12H34H5题图 寄存器5、 在物理内存地址为00002H起的字单元内存放3412H,请用图表示出它们在存储器里存放的情况。6、 8088的寻址空间有多大?要寻址全部内存空间必须采用什么技术措施?答:1MB,分段寻址7、 寄存器间接寻址方式可使用哪些寄存器?答:在8086中:BX/BP/SI/DI8、 在分断技术中,寄存器BX和BP默认对应的段寄存器是哪些?答:BX对应的是DS,BP对应的是SS。9、 寄存器相对寻址方式中的位移量可以用什么形式表达?答:位移量=EA基址(变址*比例因子
3、)10、 微机的内存的最小编址单位是什么?字型数据在内存的中的存放原则是什么?答:最小编址单位是B,存放原则是先低字节,后高字节。11、 基址变址寻址方式的可用寄存器有哪些?答:BXSI/BXDI12、 写出相对基址变址寻址方式的偏移地址EA的计算公式。答:EA=位移量+基址+变址13、 在内存物理地址为30476H起的连续地址空间内存放了一个值为90634511H的双字型数据,请用图表示出它们在存储器里存放的情况。30476H30477H30478H30479H30480H11H45H63H90H寄存器13题图65780H65781H65782H65783H65784H78H56H34H12
4、H寄存器14题图14、 在内存物理地址为65780H起的连续地址空间内存放了一个值为12345678H的双字型数据,请用图表示出它们在存储器里存放的情况。15、 条件转移指令的转移范围是多少?答:12812716、 LOOP指令使用的循环计数器是什么?答:CX.17、 设有变量ABCD,要取它的偏移地址送到寄存器AX中,可用哪两种方法?用指令表达出来。答:LEA AX,ABCD MOV AX,ABCD18、 子程序调用时传递参数的三种基本方法是什么?答:通过寄存器传送。通过堆栈传送。通过变量传送。19、 串操作指令在使用前应做哪些准备工作?答:把存放在数据段中的源串首地址(如反向传送则应是末地
5、址)放入源变址寄存器中。把将要存放数据串的附加段中的目的串首地址(或反向传送时的末地址)放入目的变址寄存器中。把数据串长度放入计数寄存器。建立方向标志。二、 简答题写出下列各指令的源操作数的寻址方式。(1)MOV AX,0AH立即寻址(21)SUB CX,0CFH 立即寻址(2)MOV BX,12H立即寻址(22)MOV DX,49H 立即寻址(3)MOV BX,CL寄存器寻址(23)ADDC BP,DL 寄存器寻址(4)MOV BX,CX寄存器寻址(24)ACHG BX,AH 寄存器寻址(5)MOV AX,200H直接寻址(25)AND AX,ES:buf 直接寻址(6)MOV AX,100
6、H直接寻址 (26)MOV CX,SS:buf 直接寻址(7)MOV BX,BX寄存器间接寻址(27)XOR AX,DI 寄存器间接寻址(8)MOV AX,BX寄存器间接寻址(28)MOV CX,BX 寄存器间接寻址(9)MOV AX,BP寄存器间接寻址(29)OR DX,BP 寄存器间接寻址(10)MOV DX,BP寄存器间接寻址(30)MOV CX,BP 寄存器间接寻址(11)MOV AX,SIBX基址变址寻址(31)AND DL,BP+DI 基址变址寻址(12)MOV CX,BXSI基址变址寻址(32)MOV BX,SI+BP 基址变址寻址(13)MOV DI,BX+20相对基址寻址(3
7、3)XOR SI,56BX 相对基址寻址(14)MOV DI,20BX相对基址寻址(34)MOV DI,BX+30 相对基址寻址(15)MOV DH,VALBX相对基址寻址(35)ADD DL,bufBX 相对基址寻址(16)MOV DH,ARRYBX相对基址寻址(36)MOV AL,buf+BP 相对基址寻址 (17)MOV DS,VAL直接寻址(37)MOV DS,BX+DI 基址变址寻址(18)MOV DS,ARRY直接寻址(38)MOV DS,BX+SI 基址变址寻址(19)MOV BX,VALBXSI 相对基址变址寻址 (39)MOV AH,buf+BP+DI 相对基址变址寻址(20
8、)MOV BX,ARRYBXDI 相对基址变址寻址 (40)ADD AL,buf+BX+SI 相对基址变址寻址三、 判断题对者在题号前的括号中打“”,错的打“”()1.SBB AL,DX()1.XCHG BX,AX()2.MOV CX,DX()2.XOR BL,CX()3.CMP BX,DI()3.CMP AX,SI()4.CMP BP,BX()4.POP DI()5.POP DI()5.POP AX()6.POP SI()6.PUSH CL 堆栈操作以字为单位()7.PUSH AL堆栈操作以字为单位()7.PUSH AL 堆栈操作以字为单位()8.PUSH DL堆栈操作以字为单位()8.OR
9、 BYTE PTR BP,98()9.MOV BYTE PTR BP,124()9.AND BX,255()10.MOV BYTE PTR BX,100 ()10.SUB SI,BYTE PTR 35()11.ADD DI,BYTE PTR 24()11.MOV BP,10()12.SUB BP,BYTE PTR 10()12.DEC CX CX不能间接寻址()13.DEC DXDX不能间接寻址()13.INC 8BX()14.INC 2BX()14.SHL AL,1()15.ROR BL,1()15.MOV BX,DX DX不能间接寻址()16.MOV CX,DXDX不能间接寻址()16.M
10、OV bufBPSI,CL()17.MOV DATBPDI,AL ()17.MOV bufBXDI,CX()18.MOV DATBXSI,AX ()18.ADDC AL,BYTE PTR AC(AC为字变量)()19.SUB AL,BYTE PTR AC(AC为字变量)()19.CMP CX,WORD PTR WL(WL为字节变量)()20.ADD CX,WORD PTR WL(WL为字节变量)()20.ADD BX,DI四、 程序填空题1、 要求用移位指令实现(BX)(BX)*9 MOV AX,BXMOV CL,3 SHL AX,CL ADD BX,AX2、 要求用移位指令实现(BX)(BX
11、)*5MOV AX,BX MOV CL,2SHL AX,CLADD BX,AX 3、 假设程序中数据定义如下:ASD DB 3要求把变量ASD的值在显示器上显示出来。MOV DL,ASDADD DL,30HMOV AH,2INT 21H 4、 假设程序中数据定义如下:X DB 3要求把变量X的值在显示器上显示出来。MOV DL,X ADD DL,30HMOV AH,3 INT 21H5、 假设程序中字符串MESS定义如下:MESS DBABCDEF要求把字符串MESS送到显示器上显示出来。LEA DX,MESSMOV AH,9 INT 21H6、 假设程序中字符串BUF定义如下:BUF DB
12、ABCDEFMOV AH,9 INT 21H 7、 假设程序中数据定义如下:BUF DB 32 DUP (?)要求在BUF中查找第一个B.CLDMOV CX,32 MOV AL,BLEA DI,BUFREPEN SCASB8、 假设程序中数据定义如下:BUF DB 38 DUP(?)要求在BUF中查找第一个MCLDMOV CX,38MOV AL,MLEA DI,BUFREPEN SCASB 9、 比较两个字符串B1和B2,其长度为20个字节,找出它们相匹配的位置。LEA SI,B1LEA DI,B2CLD MOV CX,0014H REPNE CMPSB10、比较两个字符串STR1和STR2,
13、其长度为45个字节,找出它们不相匹配的位置。LEA SI,STR1LEA DI,STR2CLD MOV CX,002DH REPE CMPSB五、 写出下列程序(段)的执行结果。1、 CODE1 SEGMENTASSUME CS:CODE1MAIN PROC FARSTART:PUSH DSXOR AX,AXPUSH AXMOV CH,4MOV BX,1100010010001111BROT1:MOV CL,4ROL BX,CLMOV DL,BLAND DL,0FHADD DL,30HCMP DL,3AHJB OUT1ADD DL,7HOUT1:MOV AH,2INT 21HDEC CHJNZ
14、 ROT1RETMAIN ENDPCODE1 ENDSEND MAIN此程序执行后,屏幕上显示的内容为:C48F2、 DATA SEGMENTBUF DB 7,9,6DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATABEGIN:MOV AX,DATAMOV DS,AXMOV CX,2MOV BX,OFFSET BUFMOV SI,1MOV AL,BUFAAA:CMP AL,BX+SIJL NEXTMOV AL,BX+SINEXT:INC SILOOP AAAMOV DL,ALADD DL,30HMOV AH,2INT 21HMOV AH,4CHINT 21H
15、CODE ENDSEND BEGIN执行此程序后,屏幕上显示的内容为:6 (此程序功能是将串中小于7的数字屏显出来)3、 MOV AL,03HMOV CL,2SHL AL,CL此指令段执行后,AL中的值为:0CH (即3*2*2=12)4、MOV AL,40HMOV CL,2SHR AL,CL此程序段执行后,AL中的值为:10H (即64/2/2=16)5、CODE SEGMENTASSUME CS:CODEMAIN:MOV AH,1INT 21HMOV AH,2MOV DL,ALADD DL,30HINT 21HMOV AH,4CHINT 21HCODE ENDSEND MAIN设输入数字7
16、,其输出结果是多少? 76、 CODE SEGMENTASSUME CS:CODEMAIN:MOV AH,1INT 21HADD AL,2MOV AH,2MOV DL,ALADD AL,30HINT 21HMOV AH,4CHINT 21HCODE ENDSEND MAIN设输入数字3,其输出结果是多少? 5六、 程序设计1、 求两个字节数X和Y的2倍放到Z单元中。设X与Y的和是字节数。DATA SEGMENT X DB 2Y DB 2 Z DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AX M
17、OV BL,XMOV CL,YADD BL,CLMOV CL,BL ADD CL,BL MOV Z,CL MOV DL,Z ADD DL,30H MOV AH,02H INT 21HMOV AH,4CH INT 21HCODE ENDS END START2、 求两个字节数X和Y的平均数放到Z单元中。DATA SEGMENTX DB 7Y DB 8Z DB ? /商W DB ? /余数DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV BL,XMOV CL,YADD BL,CLCBWMOV AX,BX
18、MOV CL,2DIV CLMOV Z,ALMOV W,AHMOV DL,ZADD DL,30HMOV AH,02HINT 21HMOV DL,WADD DL,30HMOV AH,02HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START3、 编写程序,把从键盘读入的一个小写字母转换成相应的大写字母,并输出。(注:对应大小写字母之间的ASCII码值相差20H)PROGNAM SEGMENTMAIN PROC FAR ASSUME CS:PROGNAMSTART: PUSH DS SUB AX,AX PUSH AXNEXT: MOV AH,1 INT 21H CM
19、P AL,A JB EXIT CMP AL,Z JA EXIT SUB AL ,20H MOV DL,AL MOV AH,2 INT 21HMOV DL,0AHMOV AH,2INT 21HJMP NEXTEXIT: RETMAIN ENDPPROGNAM ENDS END START4、 编写程序,把从键盘读入的一个大写字母转换成相应的小写字母,并输出。(注:对应大小写字母之间的ASCII码值相差20H)PROGNAM SEGMENTMAIN PROC FAR ASSUME CS:PROGNAMSTART: PUSH DS SUB AX,AX PUSH AXNEXT: MOV AH,1 IN
20、T 21H CMP AL,A JB EXIT CMP AL,Z JA EXIT ADD AL ,20H MOV DL,AL MOV AH,2 INT 21HMOV DL,0AHMOV AH,2INT 21HJMP NEXTEXIT: RETMAIN ENDPPROGNAM ENDS END START5、 已知数组X包含有8个无符号整数,编写对其中的每个奇数计算1+2+N,并把它们顺序存入内存字单元SUM开始的存储区中,要求1+2+N用子程序实现。不考虑溢出。DATA SEGMENTX DW 2,3,4,5,6,7,8,9SUM DW8 DUP (?)DATA ENDSCODE SEGMENT
21、 ASSUME CS:CODE,DS:DATAMAIN: MOV AX,DATA MOV DS,AX LEA BX,X LEA DI,SUM MOV CX,8NEXT: MOV DX,BX MOV AX,DX SHR AX,1 JNC N1 CALL SUB1 MOV DI,AX ADD DI,2N1: ADD BX,2 LOOP NEXT MOV AH,4CH INT 21H SUB1 PROC NEAR PUSH CX XORAX,AX MOV CX,DXAGAIN:ADD AX,CX LOOP AGAIN POP CX RETSUB1 ENDPCODE ENDS END MAIN6、 已
22、知数组X包含有8个无符号整数,编写对其中的每个偶数计算1+2+N,并把它们顺序存入内存字单元SUM开始的存储区中,要求1+2+N用子程序实现。不考虑溢出。DATA SEGMENTX DW 2,3,4,5,6,7,8,9SUM DW8 DUP(?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATAMAIN: MOV AX,DATA MOV DS,AX LEA BX,X LEA DI,SUM MOV CX,8NEXT: MOV DX,BX MOV AX,DX SHR AX,1 JC N1 CALL SUB1 MOV DI,AX ADD DI,2N1: ADD BX,2 LOOP NEXT MOV AH,4CH INT 21H SUB1 PROC NEAR PUSH CX XOR AX,AX MOV CX,DXAGAIN:ADD AX,CX LOOP AGAIN POP CX RETSUB1 ENDPCODE ENDS END MAIN注:编者水平有限,不能保证所有答案都正确,如发现错误之处,请指出。卷上部分答案来源于互联网,不代表标准答案,此卷仅供参考。最后两个编程题中有一道考试必考!我只能帮你们到这里了!呵呵-第 11 页-