2012年华中科技大学本科汇编试卷 - A卷 - 答案
更新时间:2023-11-16 17:25:01 阅读量: 教育文库 文档下载
- 华中科技大学成人本科推荐度:
- 相关推荐
计算机学院2011-2012学年第二学期《汇编语言程序设计》考试草稿纸
计算机学院2011-2012学年第二学期
《汇编语言程序设计》考试试卷(A卷)及参考答案
闭卷 考试时间: 2012年5月5日
专业 班级 学号 学生姓名 题号 一 二 三 四 五 六 七 八 总分 核对人 10 10 10 10 20 10 10 20 100 题分 得分 得 分 评卷人
一、改错。(每个小题中只能对一个操作数进行修改。共10分,每小题1分)
;XOR AX, [BX]
;CMP WORD PTR [EDX], 80H ;JMP WORD PTR [BX] ;SUB AX, BP ;MOV CX, 1234H ;PUSH AX
;MOV DX, 255H / IN AL, DX ;SUB BP, 125 ;ADD DI, [EAX] ;MOV AX, CS
1.XOR AX, [CX] 2. CMP [EDX], 80H
3. JMP WORD PTR [BL] 4.SUB EAX, BP 5.MOV CL, 1234H 6. PUSH AL
7. IN AL, 255H 8. SUB 125, BP
9. ADD [DI], DWORD PTR [EAX] 10. MOV CS, AX 得 分 评卷人
二、填空 (共10分,每空1分)
1. 设(CS)=1000H,(DS)=2000H,(SS)=3000H,(DI)=0300H, (IP)=0100H,(20300H)=50H,(20301H)=01H,(20302H)=00H,(20303H)=50H。 实方式下, 指令“ JMP WORD PTR [DI] ”转向
的物理地址是 10150H ,它是一条 段内 转移指令。
2. 依次执行
XOR EAX, EAX DEC AL DEC AL
MOVSX EAX, AL ; 将(AL)的最高位扩展并送入目的操作数地址中
计算机学院2011-2012学年第二学期《汇编语言程序设计》考试草稿纸
ADD EAX, 3
执行完后, (AX)= 0001H CF = 1 ZF = 0 SF = 0
3. 下列指令序列执行前, (EAX)=0FFFFA015H,(EBX)=1000H。执行下列指令序列
XOR EDX,EDX IDIV EBX IMUL BX
则执行后:
(EDX)= 0000FFFFH , (EAX)= 000FA000H , 对于上述最后一条乘指令,如果乘积的高位不是低位的符号扩展,则CF=1、OF= 1 ,而SF、ZF、AF和PF标志位 未定义 。
三、简答题(共10分)
1. 简述实方式下新增一个中断处理程序的主要步骤。(4分)
得 分 评卷人 (1) 编制新的中断处理程序。
(2) 获取中断号m。若是硬件中断则有相应的中断号,否则查找一个空闲的中断号。 (3) 将新的中断处理程序装入内存或驻留内存,将新的中断处理程序的偏移地址和段地址保存到物理地址4*m和4*m+2处。
2. 设有 (AX)=1000H,执行下列子程序:
TRY PROC NEAR PUSH AX RET TRY ENDP
请画出上述每条指令执行后堆栈示意图,并指出执行该子程序后 IP中的内容为多少?(3分)
00H 10H XXXX XXXX PUSH AX
(SP) (SP)+1
XXXX XXXX
(SP) (SP)+1
RET, 子程序返回后(IP)=1000H
计算机学院2011-2012学年第二学期《汇编语言程序设计》考试草稿纸
3. 基于窗口的应用程序中,窗口消息处理程序主要完成什么功能?(3分)
Windows系统中,每个基于窗口的应用程序都有消息处理程序。窗口主程序不断地从该应用程序的消息队列中检测消息,若检测到消息,则通知操作系统调用该窗口的消息处理程序去处理该消息。
得 分 评卷人
四、数据段定义如下,按要求回答问题。(共10分)
BUFA A BUFB
0DH 0AH 25 00 06H 00H ‘B’ ‘U’ ‘F’ ‘B’ ‘$’ ‘$’ 偏移地址 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH
DATA SEGMENT USE16 BUFA DB 0DH,0AH A DW 25, BUFB Alen EQU $ - A
BUFB DB ‘BUFB’,2 DUP (‘$’) DATA ENDS
1、 以字节为单位画出它们在存储单元中的存放形式, 在图中标明各变量的偏移地址值。(6分)
2、Alen的值是多少?(1分)
Alen = 6
3、执行下列语句后,屏幕上会显示什么?(3分)
MOV AX,DATA
MOV DS,AX MOV DX,[A+2] MOV AH, 9 INT 21H
显示:BUFB
得 分 评卷人
五、程序填空(共20分,每空2分)
1. 下列程序输入两个串, 比较两个串是否相同, 相同则显示”equal”, 否则显示”not equal”。 .386
计算机学院2011-2012学年第二学期《汇编语言程序设计》考试草稿纸
IO MACRO A, B LEA DX, B MOV AH, A INT 21H ENDM DATA SEGMENT USE16 STR3 DB 'EQUAL!', 0DH, 0AH,'$' STR4 DB 'NOT EQUAL!', 0DH, 0AH,'$' BUF1 DB 80,0,80 DUP(0) BUF2 DB 80,0,80 DUP(0) DATA ENDS CODE SEGMENT USE16 ASSUME CS: CODE, DS: DATA START: MOV AX, DATA
MOV DS, AX
IO 10,BUF1 IO 10,BUF2
MOV AL, BUF1+1 MOV AH, BUF2+1 CMP AL, AH JNE NOTEQUAL LEA SI, BUF1+2 LEA DI, BUF2+2 MOVZX CX, AL AGAIN: MOV AL,[SI] CMP AL,[DI] JNE NOTEQUAL INC SI INC DI LOOP AGAIN IO 9, STR3 QUIT: MOV AH, 4CH INT 21H NOTEQUAL:
IO 9, STR4
JMP QUIT CODE ENDS END START
计算机学院2011-2012学年第二学期《汇编语言程序设计》考试草稿纸
2. 下列子程序F2T10将EAX中的有符号数以十进制形式在显示器上输出。
;调用子程序名:RADIX .386
DATA SEGMENT USE16
BUF DB 12 DUP(?) DATA ENDS ... F2T10 PROC
PUSH EBX
PUSH SI LEA SI,BUF B: OR EAX, EAX JNS PLUS
NEG EAX
MOV BYTE PTR [SI],’-’ INC SI
PLUS: MOV EBX, 10 CALL RADIX
MOV BYTE PTR [SI],’$’ LEA DX, BUF MOV AH, 9 INT 21H POP SI
POP EBX RET F2T10 ENDP
RADIX PROC
; 入口参数:EAX——存放待转换的32位无符号二进制数 ; EBX——存放要转换数制的基数
; SI——存放转换后的指定进制数的ASCII码数字串的字节缓冲区首址 ;输出参数: SI——指向字节缓冲区中最后一个ASCII码的下一个字节处
... RADIX ENDP
计算机学院2011-2012学年第二学期《汇编语言程序设计》考试草稿纸
3.下列程序实现32位二进制数相加,并显示。
.MODEL SMALL
MOV DL, BL .386 .STACK AND DL, 0FH .DATA OR DL, 30H BUF DB ‘12345678H+10000011H=’,’$’ CMP DL, 3AH .CODE JB LOPB .STARTUP ADD DL, 7 MOV DX, OFFSET BUF LOPB: MOV AH, 2 MOV AH, 9 INT 21H INT 21H LOOP LOPA MOV EBX, 12345678H MOV AH, 2 ADD EBX, 10000011H MOV DL,‘H’ MOV CX, 8
LOPA: ROL EBX, 4
(接右边程序) 得 分 评卷人 INT 21H .EXIT END
六、编写程序段(共10分)
1. 设有下述数据定义:
BUF1 DB ‘BADCEFHGIJKLMNOPQRSTUVWXYZ’ BUF2 DB 30 DUP(0)
试编写程序段将BUF1中的串从右向左传送到以BUF2为首址的存储区中 ; ACM班实现的程序中使用的寄存器数不超过2个。(4分)
LEA SI, BUF2 - 1 LEA DI, BUF2 MOV CX, BUF2 – BUF1 L1: MOV AL, [SI]
MOV [DI], AL DEC SI INC DI LOOP L1
计算机学院2011-2012学年第二学期《汇编语言程序设计》考试草稿纸
2.已知BUF DW 22, 789, -234。请分别用下面指定的寻址方式将BUF的最后一个字送到寄存器AX中。(6分)
(1)直接寻址方式 MOV AX, BUF+4
(2)变址寻址方式 MOV SI, OFFSET BUF MOV AX, 4[SI]
(3)基址加变址寻址方式 MOV SI, 4 MOV AX, BUF[SI]
得 分 评卷人 七、程序阅读分析(10分)
程序代码如下,阅读程序,回答后面的问题。
.386
DATA SEGMENT USE16 BUF DB 80 DUP(0)
INBUF DB 80,?, 81 DUP(0) PRMPTMSG DB 'PLEASE INPUT:$' CRLF DB 0DH, 0AH,'$' DATA ENDS
STACK SEGMENT USE16 STACK
DB 256 DUP(0)
STACK ENDS
DISPSTR MACRO BUF LEA DX,BUF MOV AH,9 INT 21H ENDM
CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA, SS:STACK START: MOV AX,DATA MOV DS,AX DISPSTR PRMPTMSG LEA DX, INBUF MOV AH,10 INT 21H
(10分)
计算机学院2011-2012学年第二学期《汇编语言程序设计》考试草稿纸
PUSH OFFSET BUF PUSH OFFSET INBUF L1: CALL SCANSTR POP AX POP AX
DISPSTR CRLF L2: DISPSTR BUF MOV AH, 4CH INT 21H
SCANSTR PROC
PUSH BP MOV BP,SP MOV SI,[BP+4] MOV BX,[BP+6] INC SI
MOV CL,[SI] MOV CH,0 INC SI
LOPA: MOV AL,[SI] CMP AL,'A' JB LOPB CMP AL,'Z' JA LOPB
ADD AL,'a'-'A' LOPB:INC SI
MOV [BX],AL INC BX LOOP LOPA
MOV BYTE PTR [BX], '$' POP BP RET SCANSTR ENDP CODE ENDS
END START
(1)该程序完成了什么功能?(6分)
从键盘输入一个字符串,将该字符串拷贝到缓冲区BUF中,在拷贝的同时将其中的大写字母’A’~’Z’转换为小写字母’a’~’z’,并显示转换后的字符串。
(2)子程序SCANSTR的入口、出口参数是什么?(2分)
入口参数:INBUF 和 BUF 的偏移地址
出口参数:SI指向BUF中字符串的结束标记回车键的位置,
计算机学院2011-2012学年第二学期《汇编语言程序设计》考试草稿纸
BX指向转换后的字符串最后一个结尾标记’$’
(3)在TD中调试时,如何操作方可让程序执行到LOPA处暂停?(2分)
在LOPA处设置断点。
得 分 评卷人
八、编写程序(20分)
编写一个程序,读取字存储单元内容,将其转换为八进制数,并统计其中数位5出现的次数,最后将八进制数和个数显示在屏幕上。(如字存储单元内容为177DH,八进制表示为13575o,它有2个数位为5,显示结果为:八进制表示:13575o,数位5出现的次数:2)。
要求:①将字存储单元内容转换为八进制数和统计数位为5的次数分别用子程序实现;ACM班编写的程序要求用INVOKE 调用子程序;
② 画出程序流程图;
③ 写出存储器变量、寄存器使用分配情况及子程序入/出口参数说明; ④ 含不少于4条重要注释的完整程序清单。
略
正在阅读:
2012年华中科技大学本科汇编试卷 - A卷 - 答案11-16
RC522通过SPI方式读写M1卡04-14
魏晋南北朝诗歌11-03
货物贸易关系实证研究论文05-01
2020年季度思想汇报精选5篇09-12
苏教版七年级数学教案05-13
人教版三年级上册语文期中试卷405-14
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 中科
- 汇编
- 试卷
- 年华
- 本科
- 答案
- 大学
- 2012