微机原理与接口技术考点
第1章 微型计算机系统
一简答题
(1)计算机字长(Word)指的是:处理器每个单位时间可以处理的二进制数据位数
称计算机字长。
(2)总线信号分成哪三组信号:总线信号分成三组,分别是数据总线、地址总线和控
制总线。
(3)PC机主存采用DRAM组成还是SRAM组成:PC机主存采用DRAM组成。 (4)Cache是:高速缓冲存储器Cache是处理器与主存之间速度很快但容量较小的存
储器。
(5)ROM-BIOS是:“基本输入输出系统”,操作系统通过对BIOS的调用驱动各硬
件设备,用户也可以在应用程序中调用BIOS中的许多功能。 判断题 (1)(×)软件与硬件的等价性原理说明软硬件在功能、性能和成本等方面是等价的。 (2)(×)IA-64结构是IA-32结构的64位扩展,也就是Intel 64结构。
(3)(√)8086的数据总线为16位,也就是说8086的数据总线的个数、或说条数、位数是16。
(4)(×)微机主存只要使用RAM芯片就可以了。
(5)(√)处理器并不直接连接外设,而是通过I/O接口电路与外设连接。 〔习题1.3〕填空题
(1)CPU是英文_ Central Processing Unit _的缩写,中文译为__中央处理单元_________,微型机采用____处理器_______芯片构成CPU。
(2)Intel 8086支持____1MB _______容量主存空间,80486支持____4GB _______容量主存空间。
(3)二进制16位共有_____ 216______个编码组合,如果一位对应处理器一个地址信号,16位地址信号共能寻址_____64KB ______容量主存空间。 〔习题1.4〕
说明微型计算机系统的硬件组成及各部分作用。 〔解答〕
CPU:CPU也称处理器,是微机的核心。它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。
存储器:存储器是存放程序和数据的部件。
外部设备:外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。I/O设备通过I/O接口与主机连接。
总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。 〔习题1.10〕
冯·诺依曼计算机的基本设计思想是什么? 〔解答〕
采用二进制形式表示数据和指令。指令由操作码和地址码组成。
将程序和数据存放在存储器中,计算机在工作时从存储器取出指令加以执行,自动完成计算任务。这就是“存储程序”和“程序控制”(简称存储程序控制)的概念。
指令的执行是顺序的,即一般按照指令在存储器中存放的顺序执行,程序分支由转移指令实现。
计算机由存储器、运算器、控制器、输入设备和输出设备五大基本部件组成,并规定了5部分的基本功能。 〔习题1.14〕
说明高级语言、汇编语言、机器语言三者的区别,谈谈你对汇编语言的认识。 〔解答〕
高级语言与具体的计算机硬件无关,其表达方式接近于所描述的问题,易为人们接受和掌握,用高级语言编写程序要比低级语言容易得多,并大大简化了程序的编制和调试,使编程效率得到大幅度的提高。而汇编语言是为了便于理解与记忆,将机器指令用助记符代替而形成的一种语言。汇编语言的语句通常与机器指令对应,因此,汇编语言与具体的计算机有关,属于低级语言。它比机器语言直观,容易理解和记忆,用汇编语言编写的程序也比机器语言易阅读、易排错。机器语言的每一条机器指令都是二进制形式的指令代码,计算机硬件可以直接识别。高级语言程序通常也需要翻译成汇编语言程序,再进一步翻译成机器语言代码。
第2章 处理器结构
〔习题2.1〕简答题
(1) ALU是:算术逻辑运算单元,负责处理器所能进行的各种运算,主要是算术运
算和逻辑运算。
(2)8086的取指为什么可以被称为指令预取:取指是指从主存取出指令代码通过总
线传输到处理器内部指令寄存器的过程。8086分成总线接口单元和指令执行单
元,可以独立操作。在执行单元执行一条指令的同时,总线接口单元可以读取下一条指令,等到执行时不需要进行取指了,所以称为预取。
(4)堆栈的存取原则是:堆栈的存取原则是先进后出(也称为后进先出)操作方式存
取数据。
(5)标志寄存器主要保存哪方面的信息:标志寄存器主要保存反映指令执行结果和控
制指令执行形式的有关状态。
(6)执行了一条加法指令后,发现ZF=1,说明结果是:执行了一条加法指令后,发
现ZF=1,表明运算结果为0。
(8)汇编语言的标识符大小写不敏感意味着:汇编语言的标识符大小写不敏感,即表
示字母大小写不同、但表示同一个符号。
(9)汇编语言源程序文件中,END语句后的语句会被汇编吗?: 不会。
(10)为什么将查找操作数的方法称为数据寻“址”方式:指令的操作数需要通过存
储器地址或I/O地址,才能查找到数据本身,故称数据寻址方式。 〔习题2.2〕判断题
(1)(×)程序计数器PC或指令指针EIP寄存器属于通用寄存器。
(2)(√)处理器的指令译码是将指令代码翻译成它代表的功能的过程,与数字电路
- -2
的译码器是不同的概念。
(4)(√)处理器的传送指令MOV属于汇编语言的执行性语句。
(5)(×)汇编语言的语句由明显的4部分组成,不需要分隔符区别。
(6)(√)80减90(80-90)需要借位,所以执行结束后,进位标志CF=1。 (7)(√)MASM汇编语言的注释用分号开始,但不能用中文分号。 (8)(×)IA-32处理器在实地址方式下,不能使用32位寄存器。 (9)(√)存储器寻址方式的操作数当然在主存了。
(10)(√)保护方式下,段基地址加偏移地址就是线性地址或物理地址。 〔习题2.3〕填空题
(1)寄存器EDX是_____32_____位的,其中低16位的名称是_____ DX _____,还可
以分成两个8位的寄存器,其中D8~D15部分可以用名称_____ DH _____表示。 (2)IA-32处理器在保护方式下,段寄存器是__16_位的。
(3)逻辑地址由_____段地址_____和_____偏移地址_____两部分组成。代码段中下一
条要执行的指令由CS和_____ EIP _____寄存器指示,后者在实地址模型中起作用的仅有____ IP ______寄存器部分。
(4)进行8位二进制数加法:10111010+01101100,8位结果是__00100110___,标
志PF=_____0_____。 (6)IA-32处理器有8个32位通用寄存器,其中EAX,_____ EBX _____,______ ECX ____和EDX,可以分成16位和8位操作;还有另外4个是_____ ESI _____,____ EDI ______,___ EBP _______,和_____ ESP _____。
(8)MASM要求汇编语言源程序文件的扩展名是____ ASM _________,汇编产生扩展名为OBJ的文件被称为_______目标模块______文件,编写32位Windows应用程序应选择______ FLAT _______存储模型。
(9)除外设数据外的数据寻址方式有3类,分别被称为____立即数寻址_________、____寄存器寻址_________和_____存储器寻址________。
(10)用EBX做基地址指令,默认采用___ DS _______段寄存器指向的数据段;如果
采用BP,EBP或SP,ESP作为基地址指针,默认使用____ SS ______段寄存器指向堆栈段。 〔习题2.4〕
处理器内部具有哪3个基本部分?8086分为哪两大功能部件?其各自的主要功能是什么? 〔解答〕
处理器内部有ALU、寄存器和指令处理三个基本单元。 8086有两大功能部件:总线接口单元和执行单元。 总线接口单元:管理着8086与系统总线的接口,负责处理器对存储器和外设进行访问。
8086所有对外操作必须通过BIU和这些总线进行。
执行单元EU:负责指令译码、数据运算和指令执行。 〔习题2.6〕
什么是标志?什么是IA-32处理器的状态标志、控制标志和系统标志?说明状态标志在标志寄存器EFLAGS的位置和含义。 〔解答〕
标志:用于反映指令执行结果或控制指令执行形式的一个或多个二进制数位。例如,
- -3
有些指令执行后会影响有关标志位;有些指令的执行要利用相关标志。 状态标志:用来记录程序运行结果的状态信息。 控制标志:DF标志,控制字符串操作的地址方向。 系统标志:用于控制处理器执行指令的方式。
状态标志在标志寄存器EFLAGS中的位置和含义如下:
31 …… 11 OF 10 9 8 7 SF 6 ZF 5 4 AF 3 2 PF 1 0 CF
〔习题2.12〕
汇编语句有哪两种,每个语句由哪4个部分组成? 〔解答〕
汇编语句有两种:执行性语句(处理器指令)、说明性语句(伪指令)。 每个语句有:标号、指令助记符、操作数或参数、注释4个部分组成。 〔习题2.13〕
汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。 〔解答〕
汇编语言程序的开发有4个步骤:
编辑:用文本编辑器形成一个以ASM为扩展名的源程序文件。 汇编:用汇编程序将ASM文件转换为OBJ模块文件。
连接:用连接程序将一个或多个目标文件链接成一个EXE或COM可执行文件。 调试:用调试程序排除错误,生成正确的可执行文件。 〔习题2.14〕
MASM汇编语言中,下面哪些是程序员可以使用的正确的标识符。 FFH,DS,0xvab,Again,next,@data,h_ascii,6364b,.exit,small 〔解答〕
FFH,Again,next,h_ascii 〔习题2.16〕
说明下列指令中源操作数的寻址方式?假设VARD是一个双字变量。 (1)mov edx,1234h ① 立即数 (2)mov edx,vard ② 直接 (3)mov edx,ebx ③ 寄存器
(4)mov edx,[ebx] ④ 寄存器间接 (5)mov edx,[ebx+1234h] ⑤ 寄存器相对 (6)mov edx,vard[ebx] ⑥ 寄存器相对 (7)mov edx,[ebx+edi] ⑦ 基址变址
(8)mov edx,[ebx+edi+1234h] ⑧ 相对基址变址 (9)mov edx,vard[esi+edi] ⑨ 相对基址变址 (10)mov edx,[ebp*4] ⑩ 带比例寻址
- -4
第3章 数据处理
〔习题3.2〕判断题
(1)(√)对一个正整数,它的原码、反码和补码都一样,也都与无符号数的编码一样。
(2)(√)常用的BCD码为8421 BCD码,其中的8表示D3位的权重。 (3)(√)IA-32处理器采用小端方式存储多字节数据。 (4)(×)空操作NOP指令其实根本没有指令。
(5)(×)堆栈的操作原则是“先进后出”,所以堆栈段的数据除PUSH和POP指
令外,不允许其他方法读写。
(6)(√)虽然ADD指令和SUB指令执行后会影响标志状态,但执行前的标志并不
影响它们的执行结果。
(8)(×)无符号数在前面加零扩展,数值不变;有符号数前面进行符号扩展,位数
加长一位、数值增加一倍。 〔习题3.3〕填空题
(1)定义字节变量的伪指令助记符是_______ BYTE ______,获取变量名所具有的偏
移地址的操作符是______ OFFSET _______。
(2)计算机中有一个“01100001”编码。如果把它认为是无符号数,它是10进制数
_____97______;如果认为它是BCD码,则表示真值______61_______;又如果它是某个ASCII码,则代表字符_____小写字母a _____。 (4)数据段有语句“H8843 DWORD 99008843H”,代码段指令“MOV CX, WORD PTR
H8843”执行后,CX=_____8843H________。 (5)用DWORD定义的一个变量XYZ,它的类型是_______ DWORD ______,用“TYPE
XYZ”会得到数值为______4_______。如果将其以字量使用,应该用______ WORD PTR XYZ _______说明。 (7)例题3-9的TAB定义如果是“1234567890”,则显示结果是_____78894111_____。 (8)指令“XOR EAX, EAX”和“SUB EAX, EAX”执行后,EAX=_____ 0_____,
CF=OF=_____ 0_____。而指令“MOV EAX, 0”执行后,EAX=_____ 0_____,CF和OF没有变化。
(10)欲将EDX内的无符号数除以16,使用指令“SHR EDX, _____4_____”,其中
后一个操作数是一个立即数。 〔习题3.4〕
下列十六进制数表示无符号整数,请转换为十进制形式的真值: ① FFH → 255 ③ 5EH → 94 〔习题3.5〕
将下列十进制数真值转换为压缩BCD码: ② 24 → 24H ④ 99 → 99H 〔习题3.7〕
将下列十进制数用8位二进制补码表示:
② 127 → 01111111 ④ -57 → 11000111
- -5
〔习题3.10〕
设置一个数据段,按照如下要求定义变量或符号常量:
① my1b为字符串变量:Personal Computer my1b byte 'Personal Computer'
③ my3b为用十六进制数表示的字节变量:20
my3b
my5w
byte 14h word 20 dup(?)
⑤ my5w为20个未赋值的字变量 〔习题3.15〕
数据段有如下定义,IA-32处理器将以小端方式保存在主存:
var
dword 12345678h
现以字节为单位按地址从低到高的顺序,写出这个变量内容。并说明如下指令的执行结果:
mov eax,var mov bx,var mov cx,var+2 mov dl,var mov dh,var+3
; EAX=12345678H ; BX=5678H ; CX=1234H ; DL=78H ; DH=12H
可以编程使用十六进制字节显示子程序DSIPHB顺序显示各个字节进行验证,还可以使用十六进制双字显示子程序DSIPHD显示该数据进行对比。 〔习题3.18〕
已知数字0~9对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H;请为如下程序的每条指令加上注释,说明每条指令的功能和执行结果。
table
; 数据段
byte 18h,34h,05h,06h,09h,0ah,0ch,11h,12h,14h ; 代码段
mov ebx,offset table mov al,8 xlat
为了验证你的判断,不妨使用本书的I/O子程序库提供的子程序DISPHB显示换码后AL的值。如果不使用XLAT指令,应如何修改? 〔解答〕
table
; 数据段
byte 18h,34h,05h,06h,09h,0ah,0ch,11h,12h,14h ; 定义格雷码表 ; 代码段
mov ebx,offset table ; EBX=格雷码表首地址 mov al,8 ; AL=8 xlat ; AL=12H(8的格雷码) mov ebx,offset table mov eax,0 mov al,8 mov al,[eax+ebx]
; EBX=格雷码表首地址 ; AL=8
; AL=12H(8的格雷码)
不使用XLAT指令:
〔习题3.20〕
分别执行如下程序片断,说明每条指令的执行结果:
- -6
(1)
mov eax,80h add eax,3 add eax,80h adc eax,3
; EAX=80H
; EAX=83H,CF=0,SF=0 ; EAX=103H,CF=0,OF=0 ; EAX=106H,CF=0,ZF=0 ; EAX=100 ; EAX=300,CF=0
(2)
mov eax,100 add ax,200
〔习题3.21〕
给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:
mov al,89h add al,al add al,9dh cmp al,0bch sub al,al dec al inc al mov al,89h add al,al add al,9dh cmp al,0bch sub al,al dec al inc al
; AL=89H ; AL=12H ; AL=0AFH ; AL=0AFH ; AL=00H ; AL=0FFH ; AL=00H
CF ZF 1 0 0 0 1 0 0 1 0 0 0 1
SF 0 1 1 0 1 0
OF 1 0 0 0 0 0
PF 1 1 1 1 1 1
〔解答〕
〔习题3.23〕
分别执行如下程序片断,说明每条指令的执行结果: (2)
mov eax,1010b shr eax,2 shl eax,1
EAX=1010B(可以有前导0,下同) EAX=0010B,CF=1 EAX=0100B,CF=0
and eax,3 EAX=0000B,CF=0
EAX=1011B(可以有前导0,下同) EAX=101100B,CF=0 EAX=10110B,CF=0 EAX=10111B,CF=0
(3)
mov eax,1011b rol eax,2 rcr eax,1 or eax,3
〔习题3.28〕
编程将一个压缩BCD码变量(例如92H)转换为对应的ASCII码,然后调用DISPC子程序(在输入输出子程序库中)显示。 〔解答〕
bcd
; 数据段 byte 92h ; 代码段 mov al,bcd
- -7
shr al,4 add al,30h call dispc mov al,bcd and al,0fh add al,30h call dispc
第4章 汇编语言程序设计
〔习题4.2〕判断题
(2)(×)JMP指令对应高级语言的GOTO语句,所以不能使用。
(3)(×)因为条件转移指令Jcc要利用标志作为条件,所以也影响标志。
(4)(×)JA和JG指令的条件都是“大于”,所以是同一个指令的两个助记符。 (5)(×)控制循环是否结束只能在一次循环结束之后进行。 〔习题4.3〕填空题
(2)假设在平展存储模型下,EBX=1256H,双字变量TABLE的偏移地址是20A1H,
线性地址32F7H处存放3280H,执行指令“JMP EBX” 后EIP=_____1256H _____,执行指令“JMP TABLE[EBX]”后EIP=____3280H ______。 (3)“CMP EAX,3721H”指令之后是JZ指令,发生转移的条件是EAX=_____3721H
_____,此时ZF=_____1_____。 (5)循环结构程序一般有三个部分组成,它们是_____循环初始_____,循环体和_____
循环控制_____部分。 〔习题4.7〕
将例题4-4程序修改为实现偶校验。建议进一步增加显示有关提示信息的功能,使得程序具有更加良好的交互性。 〔解答〕
include io32.inc .data
msg1 byte 'Please input a character: ',0
msg2 byte 'The ASCII code of the charater you entered is: ',0 msg3 byte 'The code with even parity is: ',0 .code start: mov eax,offset msg1 call dispmsg call readc call dispcrlf mov ebx,eax mov eax,offset msg2 call dispmsg mov eax,ebx call dispbb call dispcrlf and al,7fh jp next or al,80h
- -8
next: mov ebx,eax mov eax,offset msg3 call dispmsg mov eax,ebx call dispbb exit 0 end start 〔习题4.10〕
编程,首先测试双字变量DVAR的最高位,如果为1,则显示字母“L”;如果最高位不为1,则继续测试最低位,如果最低位为1,则显示字母“R”;如果最低位也不为1,则显示字母“M”。 〔解答〕
dvar
nextl:
nextr: done:
; 数据段 dword 57h ; 代码段
mov eax,dvar
test eax,80000000h jnz nextl test eax,1 jnz nextr mov al,'M' jmp done mov al,'L' jmp done mov al,'R' call dispc
〔习题4.13〕
编程中经常要记录某个字符出现的次数。现编程记录某个字符串中空格出现的次数,结果保存在SPACE单元。 〔解答〕
string space
again:
next:
done:
; 数据段
byte 'Do you have fun with Assembly ?',0 ;以0结尾的字符串 dword ? ; 代码段
mov esi,offset string xor ebx,ebx ;EBX用于记录空格数 mov al,[esi] cmp al,0 jz done cmp al,20h ;空格的ASCII码是20H jne next ;不相等、不是空格,转移 inc bx ;相等、是空格,空格个数加1 inc esi jmp again ;继续循环 mov space,ebx ;保存结果
〔习题4.19〕
请按如下说明编写子程序:
- -9
子程序功能:把用ASCII码表示的两位十进制数转换为压缩BCD码 入口参数:DH=十位数的ASCII码,DL=个位数的ASCII码 出口参数:AL=对应BCD码 〔解答〕
asctob
asctob
proc
shl dh,4 mov al,dh and dl,0fh or al,dl ret endp
第5章 微机总线
〔习题5.3〕填空题
(2)8086有3个最基本的读写控制信号,它们是M/IO,___读RD__和__写WR_____。 (9)Pentium的3个最基本的读写控制引脚是M/IO,__ D/C,_和_ W/R____。
第6章 存储系统
〔习题6.2〕判断题
(5)(√)微机大容量主存一般采用DRAM芯片组成。
(6)(×)部分译码可以简化译码电路,不会减少可用的存储空间。
(7)(×)存储系统每次给DRAM芯片提供刷新地址,被选中的芯片上所有单元都
刷新一遍。 〔习题6.3〕填空题
(1)计算机存储容量的基本单位:1 B(Byte)=____8____b(bits),1KB=
_____1024_____B,1MB=_____1024_____KB,1GB=_____1024_____MB,1TB
40
=_____1024_____GB=_____2_____B。
(3)在半导体存储器中,RAM指的是_____随机存取存储器_____,它可读可写,但
断电后信息一般会_____丢失_____;而ROM指的是____只读存储器______,正常工作时只能从中_____读取_____信息,但断电后信息____不会丢失______。 (4)存储结构为8K×8位的EPROM芯片2764,共有_____8_____个数据引脚、
_____13_____个地址引脚。用它组成64KB的ROM存储区共需_____8_____片芯片。
(5)对一个存储器芯片进行片选译码时,有一个高位系统地址信号没有参加译码,则
该芯片的每个存储单元占有_____2_____个存储器地址。
(6)半导体_____(UV-)EPROM _____芯片顶部开有一个圆形石英窗口。U盘、MP3
播放器、数码相机、多媒体手机等设备一般采用半导体_____ Flash Memory _____芯片构成存储器。
(7)在8088处理器系统中,假设地址总线A19~A15输出01011时译码电路产生一
个有效的片选信号。这个片选信号将占有主存从_____58000H _____到_____5FFFFH _____的物理地址范围,共有_____32KB_____容量。
- -10
〔习题6.6〕
在半导体存储器件中,什么是SRAM、DRAM和NVRAM? 〔解答〕
SRAM是:静态读写存储器芯片,它以触发器为基本存储单元,以其两种稳定状态表示逻辑0和逻辑1。
DRAM是:动态读写存储器芯片,它以单个MOS管为基本存储单元,以极间电容充放电表示两种逻辑状态,需要不断刷新保持信息正确。 NVRAM多指: 带有后备电池的SRAM芯片,这种芯片采用CMOS制造工艺设计以减少用电。 〔习题6.9〕
什么是掩摸ROM、OTP-ROM、EPROM、EEPROM和Flash ROM? 〔解答〕
掩膜ROM:通过掩膜工艺、将要保存的信息直接制作在芯片当中,以后再也不能更改。 OTP-ROM:该类芯片出厂时存储的信息为全“1”,允许用户进行一次性编程,此后便不能更改。
EPROM:一般指可用紫外光擦除、并可重复编程的ROM。
EEPROM:也常表达为E2PROM,其擦除和编程(即擦写)通过加电的方法来进行,可实现“在线编程”和“在应用编程”
Flash ROM:是一种新型的电擦除可编程ROM芯片,能够很快擦除整个芯片内容。
第7章 输入输出接口
〔习题7.2〕判断题
(1)(√)处理器并不直接连接外设,而是通过I/O接口电路与外设连接。 (2)(√)I/O接口的状态端口通常对应其状态寄存器。
(3)(√)I/O接口的数据寄存器保存处理器与外设间交换的数据,起着数据缓冲作
用。
(4)(×)IA-32处理器的64K个I/O地址也像存储器地址一样分段管理。
(5)(×)指令“OUT DX,AX”的两个操作数均采用寄存器寻址方式,一个来自处
理器、一个来自外设。
(8)(×)中断传送方式下由硬件实现数据传送不需要处理器执行IN或OUT指令。 (10)(×)某个外设中断通过中断控制器IR引脚向处理器提出可屏蔽中断,只要处
理器开中断就一定能够响应。 〔习题7.3〕填空题
(1)计算机能够直接处理的信号是数字量,开关量_和_脉冲量___形式。 (4)指令“IN AL, 21H”的目的操作数是__寄存器___寻址方式,源操作数是__
I/O地址的直接寻址___寻址方式。 (5)指令“OUT DX, EAX”的目的操作数是__ I/O地址的间接寻址___寻址方式,
源操作数是__寄存器___寻址方式。
(6)DMA的意思是__直接存储器存取___,主要用于高速外设和主存间的数据
传送。进行DMA传送的一般过程是:外设先向DMA控制器提出__ DMA请求___,DMA控制器通过__总线请求___信号有效向处理器提出总线请求,处理器回以__总线响应___信号有效表示响应。此时处理器的三态信号线将
- -11
输出__高阻___状态,即将它们交由__ DMAC(DMA控制器)___进行控制,完成外设和主存间的直接数据传送。
(7)在IA-32处理器中0号中断被称为__除法错___中断,外部非屏蔽中断是
__2___号中断。
(8)IA-32处理器在开中断状态,其标志IF=__1___。指令__STI___是开
中断指令,而关中断指令是__CLI___,关中断时IF=__0___。 ①、、 〔习题7.4〕
一般的I/O接口电路安排有哪三类寄存器?它们各自的作用是什么? 〔解答〕
① 数据寄存器
保存处理器与外设之间交换的数据。 ② 状态寄存器
保存外设当前的工作状态信息。处理器通过该寄存器掌握外设状态,进行数据交换。 ③ 控制寄存器
保存处理器控制接口电路和外设操作的有关信息。处理器向控制寄存器写入控制信息,选择接口电路的不同工作方式和与外设交换数据形式。 〔习题7.5〕
什么是I/O独立编址和统一编址,各有什么特点? 〔解答〕
独立编址是:将I/O端口单独编排地址,独立于存储器地址。
统一编址是:将I/O端口与存储器地址统一编排,共享一个地址空间。
端口独立编址方式,处理器除要具有存储器访问的指令和引脚外,还需要设计I/O访问的I/O指令和I/O引脚,其优点是:不占用存储器空间;I/O指令使程序中I/O操作一目了然;较小的I/O地址空间使地址译码简单。但I/O指令功能简单,寻址方式没有存储器指令丰富。
统一编址方式,处理器不再区分I/O口访问和存储器访问。其优点是:处理器不用设计I/O指令和引脚,丰富的存储器访问方法同样能够运用于I/O访问。缺点是:I/O端口会占用存储器的部分地址空间,通过指令不易辨认I/O操作。 〔习题7.6〕
简述主机与外设进行数据交换的几种常用方式。 〔解答〕
主机与外设进行数据交换的几种常用方式:
① 无条件传送方式,常用于简单设备,处理器认为它们总是处于就绪状态,随时进行数据传送。
② 程序查询方式:处理器首先查询外设工作状态,在外设就绪时进行数据传送。 ③ 中断方式:外设在准备就绪的条件下通过请求引脚信号,主动向处理器提出交换数据的请求。处理器无其他更紧迫任务,则执行中断服务程序完成一次数据传送。 ④ DMA传送: DMA控制器可接管总线,作为总线的主控设备,通过系统总线来控制存储器和外设直接进行数据交换。此种方式适用于需要大量数据高速传送的场合。
- -12
〔习题7.8〕
现有一个输入设备,其数据端口地址为FFE0H,状态端口地址为FFE2H。当状态标志D0=1时,表明一个字节的输入数据就绪。请编写利用查询方式进行数据传送的程序段,要求从该设备读取100个字节保存到BUFFER缓冲区。 〔解答〕
again: status:
mov bx, offset buffer mov cx,100 mov dx,0ffe2h in al,dx ; 查询一次 test al,01h jz status
mov dx,0ffe0h in al,dx ; 输入一个字节 mov [bx],al inc bx
loop again ; 循环,输入100个字节
第8章 常用接口技术
〔习题8.2〕判断题
(1)(√)称为定时器也好,称为计数器也好,其实它们都是采用计数电路实现的。 (2)(√)计数可以从0开始逐个递增达到规定的计数值,也可以从规定的计数值开
始逐个递减恢复到0;前者为加法计数器,后者是减法计数器;8253/8254采用后者。 〔习题8.3〕填空题
(1)8253芯片上有_____3_____个_____16_____位计数器通道,每个计数器有
____6______种工作方式可供选择。若设定某通道为方式0后,其输出引脚OUT为____低_____电平;当_____写入计数初始值_____后通道开始计数,_____CLKO_____信号端每来一个脉冲_____计数值_____就减1;当____计数值减为0_____,则输出引脚输出_____高_____电平,表示计数结束。
(2)假设某8253的CLK0接1.5MHz的时钟,欲使OUT0产生频率为300kHz的方波
信号,则8253的计数值应为_____5_____,应选用的工作方式是_____3_____。 (3)8255具有____24______个外设数据引脚,分成3个端口,引脚分别是____ PA0~
PA7______,____ PB0~PB7______和____ PC0~PC7______。
(4)8255的A和B端口都定义为方式1输入,端口C上半部分定义为输出,则方式
控制字是____B6H或B7H_____,其中D0位已经没有作用、可为0或1。 〔习题8.6〕
试按如下要求分别编写8253的初始化程序,已知8253的计数器0~2和控制字I/O地址依次为204H~207H。
① 使计数器1工作在方式0,仅用8位二进制计数,计数初值为128。 ② 使计数器0工作在方式1,按BCD码计数,计数值为3000。 〔解答〕
①
mov al,50h mov dx,207h
- -13
out dx,al mov al,128 mov dx,205h out dx,al
; =80h
②
mov al,33h mov dx,207h out dx,al mov ax,3000h mov dx,204h out dx,al mov al,ah out dx,al
; 不是3000
〔习题8.12〕
有一工业控制系统,有四个控制点,分别由四个对应的输入端控制,现用8255的端口C实现该系统的控制,如本题图形。开关K0~K3打开则对应发光二极管L0~L3亮,表示系统该控制点运行正常;开关闭合则对应发光二极管不亮,说明该控制点出现故障。编写8255的初始化程序和这段控制程序。 〔解答〕
; 写入方式字
mov al,100×00×1b ; =81H(×表示任意,可以填写为0,也可以为1) mov dx,控制口地址 ; 可以假设为0FFFEH out dx,al
;加入下一段更好,使L0~L3全亮 mov al,0fh
mov dx,端口C地址 ; 可以假设为0FFFCH out dx,al ;控制程序段
mov dx,端口C地址 ; 可以假设为0FFFCH in al,dx ; 读入PC0~PC3 mov cl,4 shl al,cl ; 左移4位 out dx,al ; 控制PC4~PC7
答案2: 8255的端口A﹑B﹑C和控制字寄存器的地址依次为60H—63H,编程序
使A口工作方式0输出,B口工作方式0输出,从C口的低四位(PCO-PC3)读入数据,并将数据输出到C口的高四位(PC4-PC7) Mov AL,91H,10010001B OUT 63H, AL IN AL, 62H SHL AL, 4 OUT 62H, AL
- -14
因篇幅问题不能全部显示,请点此查看更多更全内容