好文档 - 专业文书写作范文服务资料分享网站

2020年中国人民大学微型计算机原理与接口技术考研复试核心题库之应用题精编

天下 分享 时间: 加入收藏 我要投稿 点赞

2020年中国人民大学微型计算机原理与接口技术考研复试核心题库之应用题精编

主编:掌心博阅电子书第 1 页,共 31 页

www.handebook.com 特别说明

本书根据最新复试要求并结合历年复试经验对该题型进行了整理编写,涵盖了这一复试科目该题型常考及重点复试试题并给出了参考答案,针对性强,由于复试复习时间短,时间紧张建议直接背诵记忆,考研复试首选资料。

版权声明

青岛掌心博阅电子书依法对本书享有专有著作权,同时我们尊重知识产权,对本电子书部分内容参考和引用的市面上已出版或发行图书及来自互联网等资料的文字、图片、表格数据等资料,均要求注明作者和来源。但由于各种原因,如资料引用时未能联系上作者或者无法确认内容来源等,因而有部分未注明作者或来源,在此对原作者或权利人表示感谢。若使用过程中对本书有任何异议请直接联系我们,我们会在第一时间与您沟通处理。

因编撰此电子书属于首次,加之作者水平和时间所限,书中错漏之处在所难免,恳切希望广大考生读者批评指正。

第 2 页,共 31 页

www.handebook.com

重要提示

本书由本机构编写组多位高分在读研究生按照考试大纲、真题、指定参考书等公开信息潜心整理编写,仅供考研复试复习参考,与目标学校及研究生院官方无关,如有侵权请联系我们立即处理。

一、2020年中国人民大学微型计算机原理与接口技术考研复试核心题库之应用题精编

1. 按下面的要求写出程序的框架

(1)数据段的位置从0E000H开始,数据段中定义一个100字节的数组,其类型属性既是字又是字节;(2)堆栈段从小段开始,段组名(类别名)为STACK;

(3)代码段中指定段寄存器,指定主程序从1000H开始,给有关段寄存器赋值; (4)程序结束。

【答案】所求程序框架为:

Data SEGMENT AT 0E000H Arr_w LABEL WORD Arr_b DB 100 DUP(?) Data ENDS

Sta_seg SEGMENT PARA ‘STACK’ DB 80 DUP(?) Top LABEL WORD Sta_seg ENDS Code SEGMENT

ASSUME CS:Code,DS:data,SS:sta_seg ORG 1000H Start: MOV AX, data MOV DS, AX

MOV AX,Sta_seg MOV SS, AX

MOV SP, OFFSET Top ……

MOV AH, 4CH INT 21H Code ENDS

END Start

2. 将AX中间8位,BX低四位,DX高四位拼成一个新字。

【答案】将AX中间8位,BX低四位,DX高四位拼成一个新字的程序段是: AND DX, 0F 000H ;将DX的低12位清零,高4位不变

AND AX,0FF0H ;将AX的低4位清零,高4位清零,中间8位不变 AND BX,0FH ;将BX的高12位清零,低4位不变 ADD AX,BX

ADD AX,DX ;按要求组成一个新字,结果放在AX中。

3. 编写一个程序,接收从键盘输入的10个十进制数字,输入回车符则停止输入,然后将这些数字加密后(用XLAT指令变换)存入内存缓冲区BUFFER。加密表为:

输入数字:0,1,2,3,4,5,6,7,8,9 密码数字:7,5,9,1,3,6,8,0,2,4

第 3 页,共 31 页

【答案】scode db 7,5,9,1,3,6,8,0,2,4 buffer db 10 dup(?) ;… …

mov si,0 mov cx,10 lea bx,scode input: mov ah,01 int 21h cmp al,0ah jz exit and al,0fh xlat

mov buffer[si],al inc si loop input exit: ret

www.handebook.com

4. 编写程序,比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示“MATCH”,若不同则显示“NO MATCH”。

【答案】datarea segment

string1 db ?asfioa? string2 db ?xcviyoaf? mess1 db ?MATCH?,?$? mess2 db ?NO MATCH?,?$? datarea ends

prognam segment main proc far

assume cs:prognam,ds:datarea start: push ds sub ax,ax push ax

mov ax,datarea mov ds,ax mov es,ax begin:

mov cx, string2-string1 mov bx, mess1-string2 cmp bx,cx jnz dispno lea dx,addr lea si,string1 lea di,string2 repe cmpsb jne dispno mov ah,9 lea dx,mess1 int 21h ret dispno:

mov ah, 9 lea dx, mess2 int 21h ret

main endp prognam ends end start

第 4 页,共 31 页

www.handebook.com

5. 某输入设备接口数据端口、状态端口、控制端口地址分别为70H, 71H, 72H。状态端口D5=1表示输入完成,控制端口D7=1表示启动设备输入(输入完成后由设备清除该位)。从该设备输入100个字节数据,存入以BUFFER为首地址的缓冲区。如果启动该设备1秒后仍未完成一次输入,则视为超时错,显示出错信息后返回。分别用8086汇编语言和C语言编写完成上述功能的I/O程序。青岛掌к心博♂阅电子书

【答案】汇编语言程序: DATA SEGMENT BUFFER DB 100 DUP(?) ERROR DB 13, 10, “OVER TIME !”, 13, 10, “$” DATA ENDS ;

CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AX MOV CX, 100 LEA BX, BUFFER ONE: XOR DX, DX ;DX用作响应计时器,初值0 MOV AL, 80H OUT 72H, AL ;启动输入 W: IN AL, 71H INC DX ;记录延迟时间

TEST JNZ CMP JB JMP MOV INC LOOP

AL, 00100000B READ W

DX, 50000

;测试完成位

;输入完成,转READ读取数据 ;假设循环50000次时间为1秒 ;未超时,继续测试 ;超过1秒,报告出错 ;数据存入缓冲区 ;修改指针

;100个数据尚未输入完成,转ONE继续 ;100个数据输入完成,转DONE结束程序

OVERTIME [BX], AL BX ONE

READ: IN AL, 70H ;读入数据

JMP DONE OVERTIME: LEA DX, ERROR MOV AH, 9 INT 21H DONE: MOV AX, 4C00H INT 21H CODE ENDS END START C语言程序: main( )

{ int i, status, time, buffer[100] ; for( i=0; i<100; i++ )

{

outportb( 0x72, 0x80 );

;响应超时,显示出错信息 ;返回OS

/* 启动输入 */

for( time = 0; time < 20000; time++ )

第 5 页,共 31 页

2020年中国人民大学微型计算机原理与接口技术考研复试核心题库之应用题精编

2020年中国人民大学微型计算机原理与接口技术考研复试核心题库之应用题精编主编:掌心博阅电子书第1页,共31页www.handebook.com特别说明
推荐度:
点击下载文档文档为doc格式
0pcuv2wtv14i6jo0x1m776vac3ljxx012ig
领取福利

微信扫码领取福利

微信扫码分享