微机原理 汇编语言及接口技术 答案.docx

上传人:b****7 文档编号:23469862 上传时间:2023-05-17 格式:DOCX 页数:41 大小:322.26KB
下载 相关 举报
微机原理 汇编语言及接口技术 答案.docx_第1页
第1页 / 共41页
微机原理 汇编语言及接口技术 答案.docx_第2页
第2页 / 共41页
微机原理 汇编语言及接口技术 答案.docx_第3页
第3页 / 共41页
微机原理 汇编语言及接口技术 答案.docx_第4页
第4页 / 共41页
微机原理 汇编语言及接口技术 答案.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

微机原理 汇编语言及接口技术 答案.docx

《微机原理 汇编语言及接口技术 答案.docx》由会员分享,可在线阅读,更多相关《微机原理 汇编语言及接口技术 答案.docx(41页珍藏版)》请在冰豆网上搜索。

微机原理 汇编语言及接口技术 答案.docx

微机原理汇编语言及接口技术答案

题1.2参考p.2和p.5

1.9参考p.13-14

1.11

(1)174.66D=10101110.10101000B

=0AE.A8H(0AE.A9H/0AE.A8F5C2H)

(2)100011101011.01011B=8EB.58H

=2283.34375D

(3)F18A6.6H=11110001100010100110.0110B

=989350.375D

1.12解:

八位机器数原码、反码、补码、移码

+3700100101001001010010010110100101

25H25H25H0A5H

-3710100101110110101101101101011011

0A5H0DAH0DBH5BH

1.13解:

补码机器数扩充为16位和32位形式

+370025H00000025H

-37FFDBHFFFFFFDBH

1.14解:

46H作为无符号数=70D

46H作为补码=+70D

46H作为BCD码=46D

46H作为ASCII码=‘F’

1.19解:

英文字母D和d的ASCII码为44H和64H;

回车CR为0DH、换行LF为0AH;

数码0、空格SP、空操作NUL的ASCII码分别为30H、20H、00H。

2.5题参考p.32

逻辑地址形式为段地址:

偏移地址

物理地址=段地址*16+段内偏移地址

1MB空间最多可以分成64K个逻辑段,因为段地址的起始必须是16的倍数,220/24=216=64K个。

物理地址为:

(1)0FFFF0H

(2)00417H(3)24500H(4)0BC777H

 

2.8已知DS=2000H,BX=0100H,SI=0002H,存储单元[20100H]~[20103H]依次存放12H、34H、56H、78H,[21200H]~[21203H]依次存放2AH、4CH、B7H、65H,说明下列指令执行完后AX寄存器的内容以及源操作数的寻址方式。

(1)movax,1200h答:

ax=1200h立即寻址方式

(2)movax,bx答:

ax=0100h寄存器寻址方式

(3)movax,[1200h]答:

ax=[21200h]=4C2AH直接寻址方式

(4)movax,[bx]答:

ax=[20100h]=3412H寄存器间接寻址方式

(5)movax,[bx+1100h]答:

ax=[21200h]=4C2AH相对寻址方式

(6)movax,[bx+si]答:

ax=[20102h]=7856H基址变址寻址方式

(7)movax,[bx][si+1100h]答:

ax=[21202h]=65B7H

相对基址变址寻址方式

2.9指出下列指令的错误原因:

movcx,dl;源操作数长度与目的操作数不一致

movip,ax;ip指令指针不能人为改变,由转移指令或子程序调用来改变

moves,1234h;立即数不能直接送段寄存器

moves,ds;段寄存器之间不能直接传递

moval,300;源操作数长度超过al寄存器

mov[sp],ax;间接寻址可使用bx或bp,堆栈操作应使用专用指令,

movax,bx+di;源操作数格式错,应该是[bx+di]

mov20h,ah;目的操作数不可以是立即数

2.13解:

运算公式为[v-(x*y+z-540)]/x

结果商存放在ax中,余数在dx中。

2.16解:

求有效地址

(1)EA=1256H

(2)EA=32F7H

2.19解:

求首地址为array的20个字的数组的元素之和,结果存放于地址为total的字单元中。

---------------------------

题4.1参见p.14-15

8088具有20根地址线。

在访问内存时使用地址A0~A19,可直接寻址1MB容量的内存范围;在访问外设时使用地址线A0~A15,共能寻址64K个输入输出端口。

实际上PC/XT在寻址外设时,只使用地址线A9~A0;若A9=1,说明它要寻址的IO端口位于IO插卡上。

4.2参见p.106-107

总线操作指的是发生在总线上的某些特定操作,总线周期指的是完成一次特定总线操作所需的时间。

对8088而言其典型的总线周期由4个T状态组成。

PC/XT所采用的时钟频率为4.77MHz,每个T状态的持续时间为210ns。

如果CLK引脚接5MHz的时钟信号,那么每个T状态的持续时间为200ns。

4.4解答:

当8088进行读写存储器或I/O接口时,如果存储器或I/O接口无法满足CPU的读写时序(来不及提供或读取数据时),需要CPU插入等待状态TW。

(在T3前沿检测Ready信号,若无效则插入TW。

具体在读写总线周期的T3和T4之间插入TW。

4.6参见p.99,p.110

8088的某些输出线有三种状态:

高电平、低电平、悬空(高阻态),称为三态能力。

在高阻状态,CPU放弃其了对该引脚的控制权,由连接它的设备接管。

具有三态能力的引脚有:

AD7~AD0,A15~A8,A19/S6~A16/S3,ALE,IO/M*,WR*,RD*,DEN*,DT/R*。

4.11

总线周期

IO/M*

WR*

RD*

存储器读

存储器写

I/O读(输入操作)

I/O写(输出操作)

4.12答:

取该指令时引发存储器读总线操作。

执行该指令时引发I/O读总线操作。

(时序图略)

4.138088系统最小组态下,对指令ADD[2000H],AX(长度3B)。

答:

取该指令时需要3个总线周期,均为存储器读周期。

执行该指令时需要4个总线周期,2个为存储器读总线周期(读出字操作数参与运算),2个为存储器写总线周期(保存16位运算结果)。

4.15参见p.106图

74LS373的G为电平锁存引脚,控制选通且转为无效时锁存数据。

OE*输出允许引脚,信号来自ALE。

4.16参见p.106图

数据收发器74LS245是8位双向缓冲器,G*控制端为低电平有效,可传输数据;DIR控制导通方向:

DIR=1,A→B;DIR=0,A←B。

4.17参见p.111-112

归纳为:

1、8086数据总线变为16位,数据地址线复用为AD15~AD0。

2、8086指令队列程度变为6字节长,当有2个字节空才取下一指令。

3、8088引脚IO/M*,8086变为M/IO*;

4、引脚SS0*变为BHE*/S7,BHE*的作用是使D15~D8有效。

5、8086存储器组织为奇偶分块,偶地址取字只要读1次,奇地址取字需要读两次。

6、I/O端口大都采用偶地址,目的是引导8位数据到低8位总线AD7~AD0上,以提高效率。

=========================

5.1

Cache、主存和辅存的作用——参见p.120~121

虚拟存储器——参见p.121

在CPU看来,访问主存和访问辅存有什么不同?

访问主存:

通过存储器访问机器指令,按字随机访问。

访问辅存:

通过操作系统,按块顺序访问。

5.2在半导体存储器中,RAM指的是随机存取存储器,它可读可写,但断电后信息一般会丢失;而ROM指的是只读存储器,正常工作时只能从中读取信息,但断电后信息不会丢失。

以EPROM芯片2764为例,其存储容量为8K×8位,共有8条数据线和13条地址线。

用它组成64KB的ROM存储区共需8片2764芯片。

5.4一个容量为4K×4位的假想RAM存储芯片,他应该有多少根地址线引脚和多少根数据线引脚?

如果让你来进行设计,那么它还需要哪些控制引脚?

这些引脚分别起什么样的控制作用?

解答:

4K×4的芯片应该有12根地址线引脚和4根数据线引脚。

控制引脚应该有:

读取信号OE*:

有效时,表示读取存储单元的数据

写入信号WE*:

有效时,表示将数据写入存储单元

片选信号CS*:

有效时,表示选中该芯片,可以进行读写操作。

5.7什么是存储芯片的位扩充和地址扩充?

采用静态RAM的芯片2114(1K*4位)或动态RAM的芯片4116(16K*1位)来组成32KB的RAM存储区,请问各需要多少芯片?

在位方向和地址方向各需要进行什么样的扩充?

解答:

(参见p.140)使用多个芯片来扩充存储数据位的宽度,称为位扩充。

采用多个芯片在地址方向上进行扩充,称为地址扩充或字扩充。

用SRAM2114组成32KBRAM存储区:

2片为一组,得1KB,所以组成32KB就要32组,共需要64片SRAM2114。

用DRAM4116组成32KBRAM存储区:

8片为一组,得16KB,所以组成32KB只要2组,共需要16片DRAM4116。

5.8存储芯片为什么要设置片选信号?

它与系统地址总线有哪些连接方式?

采用何种连接方式可避免地址重复?

采用哪些连接方式可节省用于译码的硬件?

解答:

片选信号说明该存储器芯片是否被选中正常工作,设置它可以比较方便地实现多个存储器芯片组成大容量的存储空间。

存储器片选信号通常与CPU地址总线的高位地址线相关联,可以采用“全译码”、“部分译码”、“线选译码”方式。

采用全译码方式可以避免地址重复。

采用部分或线选译码可以节省译码硬件。

5.9在一个针对存储器的译码系统中,如果有4个地址线未参与译码,那么每个存储单元会同时拥有几个地址?

解答:

理论上每个存储单元会同时拥有16个地址。

5.10解答:

p.144图5.33中4个存储芯片的可用地址范围:

6264

(1)

6264

(2)

2732

(1)

2732

(2)

00000~01FFFH

02000~03FFFH

04000~04FFFH

05000~05FFFH

40000~41FFFH

42000~43FFFH

44000~44FFFH

45000~45FFFH

80000~81FFFH

82000~83FFFH

84000~84FFFH

85000~85FFFH

C0000~C1FFFH

C2000~C3FFFH

C4000~C4FFFH

C5000~C5FFFH

重复地址由于A19A18的不定性,每片各有4段范围。

5.11采用全译码方式和6264芯片(SRAM,容量8K×8位),在内存40000H~43FFFH区段扩充RAM,请画出这些芯片与最大组态的系统总线的连接示意图。

解:

方法为:

容量=末地址-首地址+1=214=16KB,所以要2片6264芯片。

A12~A0为片内地址,A15~A13作片选译码的输入CBA,

A19~A16

A15~A13

A12~A0

地址范围

1

2

0100

0100

000

001

全0~全1

全0~全1

40000H~41FFFH

42000H~43FFFH

5.13采用3:

8译码器74LS138和2764芯片(EPROM,8K×8位),通过全译码方式在8088系统的地址最高端组成32KB的ROM区,请画出各2764芯片与8088最大组态下形成的线条总线的连接示意图。

解答:

注意地址最高端组成32KB的ROM区,意味着地址范围是F8000H~FFFFFH,这样最高五根地址线A19~A15上要全为1。

2764芯片的片内地址是13根即A12~A0,它们是全0到全1变化;现在需要4片来构成32KB存储区,采用3:

8译码器的话,A15~A13应该取后4种情况,即取100~111分别产生Y4~Y7。

其余地址线可以以多种方式组合产生控制信号。

A19~A16

A15~A13

A12~A0

地址范围

1

2

3

4

1111

1111

1111

1111

100

101

110

111

全0~全1

全0~全1

全0~全1

全0~全1

F8000H~F9FFFH

FA000H~FBFFFH

FC000H~FDFFFH

FE000H~FFFFFH

考虑:

如果要求地址从低端开始的话,高5位全0,即00000H~07FFFH,如何连接?

5.16

访问的局部性原则

——P122第1行。

高速缓存和虚拟存储的目的

——p121下部。

=======================

6.1在80x86系统中,I/O端口的地址采用独立编码方式,访问端口时要使用专门的I/O指令,有2种寻址方式,其具体形式是:

直接寻址和DX间接寻址。

6.2一般的I/O接口电路安排有哪三类寄存器?

他们各自的作用是什么?

解答:

(参见p.154)

⑴数据寄存器

保存外设给CPU和CPU发往外设的数据。

⑵状态寄存器

保存外设或接口电路的状态。

⑶控制寄存器

保存CPU给外设或接口电路的命令。

6.4

解:

K0单独按下:

输入0FEH,控制L0—〉L7依次循环亮灯,

K1单独按下:

输入0FDH,控制L7—〉L0反向依次循环亮灯,

程序流程略。

BEG:

MOVDX,8000H

LOP0:

INAL,DX

MOVBL,AL

MOVCX,8;循环次数

CMPAL,0FEH;测试是否K0单独按下

JZLOP1

CMPAL,0FDH;测试是否K1单独按下

JZLOP2

MOVAL,0

OUTDX,AL

JMPLOP0

;利用状态值0FEH作为开始位置,指向L0

LOP1:

MOVAL,BL

NOTAL;因为有反相器LS06

OUTDX,AL

CALLDELAY

ROLBL,1;准备下个灯亮位置

LOOPLOP1

JMPLOP0

LOP2:

MOVBL,80H;首次亮L7,

LPO3:

MOVAL,BL;为1的灯亮,因为有反相器LS06

OUTDX,AL

CALLDELAY

RORBL,1;准备下个灯亮位置

LOOPLOP3

JMPLOP0

6.5数据口地址为FFE0H,状态口地址为FFE2H,当状态标志D0=1时输入数据就绪,编写查询方式进行数据传送程序,读入100个字节,写到2000H:

2000H开始的内存中。

解:

(程序格式参见p.63~64)

.CODE

MOVAX,2000H

MOVDS,AX;段地址

MOVBX,AX;偏移地址

MOVCX,100

NEXT:

MOVDX,0FFE2H

STATUS:

INAL,DX;读入状态

TESTAL,01H

JZSTATUS

DECDX

DECDX;数据口地址

INAL,DX

MOV[BX],AL

INCBX

LOOPNEXT

MOVAX,4C00H;结束

INT21H

6.6某字符输出设备,其数据端口和状态端口的地址均为80H。

在读取状态时,当标志位D7为0时表明该设备闲,可以接收一个字符。

请编写采用查询方式进行数据传送的程序段,要求将存放于符号地址ADDR处的一串字符(以$为结束标志)输出给该设备,注意在程序中加上注释。

解:

参考答案一:

movbx,offsetaddr

again:

movah,[bx];取一个字节的字符码

cmpah,’$’

jzdone

status:

inal,80h;查询一次

testal,80h

jnzstatus

moval,ah

out80h,al;输出一个字节

incbx

jmpagain;循环

done:

……

参考答案二:

.DATA

addrDB‘xx……xx$’

.CODE

MOVAX,@DATA

MOVDS,AX

LEABX,addr

Status:

INAL,80H;读入状态,ifD7=1,为负数

CMPAL,0;或ROLAL,1

JSStatus;JCSTATUS

MOVAL,[BX]

CMPAL,‘$’

JZendof

OUT80H,AL

INCBX

JMPStatus

Endof:

MOVAX,4C00H

INT21H

6.7以可屏蔽中断为例,说明一次完整的中断过程主要包括那些环节?

8088响应可屏蔽中断请求时需要先满足那些前提条件?

答:

中断过程的主要环节:

(参见p.165)

中断请求、中断响应、关中断、断点保护、中断源识别、现场保护、中断服务、恢复现场、开中断、中断返回。

8088响应可屏蔽中断请求时需要先满足:

中断允许——IF=1。

当前指令执行完毕。

6.8什么是中断源?

为什么要设立中断优先权?

什么是中断嵌套?

何种情况下程序可能发生中断嵌套?

答:

中断源:

计算机系统中引起中断的事件或原因。

当多个中断源同时请求时,CPU需要利用中断优先权决定首先响应哪一个;当一个中断正在服务时,又发生了新的中断请求,CPU需要利用中断优先权确定后者是否优先权更高,以便实现中断嵌套。

中断嵌套:

当一个中断服务时CPU又响应新的中断请求就形成中断嵌套。

CPU允许中断(开中断)、新的中断请求比正在服务的中断优先权更高,通常发生中断嵌套。

6.9参见P.171

 

STI

PUSHDX

PUSHAX

MOVDX,8001H

STATUS:

INAL,DX

TESTAL,01H

JZNEXT1CALLPROC0

JMPDONES

NEXT1:

TESTAL,02H

JZNEXT2

CALLPROC1

JMPDONES

NEXT2:

TESTAL,04H

JZNEXT3

CALLPROC2

JMPDONES

NEXT3:

TESTAL,08H

JZDONES

CALLPROC3

DONES:

POPAX

POPDX

IRET

6.10DMA的意思是直接存储器存取,主要用于高速外设和内存间的数据传送。

进行DMA传送的一般过程是:

外设先向DMA控制器提出DMA传送请求,DMA控制器通过HOLD信号有效向CPU提出总线请求,CPU回以HLDA信号有效表示响应。

此时CPU的三态信号线将输出高阻状态,即将它们交由DMAC(DMA控制器)进行控制,完成外设和内存间的直接数据传送。

 

7.7假如某并行总线的数据宽度为32位,工作频率为100MHz,若2个时钟周期传送一次数据,其传输速率是多少?

如果在时钟的前后沿各传送一次数据,其传输速率是多少?

如果采用2-1-1-1的突发传送模式,其平均传输速率是多少?

解答:

f=100MHz,则时钟周期T=1/f=10ns

1)2T一次的传输速率,即频率减半:

fd=(32/8)*100/2M=200MB/s

或fd=(32/8)/(2*10ns)=200MB/s

2)前后沿各传送一次,即频率加倍:

fd=(32/8)*100*2M=800MB/s

或即1T2次:

fd=(32/8)/(10/2ns)=800MB/s

3)采用2-1-1-1的突发传送模式,平均为5T4次:

fd=(32/8)*100*4/5M=320MB/s

或fd=(32/8)/(5*10ns/4)=320MB/s

 

======================

8.18088CPU具有哪些中断类型?

各种中断如何产生,如何得到中断向量号?

参见p.191、p.192~193

8.28088中断向量表的作用是什么?

(参见p.194)

答:

它是中断向量号到对应的中断服务程序入口地址的链接表。

通过中断向量号n,可以读取中断向量表的物理地址为n*4开始的单元,获取中断服务程序的入口地址(即中断向量),长度4个字节。

8.3说明程序段的功能:

(程序略,见p.212上)

答:

此段程序将中断服务程序intproc的入口地址写入中断向量表的80h*4开始的单元中。

(stows是数据串传送指令,参见p.78。

(实际上可以使用指令序列:

movax,segintproc

movds,ax

movdx,offsetintproc

movax,2580h

int21h来完成相同功能)

8.48259A中IRR、IMR和ISR三个寄存器的作用是什么?

答:

(参见p.196~197)

•中断请求寄存器IRR

–保存8条外界中断请求信号IR0~IR7的请求状态

–Di位为1表示IRi引脚有中断请求;为0表示无请求

•中断服务寄存器ISR

–保存正在被8259A服务着的中断状态

–Di位为1表示IRi中断正在服务中;为0表示没有被服务

•中断屏蔽寄存器IMR

–保存对中断请求信号IR的屏蔽状态

–Di位为1表示IRi中断被屏蔽(禁止);为0表示允许

8.5PC/XT对8259A的初始化程序如下:

moval,13h;00010011

out20h,al;ICW1

moval,08h;00001000

out21h,al;ICW2

moval,09h;00001001

out21h,al;ICW4

请说明其设定的工作方式?

解答:

从第一个写指令ICW1,看出是边沿触发、单片方式,有ICW4;第二个写指令ICW2为中断向量08h;第三个写指令ICW4中断方式字,表示普通全嵌套、数据线缓冲方式,从片、非自动中断结束、16位微处理器。

 

8.6某时刻8259A的IRR内

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

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

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