ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:39.71KB ,
资源ID:11065535      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11065535.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理复习题1交学生.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理复习题1交学生.docx

1、微机原理复习题1交学生1 微处理器、微型计算机和微型计算机系统三者之间有什么不同? 解: 把CPU(运算器和控制器)用大规模集成电路技术做在一个芯片上,即为微处理器。 微处理器加上一定数量的存储器和外部设备(或外部设备的接口)构成微型计算机。 微型计算机与管理、维护计算机的硬件以及支持应用的软件相结合就形成了微型计算机系统。 2 CPU在内部结构上由哪几部分组成?CPU应该具备哪些主要功能? 解:CPU主要由起运算器作用的算术逻辑单元、起控制器作用的指令寄存器、指 令译码器、可编程逻辑阵列和标志寄存器等一些寄存器组成。其主要功能是进行算 术和逻辑运算以及控制计算机按照程序的规定自动运行。 3微

2、型计算机采用总线结构有什么优点? 解:采用总线结构,扩大了数据传送的灵活性、减少了连线。而且总线可以标准化,易于兼容和工业化生产。 4数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合 用一套总线或者合用部分总线,那么要靠什么来区分地址和数据? 解:数据总线是双向的(数据既可以读也可以写),而地址总线是单向的。 8086CPU为了减少芯片的引脚数量,采用数据与地址线复用,既作数据总线也作为 地址总线。它们主要靠信号的时序来区分。通常在读写数据时,总是先输出地址 (指定要读或写数据的单元),过一段时间再读或写数据。 5 8086微处理器的总线接口部件由哪几部分组成? 解:808

3、6微处理器中的总线接口单元(BIU)负责CPU与存储器之间的信息传 送。具体地说,BIU既负责从内存的指定部分取出指令,送至指令队列中排队(8086的指令队列有6个字节,而8088的指令队列只有4个字节);也负责传送执行指令时所需的操作数。执行单元(EU)负责执行指令规定的操作。 6段寄存器CS=120OH,指令指针寄存器IP=FFOOH,此时,指令的物理地址为 多少? 解:指令的物理地址=12000H+FFOOH=21FOOH7 分别指出下列指令中的源操作数和目的操作数的寻址方式。 (1)MOV SI, 300 (2)MOV CX, DATADI (3)ADD AX, BXSI (4)AND

4、 AX, CX (5)MOV BP, AX (6)PUSHF 解: (l)源操作数为立即寻址,目的操作数为寄存器寻址。 (2)源操作数为变址寄存器加位移量寻址,目的操作数为寄存器寻址。 (3)源操作数为基址加变址寻址,目的操作数为寄存器寻址。 (4)源操作数和目的操作数都为寄存器寻址。 (5)源操作数为寄存器寻址,目的操作数为寄存器间接寻址。 (6)为堆栈操作。 8 试述指令MOV AX,2000H和MOV AX,DS:2000H的区别。 解: 前一条指令是立即寻址,即把立即数2000H传送至寄存器AX。后一条指令是直接寻址,是把数据(DS)段中的地址为200OH单元的内容传送至寄存器AX。

5、9写出以下指令中内存操作数的所在地址。 (1)MOV AL, BX+10 (2)MOV BP+10, AX (3)INC BYTEPTRSI十5 (4)MOV DL, ES:BX+SI (5)MOV BX,BP+DI+2 解: (1)数据段BX+10单元。 (2)堆栈段BP+10单元。 (3)数据段SI+5字节单元。 (4)附加段(ES段)BX+SI单元。 (5)堆栈段BP+DI+2单元。 10判断下列指令是否正确。 (1)MOV AL, BX (2)MOV AL, CL (3)INC BX (4)MOV 5, AL (5)MOV BX,SI (6)M0V BL, 0F5H (7)MOV DX

6、, 2000H (8)POP CS (9)PUSH CS 解: (l)不正确,AL与BX数据宽度不同。 (2)正确。 (3)不正确,因为不明确是增量字节还是字。 (4)不正确,立即数不能作为目的操作数。 (5)不正确,因为不明确要传送的是字节还是字。 (6)正确。 (7)正确。 (8)不正确,CS不能作为:pop指令的操作数。 (9)不正确,CS不能作为PUSH指令的操作数。 11设堆钱指针SP的初值为1000H,AX=2000H,BX=3000H,试问: (1)执行指令PUSH AX后SP的值是多少? (2)再执行PUSH BX及POP AX后,SP、AX和BX的值各是多少? 解: (1)S

7、P=0FFEH。 (2)SP=0FFEH;AX=3000H, BX=3000H。 12要想完成把3000H送2000H中, 用指令: MOM2000H,3000H 是否正确?如果不正确,应该用什么方法实现? 解: 不正确。 正确的是: MOV AL, 3000H MOV 2000H,AL 13假如想从200中减去AL中的内容,用SUB 200,AL是否正确? 如果不正确,应该用什么方法? 解: 不正确。 正确的是: MOV BL, 200 SUB BL,AL 14试用两种方法写出从80H端口读入信息的指令。再用两种方法写出从40H口输出100H的指令。 解: (1) IN AL, 80H (2

8、) MOV DX,80H IN AL, DX (3)MOV AL,100H OUT 40H,AL 4)MOV AL,100H MOV DX,40H OUT DX,AL 15假如:AL=20H,BL=10H,当执行CMPAL,BL后,问: (1)AL、BL中的内容是两个无符号数, 比较结果如何? 影响哪儿个标志位? (2)AL、BL中的内容是两个有符号数, 结果又如何, 影响哪几个标志位? 解: (l)AL=2OH,BL=1OH,O=0,S=0,Z=0,A=0,P=0,C=0。 (2)因为两个都是符号正数,其结果与(l)相同。 16若要使AL10,有哪几种方法,试编写出各自的程序段? 解:(1)

9、 使用乘法指令: MOV BL,10 MUL BI, (2)使用移位指令: SHL AL,1 ;AL2 MOV BL,AL SHL AL,2 ;(AL2) 22=AL8 ADD AL,BL ;(AL8)+(AL2(3)使用加法指令: ADD AL,AL ;AL2 MOV BL,AL ADD AL,AL ;AL4 ADD AL,AL ;AL8 ADD AL,BL ;( AL8)+( AL2)17 8086汇编语言指令的寻址方式有哪几类?哪种寻址方式的指令执行速度最快? 解: 寻址方式分为:立即数寻址方式、寄存器操作数寻址方式和存储器操作数寻址方式。其中,寄存器操作数寻址方式的指令执行速度最快。

10、18在直接寻址方式中,一般只指出操作数的偏移地址,那么,段地址如何确定?如果要用某个段寄存器指出段地址,指令中应该如何表示? 解: 默认数据访问:操作数在DS段;堆栈操作在SS段; 串操作源操作数在(SI), 目的操作数在(DI)段; 用BP作为堆栈指针,则在SS段。如果要显式地指定段地址,则在操作数中用冒号规定段寄存器。例如: MOV AX,ES:(BX+10H) ;在ES段19采用寄存器间接寻址方式时,BX、BP、SI、DI分别针对什么情况来使用?这4个寄存器组合间接寻址时,地址是怎样计算的?请举例说明。 解: 在寄存器间接寻址方式下,BX和BP作为间址寄存器使用,而SI、DI作为 变址寄

11、存器使用。除BP间址默认的段为堆栈段,其他的都默认为数据段。它们都可以单独使用,或加上偏移量或组合使用。如: BX+n LBP+n SI+n DI+n BX+SI+n BX+DI+n BP+SI+n BP+DI+n 20设DS=2100H,SS=5200H,BX=1400H,BP=6200H,说明下面两条指令所进行 的具体操作: 解:MOV BYTE PTRBP,200 MOV WORD PTRBX,2000 解:前一条指令是把立即数(字节)200,传送至堆栈段(BP的默认段偏移量由BP决定的字节单元,物理地址为:52000H+620OH=58200H第二条指令是把立即数2000,传送至数据段

12、(BX的默认段),偏移量是BX决定的字单元地址,为: 21000H+1400H=22400H。 21使用堆钱操作指令时要注意什么问题? 传送指令和交换指令在涉及内存操作数 时应该分别要注意什么问题? 解: 使用堆栈指令可以把内存单元作为一个操作数(从内存到内存)。但堆栈 固定在堆栈段且只能由SP指向。且堆栈操作要修改堆栈指针。MOV指令不能实现内存单元间的数据传送。XCHG指令功能是交换,其中有一个操作数必须是寄存器。 22下面这些指令中哪些是正确的?哪些是错误的?若是错误的,请说明原因。 (1)XCHG CS, AX (2)MOV BX, 1000 (3)XCHG BX, IP (4)PUS

13、H CS (5)POP CS (6)IN BX, DX (7)MOV BYTEBX,100O (8)MOV CS, 1000 解: (l)错误,CS不能交换。 (2)错误,MOV指令不能在内存间传送。 (3)错误,IP不能交换。 (4)错误?CS可以作为PUSH指令的操作数。 (5)错误,CS可以作为POP指令的操作数。 (6)错误,IN指令的目的操作数是累加器。 (7)错误,目的操作数是字节单元。 (8错误,CS不能作为MOV指令的目的操作数。 23 以下是格雷码的编码表,: 0 0000 1 0001 2 0011 3 0010 4 0110 5 0111 6 0101 7 0100 8

14、1100 请用换码指令和其他指令设计一个程序段,以实现由格雷码向ASCII码的转换。 解: MOV BX,TABLE MOV SI,ASCII_TAB MO V AL,0 MOV CX,10 TRAN: XLAT TABLE MOV DL,AL ADD DL,30H MOV SI,DL INC AL LOOP TRAN 24字节扩展指令和字扩展指令一般用在什么场合?举例说明。 解: 主要用于字节相除和字相除之前, 把被除数扩展为两倍宽度的操作数。 25 什么叫BCD码? 什么叫组合的BCD码? 什么叫非组合的BCD码? 8086汇编语言在对 BCD码进行加、减、乘、除运算时, 采用什么方法?

15、解: BCD码为十进制编码的二进制数。组合的BCD数是把两位BCD加在一个字节中, 高位的在高4位。非组合的BCD码是把一位BCD数放在一个字节的低4位,高4位为0。8086在BCD加、减和乘法运算以后用BCD调整指令把结果调整为正确的BCD 26字节扩展指令和字扩展指令一般用在什么场合?举例说明。 解: 主要用于字节相除和字相除之前, 把被除数扩展为两倍宽度的操作数。 27 什么叫BCD码? 什么叫组合的BCD码? 什么叫非组合的BCD码? 8086汇编语言在对 BCD码进行加、减、乘、除运算时, 采用什么方法? 解: BCD码为十进制编码的二进制数。组合的BCD数是把两位BCD加在一个字节

16、中, 高位的在高4位。非组合的BCD码是把一位BCD数放在一个字节的低4位,高4位为0。8086在BCD加、减和乘法运算以后用BCD调整指令把结果调整为正确的BCD数。在BCD除法之前先用BCD调整指令再做除法. 28用普通运算指令执行BCD码运算时,为什么要进行十进制调整?具体地讲,在进行BCD码的加、减、乘、除运算时,程序段的什么位置必须加上十进制调整指令? 解: 因为8086指令把操作数作为二进制数进行二进制运算,要得到正确的BCD结果,需要进行调整。在加、减、乘法指令之后加上BCD调整指令,而在除法指令 之前先用BCD调整指令再用除法指令。 29在下列程序运行后,给相应的寄存器及存储单

17、元填入运行的结果: MOV AL, 1OH MOV CX, 100OH MOV BX, 2000H MOV CX,AL XCHG CX, BX MOV DH, BX MOV DL, 01H XCHG CX, BX MOV BX,DL HLT 解:寄存器及存储单元的内容如下: AL=10H BL=00H BH=20H CL=00H CH=10H DH=10H (1000H)=l0H (2000H)=0lH 30 要求同题4.1,程序如下: MOV AL, 50H MOV BP, 100OH MOV BX, 200OH MOV BP,AL MOV DH, 20H MOV BX,DH MOV DL,

18、 OlH MOV DL, BX MOV CX, 300OH HLT 解:寄存器及存储单元的内容如下: AL=50H BL=00H BH=20H CL=00H CH=30H DL=20H DH=20H BP=1000H (1000H)=50H (2000H)=20H 蓝色字部分有新指令,需重点理解辅导:MOVSB MOVSW数据串传送指令功能: (ES:DI)(DS:SI) ;附加段 数据段 MOVSB ;传1字节: SISI1,DIDI1 (DF=0则+,DF=1则-:先传低地址)MOVSW ;传1字: SISI2,DIDI2 (DF=0则+,DF=1则-:先传高地址)31 自1000H单元开

19、始有一个100个数的数据块,若要把它传送到自2000H开始的存储区中去,可以采用以下3种方法实现,试分别编制程序以实现数据块的传送。 (l)不用数据块传送指令 (2)用单个传送的数据块传送指令 (3)用数据块成组传送指令。 解: (1) 不用数据块传送指令 LEA SI, 1000H LEA DI, 2000H MOV CX, 100 L1: MOV AX, SI MOV DI,AX LOOP Ll ;CX-1,不等于零转移 HLT (2) 用单个传送的数据块传送指令 LEA SI,1000H LEA DI,2000H MOV CX,100 CLD ;令方向标志DF=0 L1: MOVSB ;

20、(ES:DI)(DS:SI) ;附加段 数据段;传1字节: SISI1,DIDI1 (DF=0则+,DF=1则-:先传低地址) LOOP L1 HLT (3) 用数据块成组传送指令 LEA SI, 1000H LEA DI, 2000H MOV CX, 100 CLD ;令方向标志DF=0 REP MOVSB ; CX0,重复执行MOVSB ,且CX-1;REP 重复前缀:功能:当CX0时重复执行后面的数据串操作指令 HLT 32 利用变址寄存器,编写一个程序, 把自1000H单元开始的100个数传送到自1070H 开始的存储区中去。 解: LEA SI,1000H LEA DI,1070H

21、MOV CX,100 CLD REP MOVSB ; CX0,重复执行MOVSB ,且CX-1 HLT 33要求同题4.4,源地址为2050H,目的地址为2000H,数据块长度为50. 解: LEA SI,2050H LEA DI,2000H MOV CX,50 CLD REP MOVSB ; CX0,重复执行MOVSB ,且CX-1 HLT 34编写一个程序,把自1000H单元开始的100个数传送至1050H开始的存储区中(注意:数据区有重叠)。 解: LEA SI, 1000H LEA DI,1050H ADD SI, 63H ;1000H单元后 ADD DI, 63H MOV CX, 1

22、00 STD ;令方向标志DF=1 REP MOVSB ; CX0,重复执行MOVSB ,且CX-1 HLT 35在自0500H单元开始,存有100个数。要求把它传送到1000H开始的存储区中, 但在传送过程中要检查数的值,遇到第一个零就停止传送。 解: LEA SI, 0500H LEA DI, 1000H MOV CX, 100 N1: MOV AL, SI CMP AL, 0 JZ N2 MOVDI,AL INC SI INC DI LOOPN1 N2: HLT 36若在0500H单元中有一个数 (1)利用加法指令把它乘2,且送回原存储单元(假定X2后仍为一个字节); (2) X4; (

23、3) X10(假定Xl0 255) 解: (1) LEA BX, 0500H ; X乘2 MOV AL, BX ADD AL, AL MOV BX,AL (2) LEA BX, 0500H ; X4 MOV AL, BX ADD AL, AL ; X乘2 ADD AL, AL ; 2X乘2 MOV BX,AL (3) LEA BX, 050OH ; X10(假定Xl0 255) MOV AL, BX ADD AL, AL ; X乘2 MOV DL, AL ;2X ADD AL, AL ; 2X乘2=4X ADD AL,AL ; 4X+4X=8X ADD AL, DL ; 8X+2X=10X M

24、OV BX,AL 37 总线周期的含义是什么? 8086/8088CPU的基本总线周期由几个时钟组成? 如果一个CPU的时钟频率为8MHz,那么,它的一个时钟周期是多少? 一个基本总线周期是多少? 如果主频为5MHz呢? 解:CPU访问总线(从内存储器或I/0端口读/写字节或字)所需的时间称为总线周期。 8086/8088CPU的基本总线周期由4个时钟组成。 若CPU的时钟频率为8MHz, 时钟周期为1/8MHz=(1/8)us=0.125us 时钟频率为5MHz, 时钟周期为1/5MHz=(1/5)us=0.2us38 若要扩充1KB RAM(用2114片子),规定地址为8000H83FFH

25、,地址线应该如何连接? 解: 扩充lKB RAM至规定地址8000H 83FFH,其地址线的低10位(A9 A0)接芯片,高6位地址(Al5 A10 = 100000)产生体选(存储芯片组)信号。39 外部设备为什么要通过接口电路和主机系统相连? 解:因为外部设备种类繁多,输入信息可能是数字量、模拟量或开关量,而且传输速度、电平、功率与CPU等电路采用的TTL电平有很大差异。所以, 需要通过接口电路的信号转换,才能与主机系统相连。 40 CPU和输入输出设备之间传送的信息有哪几类? 解:CPU和输入输出设备之间传送的信息主要有3类: (l)数据:在微型计算机中,数据通常为8位、16位或32位。

26、 (2)状态信息:在输入时,有输入设备的信息是否准备好;在输出时有输出设备是否有空,若输出设备正在输出信息,则以忙指示等。 (3)控制信息:例如,控制输入输出设备启动或停止等。 41设一个接口的输入端口地址为0100H, 状态端口地址为0104H, 状态端口中第5位为1表示输入缓冲区中有一个字节准备好, 可以输入。设计具体程序以实现查询式输入。 解:POLl: IN AL, 0104H ; 输入状态端口数据 AND AL,20H ; 测试第5位为1? JZ POLl ; 第5位为1转 IN AL, 0100H ; 读入输入端口的数据32 8086CPU最多可以有多少个中断类型?按照产生中断的方

27、法分为哪两大类? 解:8086CPU最多可以有256个中断类型。按照产生中断的方法,可以分为内部中断(软件中断)和外部(硬件中断)中断两大类。43 在编写中断处理子程序时,为什么要在子程序中保护许多寄存器? 解:因为主程序调用子程序之前,往往会在一些寄存器中保存有运算的中间结果,如果在子程序中也需要使用这些寄存器时,主程序保存的中间结果就被子程序的数据覆盖了。所以,要在子程序执行前把这些寄存器的内容保存起来(存入堆栈,称保护现场)。在子程序执行完毕时,再从堆找中将数据恢复至寄存器中(称恢复现场)。 44在某一应用系统中,计数器/定时器8253地址为340H343H,定时器0用作分频器(N为分频

28、系数),定时器2用作外部事件计数器,如何编制初始化程序? 辅导:8253的引脚A1和A0用于选择3个计数器端口或控制端口,如下:A1 A0=00 选中计数器0:写初值,读计数值(8位,16位)A1 A0=01 选中计数器1A1 A0=10 选中计数器2A1 A0=11 选中控制R:写工作方式控制字8253工作方式控制字格式:D7D6D5D4D3D2D1D0SC1SC0RL1RL0 M2M1M0BCD00=T0控制字01=T1控制字10=T2控制字11=不用00=锁存计数值供CPU读01=读写低8位10=读写高8位11=先写低8位N1,后写高8位N2000=方式0溢出中断001=方式1单稳X10=方式2速率,重装X11=方式3方波100=方式4选通,软触发101=方式5选通,硬触发0=二进制数1=十进制数 解:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1