微机原理习题V3

更新时间:2024-05-07 17:48:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第1章 数制和码制

1.将下列十进制数分别转换为二进制数

(1)147 (2)4095 (3)0.625 (4)0.15625 解:147=10010011B 4095=111111111111B 0.625=0.101B 0.15625=0.00101B 2. 将下列二进制数分别转换为十进制数

(1)10110.101B (2)10010010.001B (3)11010.1101B 解:

10110.101B=22.625 10010010.001B=146.0625 11010.1101B=26.8125 3.将二进制数转换成十六进制数

(1)10010101B(2)1101001011B(3)1111111111111101B (4)0100000010101B(5)01111111B(6)010000000001B 解:(1)95H(2)34BH(3)FFFDH(4)0815H(5)7FH(6)401H

4.已知a=1011B, b=11001B, c=100110B,按二进制完成下列运算,并用十进制运算检查计算结果:

(1)a+b; (2)c-a-b; (3)a·b; (4)c/b; 解:a=1011B=11, b=11001B=25, c=100110B=38 (1)a+b=100100B=36 (2)c-a-b=10B=2 (3)a·b=100010011B=275 (4)c/b=1……1101B(=13) 5.设机器字长为8位,写出下列各数的原码和补码:

(1)+1010101B (2)-1010101B (3)+1111111B (4)-1111111B (5)+1000000B (6)-1000000B 解:(1)+1010101B 原码01010101B 补码01010101B (2)-1010101B 原码11010101B 补码10101011B (3)+1111111B 原码01111111B 补码01111111B (4)-1111111B 原码11111111B 补码10000001B (5)+1000000B 原码 01000000B 补码01000000B (6)-1000000B 原码 11000000B 补码11000000B

6.已知a=00111000B,b=11000111B,计算下列逻辑运算: (1)a AND b;(2)a OR b;(3)a XOR b;(4)NOT a; 解:(1)00000000B(2)111111111B(3)111111111B(4)11000111B 7.求下列组合BCD数的二进制和十六进制表示形式:(1.14) (1)3251;(2)12907;(3)2006 解:(1)0011 0010 0101 0001B,3251H

(2)0001 0010 1001 0000 0111 B , 12907H (3)0010 0000 0000 0110B , 2006H

8.设下列四组为8位二进制补码表示的十六进制数,计算a+b和a-b,并判定其结果是否溢出:

(1)a=37H,b=57H;(2)a=0B7H,b=0D7H; (3)a=0F7H,b=0D7H;(4)a=37H,b=0C7H。 解:(1)a=37H, b=57H; a+b=8EH; a-b=[-1]E0H=-32

(2)a=0B7H, b=0D7H; a+b=[1]8EH=-114; a-b=[-1]E0H=-32 (3)a=0F7H, b=0D7H; a+b=[1]CEH=-50; a-b=20H=32 (4)a=37H, b=0C7H; a+b=FEH=-2; a-b=[-1]70H=112

1

9.写出“0”到“9”共10个数符的ASCII码。 答:“0”的ASCII码是30H,“1”的ASCII码是31H, “2”的ASCII码是32H,“3”的ASCII码是33H, “4”的ASCII码是34H,“5”的ASCII码是35H, “6”的ASCII码是36H,“7”的ASCII码是37H, “8”的ASCII码是38H,“9”的ASCII码是39H。

10.将下列算式中的十进制数表示成组合BCD码进行运算,并用加6和减6进行修正。

(1)38+42 (2)99+88 解:(1) 38 BCD (2) 99 BCD + 42 BCD +88 BCD 7AH 121H

+ 06H + 66H 80 BCD 187 BCD

第2章 8086CPU结构与功能

1.微处理器内部结构由那几个部分组成?阐述各部分的主要功能?

答:微处理器内部结构主要由算术逻辑运算单元(ALU)、控制器、工作寄存器和I/O控制逻辑组成。算术逻辑运算单元是CPU的核心,它完成所有的运算操作;控制器是CPU的“指挥中心”,只有在它的控制下,CPU才能完成指令的读入、寄存、译码和执行;工作寄存器用于暂时存储寻址信息和计算中间结果;I/O控制逻辑用于处理I/O操作。

2.为什么地址总线是单向的,而数据总线是双向的?

答:由于在计算机中地址总是由CPU产生的,因此地址总线是单向的。而数据可从CPU写到存储器,也可从存储器读到CPU,因此数据总线是双向的。 3.8086/8088微处理器内部有哪些寄存器?其主要作用是什么?(2.4)

答:执行部件有8个16位寄存器,AX、BX、CX、DX、SP、BP、DI、SI。AX、BX、CX、DX一般作为通用数据寄存器。SP为堆栈指针存器,BP、DI、SI在间接寻址时作为地址寄存器或变址寄存器。总线接口部件设有段寄存器CS、DS、SS、ES和指令指针寄存器IP。段寄存器存放段地址,与偏移地址共同形成存储器的物理地址。IP的内容为下一条将要执行指令的偏移地址,与CS共同形成下一条指令的物理地址。

4.如果某微处理器有20条地址总线和16条数据总线,问: (1)假定存储器地址空间与I/O地址空间是分开的,则存储器地址空间有多大? (2)数据总线上传送的有符号整数的范围有多大?

解:存储空间为2?1048576?1M字节, 数据总线上传送的有符号整数的范围

20为-32768~+32767。

5.从下列各数中减去4AE0H,求出其结果及标志位CF、AF、SF、ZF、OF和PF的值:

(1)1234H (2)5D90H (3)9090H(4)EA04H 解:

(1)1234H-4AE0H=C754H;CF=1,AF=0,SF=1,ZF=0,OF=0,PF=0

2

(2)5D90H -4AE0H=12B0H;CF=0,AF=0,SF=0,ZF=0,OF=0,PF=0

(3)9090H-4AE0H=45B0H;CF=0,AF=0,SF=0,ZF=0,OF=0,PF=0

(4)EA04H-4AE0H=9F24H;CF=0,AF=0,SF=1,ZF=0,OF=0,PF=1

6.什么是逻辑地址?什么是物理地址?它们之间的关系如何?

答:在逻辑空间中每条指令的地址和指令中要访问的操作数地址统称为逻辑地址。内存是由若干个存储单元组成的,每个存储单元有一个编号,这种编号可惟一标识一个存储单元,称为内存地址(或物理地址)。

7.写出下列存储器地址的段地址、偏移地址和物理地址: (1)2134:10A0 (2)1FA0:0A1F (3)267A:B876

解:(1)段地址:2134H; 偏移地址:10A0H; 物理地址:223E0H (2)段地址:1FA0H; 偏移地址:0A1F H; 物理地址:2041FH (3)段地址:267A H; 偏移地址:B876H; 物理地址:32016H 8.给定一个数据的有效地址为2359H,并且(DS)=490BH,求该数据的物理地址。 答:4B409H

9.如果在一个程序段开始执行之前,(CS)=OA7F0H,(IP)=2B40H,求该程序段的第一个字的物理地址。 解:物理地址为: 0A7F0H×10H+2B40H=A3330H。 10.IBM PC有哪些寄存器可用来指示存储器的地址? 答:指示存储器地址的寄存器有:SI,DI,BX,BP

11.已知AH=56H,AL=65H,则AX的值是多少?若AX=AX+0202H,则AH和AL的值分别是多少?

答:AX=5665H;AH=58H;AL=67H。

12.在8086CPU中,从逻辑地址计算出物理地址的部件是什么? 答:地址加法器。

13.当8086CPU重启后,指令指针指向的内存单元的物理地址是多少?

答:8086CPU重启后,CS=0FFFFH,IP=0000H,因此指令指针指向的内存单元的物理地址PA=CS×10H+IP = 0FFFF0H。

第3章 8086CPU指令系统

1.写出完成下列要求的变量定义语句: (1) 在变量var1中保持6个字变量:

4512H,4512,-1,100/3,10H,65530;

(2) 在变量var2中保存字符串:?BYTE?,?word?,?WORD?; (3) 在缓冲区buf1中留出100个字节的存储空间;

(4) 在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将

这一过程重复7次;

(5) 在变量var3中保存缓冲区buf1的长度;

(6) 在变量pointer中保存变量var1和缓冲区buf1的偏移地址。 解:(1)var1 DW 4512H,4512,-1,100/3,10H,65530

(2)var2 DB ?BYTE?, ?word?, ?WORD?

(3)buf1 DB 100 DUP(?)

3

(4)buf2 DB 7 DUP(5 DUP(55H), 10 DUP(240)) (5)var3 DB LENGTH buf1 (6)pointer DW var1, var2

2. 指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设VAR1,VAR2为字节变量,L1为标号):(3.3)

答:(1)MOV SI,100 ;指令正确,源:立即数寻址,目的:寄存器寻址 (2)MOV BX,VAR1[SI] ;指令正确,源:寄存器相对寻址,目的:寄存器寻址

(3)MOV AX, [BX] ;指令正确,源:寄存器间接寻址,目的:寄存器寻址

(4)MOV AL, [DX] ;指令错误,DX不能用作为地址寄存器 (5)MOV BP, AL ;指令错误,类型不一致

(6)MOV VAR1, VAR2 ;指令错误,MOV指令不能从存储器到存储器传送

(7)MOV CS, AX ;指令错误,CS不能用作为目的操作数

(8)MOV DS, 0100H ;指令错误,MOV指令不能将立即数传送到段寄存器

(9)MOV [BX][SI], 1 ;指令错误,类型不定

(10)MOV AX, VAR1+VAR2 ;指令错误,MOV指令中不能完成加法运算

(11)ADD AX, LENGTH VAR1 ;指令正确,源:立即数寻址,目的:寄存器寻址

(12)OR BL, TYPE VAR2 ;指令正确,源:立即数寻址,目的:寄存器寻址

(13)SUB [DI], 78H ;指令错误,类型不定

(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 ;指令错误,DIV指令格式错误

(21)SHL BL, 2 ;指令错误,移位指令的移位数要么是1,要么是CL (22)MOV AL, 15+23 ;指令正确,源:立即数寻址,目的:寄存器寻址

(23)MUL CX ;指令正确,源:寄存器寻址,目的:隐含寻址 (24)XCHG CL, [SI] ;指令正确,源:寄存器间接寻址,目的:寄存器寻址

(25)ADC CS:[0100], AH ;指令正确,源:寄存器寻址,目的:直接寻址 (26)SBB VAR1-5,154 ;指令正确,源:立即数寻址,目的:直接寻址 3.设(DS)=2000H,(BX)=0100H,(SI)=0002H,(21000)=3412H,(20102)=7856H,(21200)=4C2AH,(21202)=65B7H,求下列指令执行后AX寄存器的内容:(3.6)

4

(1)MOV AX,1200H (2)MOV AX,BX (3)MOV AX,[1200H]

(4)MOV AX,[BX] (5)MOV AX,1100H[BX](6)MOV AX,[BX][SI](7)MOV AX,1100H[BX][SI]

4.执行下列指令后,DX寄存器中的内容是多少? TABLE DW 25,36,-1,-16,10000,13 PYL DW 7 …

MOV BX, OFFSET TABLE ADD BX, PYL MOV DX,[BX]

答:DX寄存器中的内容为10FFH

5.设已用伪指令EQU定义了4个标识符: N1 EQU 2100 N2 EQU 10 N3 EQU 20000 N4 EQU 25000

下列指令是否正确?并说明原因。

(1)ADD AL,N1-N2 (2)MOV AX,N3+N4 (3)SUB BX,N4-N3 (4)SUB AH,N4-N3-N1 (5)ADD,AL,N2 (6)MOV AH,N2*N2

答:(1)ADD AL,N1-N2 ;指令错误,因为N1-N2超出一个字节的范围 (2)MOV AX,N3+N4 ;指令正确 (3)SUB BX,N4-N3 ;指令正确

(4)SUB AH,N4-N3-N1 ;指令错误,因为N4-N3-N1超出一个字节的范围

(5)ADD AL,N2 ; 指令正确 (6)MOV AH,N2*N2 ;指令正确 6.写出完成下列功能的程序段: (1)传送40H到AL寄存器; (2)将AL的内容乘以2; (3)传送16H到AH寄存器

(4)AL的内容加上AH的内容。 计算最后结果(AL)=? 解:(1)MOV AL,40H

(2)SHL AL,1 (3)MOV AH,16H (4)ADD AL,AH 执行后(AL)=96H

7.设(BX)=11001011B,变量VAR的内容为00110010B,求下列指令单独执行后BX的内容: (1)XOR BX,VAR(2)AND BX,VAR(3)OR BX,VAR(4)XOR BX,11110000B(5)AND BX,00001111B(6)TEST BX,1

解:(1)XOR BX,VAR; 执行后(BX)=00F9H (2)AND BX,VAR; 执行后(BX)=0002H

5

第8章 中断系统与可编程中断控制器8259A

1.什么叫中断?8086微机系统中有哪几种不同类型的中断?

答:在CPU执行程序的过程中,由于某个事件的发生,CPU暂停当前正在执行的程序,转去执行处理该事件的一个中断服务程序,待中断服务程序执行完成后,CPU再返回到原被中断的程序继续执行。这个过程称为中断。8086中有:外部不可屏蔽中断、外部可屏蔽中断、内部中断。 2.什么是中断类型?它有什么用处?

答:在一个微机系统中,中断源的个数较多。哪个中断源向CPU提出中断请求,CPU响应该中断请求后就应正确的转向该中断源对应的中断服务程序入口,执行该中断服务程序。为了使CPU识别中断源,从而能正确地转向该中断源对应的中断服务程序入口,通常用若干位二进制编码来给中断源标号,该编号称为中断类型号。

3.什么是中断嵌套?使用中断嵌套有什么好处?对于可屏蔽中断,实现中断嵌套的条件是什么?

答:微处理器在处理级别低的中断过程中,如果出现了级别高的中断请求,微处理器停止执行低级中断的处理程序而去优先处理高级中断,等高级中断处理完毕后,再接着执行低级的未处理完的程序,这种中断处理方式称为中断嵌套。 4.什么是中断向量?中断类型号为1FH的中断向量为2345H:1234H,画图说明它在中断向量表的存放位置。

答:中断向量是区分不同中断和获取相应的中断服务程序的一个字节的量,由CPU产生或由外设在中断响应周期输送至CPU的。 5.可屏蔽中断的响应条0007CH 件是什么? 34H 答:(1)微处理器处于0007DH 中断允许状态(IF=1)。12H (2)没有不可屏蔽中断0007EH 请求和总线请求。(3)45H 当前指令执行结束。 0007FH 23H 6.简述中断处理过程?

答:中断处理过程包含五个步骤:中断请求、中断判优、中断响应、中断处理和中断返回。

(1)中断请求:中断源发出中断请求信号,送到CPU 的INTR 或NMI 引脚; (2)中断判优:根据中断优先权,找出中断请求中级别最高的中断源,允许中

11

断嵌套;

(3)中断响应:在每条指令的最后一个时钟周期,CPU 检测INTR 或NMI 信号,在满足一定条件下,CPU 进入中断响应周期,自动完成:向中断源发出INTA 中断响应信号、关中断(清IF)、断点保护( CS、IP 及PSW 自动压栈)、形成并转向中断入口地址;

(4)中断处理:由中断服务程序完成,包括保护现场;开放中断;中断服务程序;关中断;恢复现场;开放中断;中断返回IRET 等;

(5)中断返回:执行中断返回指令IRET,CPU 自动返回到断点地址(弹出堆栈内保存的断点信息到IP、CS 和FLAG 中),继续执行被中断的程序。

7.如外设A1、A2、A3、A4、A5 按完全嵌套优先级排列规则,外设A1 的优先级最高,A5 最低。若中断请求的次序如下所示,试给出各外设的中断处理程序的次序。(假设所有的中断处理程序开始后就有STI 指令) (1)外设A3和A4同时发出中断请求;

(2)在外设A3的中断处理中,外设A1发出中断请求;

(3)在外设A1的中断处理未完成前,发出EOI结束命令,外设A5发出中断请求。 答:外设的中断处理程序的次序为:A3→A1→A3→A4→A5

8. 中断向量表中地址为 0040H 中存放240BH,0042H 单元存放D169H,问: (1) 这些单元对应的中断类型是什么? (2) 该中断服务程序的起始地址是什么? 答:(1)10H (2)D169H:240BH

第9章 并行接口芯片8255A应用设计

1.8255A有三种基本工作方式,分别是: 、 、 。 答:基本的输入/输出、有联络信号的输入输出和双向传送。

2.可编程并行接口芯片8255A的方式选择控制字和置1/置0控制字都是写入控制端口的,那么,它们又是由什么来区分的?

答:用控制字D7确定。D7 =1,写入的是方式控制字;D7 =0,写入的是按位置位/复位字。

3.设置8255A工作方式,8255A的控制端口地址为00C6H。要求端口A工作方式1;输入;端口B工作方式0;输出;端口C的高4位配合端口A工作,低4位为输入。

方式控制字格式见P298页图10.3。

解:按要求的方式控制字为1011 1001B。编程语句为:

MOV AL,0B9H OUT 00C6H,AL

12

本文来源:https://www.bwwdw.com/article/m8xg.html

Top