首页 微机原理考题

微机原理考题

举报
开通vip

微机原理考题微机原理考题 1.(1)MOV SI,100 正确。源:立即数寻址, 目的:寄存器寻址 (2)MOV BX,VAR1[SI] 正确。源:寄存器相对寻址,目的:寄存器寻址 (3)MOV AX,[BX] 正确。源:寄存器间接寻址,目的:寄存器寻址 (4)MOV AL,[DX] 错误。寄存器间接寻址时,DX, AX, CX不能作地址寄存器 (5)MOV BP,AL 错误。操作数类型不一致 (6)MOV VAR1,VAR2 错误。两存储单元之间不能用MOV指令传送数据 (7)MOV CS,AX 错误。CS...

微机原理考题
微机原理考题 1.(1)MOV SI,100 正确。源:立即数寻址, 目的:寄存器寻址 (2)MOV BX,VAR1[SI] 正确。源:寄存器相对寻址,目的:寄存器寻址 (3)MOV AX,[BX] 正确。源:寄存器间接寻址,目的:寄存器寻址 (4)MOV AL,[DX] 错误。寄存器间接寻址时,DX, AX, CX不能作地址寄存器 (5)MOV BP,AL 错误。操作数类型不一致 (6)MOV VAR1,VAR2 错误。两存储单元之间不能用MOV指令传送数据 (7)MOV CS,AX 错误。CS不能为目的操作数 (8)MOV DS,0100H 错误。目的操作数为段寄存器时,源操作数不能为立即数 (9)MOV [BX][SI],1 错误。指令类型不定。 (10)MOV AX,VAR1+VAR2 错误。MOV指令中不能完成加法运算 (11)ADD AX,LENGTH VAR1 正确。源:立即数寻址。目的:寄存器寻址 (12)OR BL,TYPE VAR2 正确。源:立即数寻址。目的:寄存器寻址 SUB [DI],78H 错误。指令类型不定 (13) (14)MOVS VAR1,VAR2 正确。目的、源‎‎均为隐含寻址。操作数仅指出操作数类型 (15)PUSH 100H 错误。将常数压入堆栈,要通过寄存器来实现 (16)POP CS 错误。目的操作数不能为CS (17)XCHG AX,ES 错误。XCHG指令的操作数不能是段寄存器 (18)MOV DS,CS 错误。MOV指令不能从段寄存器到段寄存器 (19)JMP L1+5 正确。段内直接转移 (20)DIV AX,10 错误。指令格式错误。 (21)SHL BL,2 错误。移位指令的移位数为1或者CL (22)MOV AL,15+23 正确。源:立即数寻址,目的:寄存器。编译时就处理为38 (23)MUL CX 正确。源:寄存器寻址,目的:寄存器寻址 (24)XCHG CL,[SI] 正确。源:寄存器间接寻址,目的:寄存器寻址 (25)ADC CS:[0100],AH 正确。源:寄存器寻址,目的: 直接寻址(数据在代码段 中) (26)SBB VAR1-5,154 正确。源:立即数寻址,目的:直接寻址。 1.RESET为系统复位信号,高电平有效,其有效信号至少要保持四个时钟周期,且复位信号上升沿要与CLK下降沿同步。 系统复位后的启动地址为0FFFF0H。即:(CS)=0FFFFH, (IP)=0000H。 2.在8086的基本读总线周期中,在 状态开始输出有效的ALE信号;在(T2) 状态开始输出低电平的 (RD~)信号,相应的 DEN~为__低__电平, 为__低__电平;引脚AD15 - AD0上在( T4)状态期间给出地址信息,在 状态完成数据的读入。 3.在构成8086最小系统总线时,地址锁存器74LS373的选通信号G应接CPU的 ( ALE) 信号,输出允许端 应接 (地) ;数据收发器74LS245的方向控制端DIR应接(DI/R~)信号,输出允许端( E~)应接( DEN~)信号。 4.CPU在 T3 状态开始检查READY信号,(__高_)电平时有效,说明存储器或I/O端口准备就绪,下一个时钟周期可进行数据的读写;否则,CPU可自动插入一个或几个 (等待周期(TW )) ,以延长总线周期,从而保证快速的CPU与慢速的存储器或I/O端口之间协调地进行数据传送。 5. 8086最大系统的系统总线结构较最小系统的系统总线结构多一个芯片 (8288总线控制器)。 6.8086最小方式下,读总线周期和写总线周期相同之处是: LE信号变为有效 (高) 电平,并输出 (M/IO~) 信号来确定是 在 (T1) 状态开始使A 访问存储器还是访问I/O端口,同时送出20位有效地址,在 (T1) 状态的后部,ALE信号变为 ( 低) 电平,利用其下降沿将20位地址和 (BHE~) 的状态锁存在地址锁存器中;相异之处从 (T2) 状态开始的数据传送阶段。 6. 简述存储器的主要技术指标有哪些, 解:存储器的主‎‎要技术指标有:存储容量、读写速度、非易失性、可靠性等。 7.一台8位微机系统的地址总线为16位,其存储器中RAM的容量为32kB,首地址为4000H,且地址是连接的。问可用的最高地址是多少, 解:32K= =8000H,所以,最高地址为: 4000H+8000H-1=BFFFH 则,可用的最高地址为0BFFFH. 8.某微机系统中内存的首地址为4000H,末地址为7FFFH,求其内存容量。 解:7FFFH-4000H+1=4000H= =16KB 内存容量为16KB。 9. 7.在8086系统总线结构中,为什么要有地址锁存器, 答:8086CPU有20条地址线和16条数据线,为了减少引脚,采用了分时复用,共占了20条引脚。这20条引脚在总线周期的T1状态输出地址。为了使地址信息在总线周期的其他T状态仍保持有效,总线控制逻辑必须有一个地址锁存器,把T1状态输出的20位地址信息进行锁存。 14.在由字符串构成的缓冲区BUFFER中,前2个字节存放字符个数,后续每个字 节存放一个字符的ASCII码。编写程序实现将字符串„2004?替换成„2006?。 解:在数据段中定义: BUFFER DW 74 DB „This year is 2004. In 2004, we have a plan for reducing annual expensive 10%? DEST DB „2004? 在代码段中编写程序段: CLD LEA SI, BUFFER MOV CX,[SI] ADD SI,2 LEA DI,DEST L1: PUSH SI PUSH DI PUSH CX MOV CX,4 REPZ SCASB JNZ L2 MOV BYTE PTR [SI-1],?6? L2: POP CX POP DI POP SI INC SI INC DI LOOP L1 1.已知在BUF的起始处保存有N个字符的ASCII码,编写汇编语言程序实现,将 这组字符串传送到缓冲区BUFR中,并且使字符串的顺序与原来的顺序相反。 解:BUF DB "BONJOUR_BELLE" BUFR DB 100 DUP(?) MOV CX, N LEA SI, BUF LEA DI, BUFR ADD DI,CX DEC DI L1: MOV AL,[SI] MOV [DI],AL INC SI DEC DI LOOP L1 7.分析下列程序段的功能: MOV CL,04 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL 解:程序段完成DX:AX组成的32位无符号数左移4位,低位补零(也即除以 16)。 13. 设BUF中存放有N个无符号数(或有符号数),编程实现求它们的最小值 (存入AX)和最大值(存入DX)。 解:BUF存放有N个无符号数的程序如下: MOV CX,N LEA SI,BUF MOV AX,[SI] MOV DX,AX ADD SI,2 L1: CMP AX,[SI] JBE NOCHG1 XCHG AX,[SI] NOCHG1: CMP DX,[SI] JAE NOCHG2 XCHG DX,[SI] NOCHG2: ADD SI,2 LOOP L1 如果BUF中存放的是有符号数,则只需要将程序中的两行内容修改: JBE NOCHG1 改成:JLE NOCHG1 JAE NOCHG2 改成:JGE NOCHG2 14. 设BUFFER中存放有N个无符号(第1个字节存放缓冲区的长度),编程 实现将其中的0元素抹去,并更新其长度。 解:设BUFFER中存放的是字节型数据。采用双指针 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 :SI为读指针,DI为写 指针,从低地址开始,内存中读出一个字节,如果不为0,则写入内存;如果为 0,则不进行写操作。 LEA SI, BUFFER XOR CX,CX MOV CL, [SI] INC SI MOV DI, SI XOR BH,BH XOR AL,AL L1: CMP [SI],AL JZ L2 MOV BL,[SI] MOV [DI],BL INC DI INC BH L2: INC SI LOOP L1 MOV BUFFER,BH 16. 编写一个子程序实现统计AL中1的个数,然后检测出字节型缓冲区BUF中 0和1个数相等的元素个数。 解:统计AL中1的个数,只需将AL右移,移出的一位内容进行累加,子程序 为: COUNTBYTE PROC NEAR PUSH AX PUSH CX MOV CX,8 XOR BL,BL COU1: SHR AL,1 ADC BL,0 LOOP COU1 POP CX POP AX RET COUNTBYTE ENDP 在此基础上,可以检测出字节型缓冲区BUF中0和1个数相等的元素个 数,即一个字节中有4个1。设BUF中有N个字节型数据,结果保持在BH中。 MOV CX,N LEA SI, BUF XOR BH,BH L1: MOV AL,[SI] CALL COUNTBYTE CMP BL,4 JNZ L2 INC BH L2: INC SI LOOP L1 25. 编写程序实现求级数 的前n项和刚大于2000的项数n。 解:BL用于存放项数。 STACK SEGMENT STACK 'STACK' DW 100H DUP(?) TOP LABEL WORD STACK ENDS DATA SEGMENT DB 100H DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, ES:DATA, SS:STACK START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX LEA SP,TOP MOV BL,1 MOV CX,0 COUNT: MOV AL, BL MUL BL ADD CX,AX CMP CX,2000 JA EXIT INC BL JMP COUNT EXIT: 设在数据段中定义了: 31. STRING DB „Today is Sunday & July 16, 2000? 编写程序实现将STRING中的?&?用?/?代替。 解:STRING中保存了30个字符。 MOV CX,30 LEA SI,STRING MOV AL,?&? L1: CMP [SI],AL JNZ L2 MOV BYTE PTR [SI],?/? L2: INC SI LOOP L1 23.分析下列程序段完成的功能: MOV CX,100 LEA SI,FIRST LEA DI,SECOND REP MOVSB 解:将缓冲区FIRST中100个字节传送到SECOND中。 5. 在8088最小系统中,8253的端口地址为284H,287H。系统提供的时钟为 1MHz,要求在OUT0输出周期为20微秒的方波,在OUT1输出周期为200微秒, 其中每周期为负的时间是180微秒的信号。请编写8253的初始化程序。 解: OUT0输出为20微妙方波,可用方式三直接产生,OUT1输出波形与书中例9.2类似,可用其中思想产生此信号。如果允许增加外部器件,也可在例9.1的基础上,将OUT端信号通过与非门取反,这样即可产生题目要求信号。本例利用例9.1思想解答 MOV DX,287H;写计数器0控制方式字 MOV AL,00010110B OUT DX,AL MOV DX,284H ;写计数器0时常数 MOV AL,20 OUR DX,AL MOV DX,287;写计数器2控制方式字 MOV AL,10010110B OUT DX,AL MOV DX,286H ;写计数器2时常数 MOV AL,200 OUT DX,AL MOV DX,287H MOV AL,01010010B ;写计数器1控制方式字 OUT DX,AL MOV DX,285H MOV AL,9 ;写计数器1时常数 OUT DX,AL 6. 织布机控制系统如图9.26所示,已知织布机每织1米发出一个正脉冲,每织100米要求接收到一脉冲,去触发剪裁设备把布剪开。(1)设8253的端口地址为80H,83H,编写对8253初始化程序。(2)假定系统提供的信号频率为1MHz, 希望利用8253的其余通道产生0.1秒的周期信号,编写初始化程序。 解:(1) MOV DX,83H MOV AL,00010100B OUT DX,AL MOV DX,80H MOV AL,100 OUT DX,AL (2) 将计数器1的输出OUT1信号作为计数器2的时钟输入CLK2,计数器1的时钟输入为系统提供1MHZ的信号 MOV DX,83H MOV AL,01110100B OUT DX,AL MOV DX,81H MOV AX,1000 OUT DX,AL XCHG AL,AH MOV DX,AL MOV DX,83H MOV AL,10010110B OUT DX,AL MOV DX,82H MOV AL,100 OUT DX,AL 3. 如果8255A的端口地址为300H,303H,A组和B组均为方式0,端口A为输出,端口B为输入,PC3,PC0为输入,PC7,PC4为输出,写出8255A的初始化程序段;编程实现将从端口C低4位读入的值从高4位送出。 解: MOV DX,303H MOV AL,10000011B OUT DX,AL MOV DX,302H IN AL,DX MOV CL,4 SHL AL,CL OUT DX,AL 4.在实际应用中经常需要检测设备的状态,并进行指示。在8086最小方式系统下,有一片8255A,其分配的端口地址为8F00H,8F07H中的奇地址,外部设备产 “1”的个生的状态有16个(K15,K0),要求采用4个发光二极管来指示开关量中数。(1)画出8255A的连接图;(2)编写程序段实现连续检测并显示。 解: MOV DX,8F07H MOV AL,10010010B ;端口A、B方式0输入,端口C方式0输出 OUT DX,AL NEXT: MOV DX,8F03H ;从端口B读取高8位开关量 IN AL,DX XCHG AL,AH MOV DX,8F01H ;从端口A读取低8位开关量 IN AL,DX MOV BX,AX XOR AL,AL MOV CX,16 CLC L2: SHL BX,1 JNC L1 INC AL L1: LOOP L2 MOV DX,8F05H ;从端口C送出 OUT DX,AL JMP NEXT ;进行下一次检测 5. 在实际应用中,经常会遇到要求输入多个数据量,这时需要用到多路开关,如图10.21表示八选一的逻辑框图及其真值表。 现有8组16位开关量数据(无符号数),要求通过一片8255A(端口地址为260H,263H)分时输入到CPU(8088最小方式系统)中,并找出它们中的最大值,并通过4个发光二极管指示其序号(灯亮表示“1”)。画出8255A的连接图,并编程实现。 解:由于开关量是16为数据,故可以将8255A的PA端与PB端设定为方式0,分别读取开关量的低八位和高八位,以PC低三位端口的控制八选一电路的输出依次从X0到X7,使用PC端口的高八位输出最大开关量的序号(该序号为1~8),控制发光二极管的亮灭以码指示序号。 连接图如下: 程序段如下: MOV DX,263H MOV AL,10011010B ;设定工作方式,PA,PB均工作于方式0,PA、PB为输入,PC为输出 OUT DX,AL MOV CX,8 XOR BX,BX MOV SI,0 ;SI表示输入开关量的序号 ST1: MOV DX,262H OUT DX,SI MOV DX,260H ;将开关量数据的低八位写入AL IN AL,DX MOV DX,261H ;将开关量数据的高八位写入AH IN AH,DX CMP BX,AX JA NEXT MOV BX,AX ;将当前最大值保存在BX中 INC SI PUSH SI ;将当前最大值的序号压栈 NEXT: INC SI LOOP ST1 POP SI ;最大值的序号出栈 XOR AX,AX MOV AX,SI MOV CL,4 ROL AL,CL ;将最大值的序号(4位)移至AL的高四位 MOV DX,262H OUT DX,AL ;PC的高四位输出最大值序号
本文档为【微机原理考题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_037433
暂无简介~
格式:doc
大小:34KB
软件:Word
页数:16
分类:企业经营
上传时间:2017-10-14
浏览量:57