微机原理第四章
- 格式:docx
- 大小:19.13 KB
- 文档页数:9
第4章 8086/8088的总线与时序4.1 8086/8088的引线及功能8086是16位微处理器;8088是准16位微处理器,它对外的数据线是8位的。
它们的地址线是20位的。
8086/8088均为40条引线、双列直插式封装。
它们的40条引线排列如图4-1所示。
为了能在有限的40条引线范围内进行工作,CPU内部设置了若干个多路开关,使某些引线具有多种功能,这些多功能引线的功能转换分两种情况:一种是分时复用,在总线周期的不同时钟周期内引线的功能不同;另一种是按组态来定义引线的功能.用8088微处理器构成系统时,根据系统所连接的存储器和外设的规模,8088可以有两种不同的组态。
在不同组态时有些引线的名称及功能不同。
最小组态:当用8088微处理器构成一个较小的系统时,所连的存储器容量不大,I/O端口也不多,若把MN/MX 引线接电源(+5V),则8088处于最小组态;最大组态:若构成的系统较大,要求有较强的驱动能力,要通过一个总线控制器来产生各种控制信号。
把引线MN/MX接地,则8088处于最大组态。
所有的微处理器都有以下几类引线用来输出或接收各种信号:●地址线、●数据线、●控制线和状态线、●电源和定时线。
8086/8088的40条引线包括以上4种信号,下面介绍各条引线的功能。
4.1.1的地址和数据线●A D7~AD0:低8位地址/数据线(输入/输出,三态)。
8088数据线是8位的,地址线是20位的,为减少引线的数量于是在8088 内部采用一些多路开关,把低8位地址线和8位数据线分时使用这些引线。
通常当CPU访问存储器或外设时,先要送出所访问单元或外设端口的地址,然后才是读写所需的数据,地址和数据在时间上是可区分的。
只要在外部电路中用一个地址锁存器,把在这些线上先出现的地址锁存下来就可以了。
●A15~A8:地址线(输出,三态)。
这8条地址线是在8088内部锁存的,在访问存储器或外设时输出8位地址。
●A19~A16/S6~S3:地址/状态线(输出,三态)。
微机原理第四章在微机原理的学习中,第四章是一个非常重要的环节,本章主要介绍微机的输入输出系统。
输入输出系统是微机系统中的一个重要组成部分,其功能是将外部设备与微机系统相连,并进行数据的输入和输出。
本章将从输入输出系统的基本原理、输入输出接口、输入输出设备等方面进行介绍,帮助读者全面了解微机的输入输出系统。
首先,我们来介绍一下输入输出系统的基本原理。
输入输出系统是微机系统与外部设备进行数据交换的桥梁,它的主要功能是实现数据的输入和输出。
在微机系统中,CPU通过输入输出系统与外部设备进行通信,实现数据的交换和传输。
输入输出系统一般由输入输出接口和输入输出设备两部分组成,输入输出接口是连接CPU 和输入输出设备的桥梁,输入输出设备是实现数据输入输出功能的设备。
其次,我们将介绍输入输出接口的相关知识。
输入输出接口是连接CPU和输入输出设备的关键部件,它起着数据传输和转换的作用。
输入输出接口一般由接口芯片和接口电路组成,接口芯片是实现数据传输和控制的核心部件,接口电路是实现数据转换和信号调节的重要部分。
在微机系统中,输入输出接口起着非常重要的作用,它直接影响着输入输出系统的性能和稳定性。
接着,我们将介绍一些常见的输入输出设备。
输入输出设备是实现数据输入输出功能的设备,常见的输入设备有键盘、鼠标、扫描仪等,常见的输出设备有显示器、打印机、音响等。
输入输出设备在微机系统中起着非常重要的作用,它们直接影响着用户与微机系统的交互体验。
在选择输入输出设备时,需要根据实际需求和使用环境进行合理选择,以确保输入输出系统的正常运行和高效工作。
最后,我们将介绍一些输入输出系统的优化方法。
在实际应用中,为了提高输入输出系统的性能和稳定性,可以采取一些优化措施,例如优化接口设计、优化设备选择、优化数据传输方式等。
通过合理的优化措施,可以有效提高输入输出系统的工作效率和响应速度,提升用户体验和系统稳定性。
综上所述,微机原理第四章主要介绍了微机的输入输出系统,包括输入输出系统的基本原理、输入输出接口、输入输出设备和优化方法等内容。
第四章
课后习题
4.3 什么是指示性语句,它和指令有什么区别
指示性语言是指与CPU的指令直接对应的助记符
而指令是有汇编开发系统识别和处理的助记符前者是不被汇编开发系统处理的助记符.
4.4 画出下列语句的数据在存储器中的存储情况ARRAYB DB 12,34H,’ABCD’,2, DUP(?,2)
ARRAYB DW 1234H,’AB’,’CD’,?,2 DUP(?,2)
4.5 求DLENGTH的值是多少
DATA1DW?
DATA2DB32DUP(?)
DATA3DD?
DLENGTH EQU$-DATA1
解:DLENGTH=38=26H
4.6在某程序中需要为一个变量BUF预留500个字节的存储空间,请写出相应的指令,如果要预留500个字的存储空间呢?
解:
DATA1 DB 500 DUP(?)
ADTA2 DW 500 DUP(?)
4.7程序定义如下
BUFFERB DB‘ABCDEF’
RESULT DB?
BUFFERW DW30DUP(?)
写出运行结果:
MOV AX,TYPE RESULT;AX=1
MOV BX,TYPE BUFFERW;BX=2
MOV CX,LENGTH BUFFERB;CX=1
MOV DX,LENGTH BUFFERW;DX=30
MOV AX,SIZE RESULT;AX=1
MOV BX,SIZE BUFFERW;BX=60
4.9
LENG表示符号值等于2
4.11
设BX=1103H,则执行下列指令后AX和CX各为多少?若BX=03H,则结果又如何?
MOV AX,BX AND0FFH
MOV CX,BX EQ1103H
解:
BX=1103H
AX=0003H,CX=0FFFFH
BX=03H
AX=0003H,CX=0
4.12
MOV AX,X
SBB A,Y
MOV BX,10
IDIV BX
MOVBX,4
MUL BX
MOV Z,AX
4.14
XOR BX,BX
MOV CX,10
LOP:MOV AH,01H
INT21H
SUB AL,30H
MOV DL,AL
MOV AX,BX
ADD AL,DL
AAA
MOV BX,AX
LOOP LOP
4.17
4. 13. 设A,B是长度为10的字节数组,用串操作指令编写程序实现AB两数组内容的相互交换,试完善本程序。
DATA SEGMENT
A DB1,2,3,4,5,6,7,8,9,0AH
DRG OO10H
B DB 0AH,9,8,7,6,5,4,3,2,1
DATA ENDS
…
LEA SI,A
LEA DO,B
MOV CX,10
LOP:LODSB
XCHG AL,[DI]
DEC DI
STOSB
INC DI
LOOP LOP
解:
XCHG SI, DI
XCHG SI, D
4.18
将内存中某数据块的正数和负数分开,并分别将这些正数和负数送同一数据段的两个缓冲区中,并在屏幕上显示正数和负数的个数。
DATA SEGMENT
BUF DB 12,15,-2,3,-7,-8,19,-25
N=$-BUF
BUF1 DB N DUP(?) ;存放正数
BUF2 DB N DUP(?) ;存放负数
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA BX,BUF ;BX指向BUF
LEA SI,BUF1 ;SI指向存放正数的缓冲区BUF1
LEA DI,BUF2 ;DI指向存放负数的缓冲区BUF2
MOV CX,N ;循环N次
MOV DX,0 ;DH表示负数的个数,DL表示正数的个数,都清零 CYCLE: MOV AL,[BX] ;将BX指向的数送给AL
CMP AL,0 ;比较AL与0的大小
JG GREAT ;AL>0,则转移至GREAT
MOV [DI],AL ;AL<=0,将AL存入负数的数组
INC DH ;负数的个数加1
INC DI ;DI指向下一个负数
JMP NEXT
GREAT: MOV [SI],AL ;AL>0,将AL存入正数的数组
INC DL ;正数的个数加1
INC SI ;SI指向下一个负数
NEXT: INC BX ;判断下一个数
LOOP CYCLE
ADD DL,30H ;将正数的个数变成字符输出
MOV AH,2
INT 21H
ADD DH,30H ;将负数的个数变成字符输出
MOV DL,DH
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
4.20
现有一子程序:
SUB1PROC
TEST AL,80H
JE PLUS
TEST BL,80H
JNE EXITO
JMP XCHANGE
PLUS:TEST BL,80H
JE EITO
XCHANGE:XCHG AL,BL
EWITO:RET
SUB1ENDP
试回答:
(1)子程序的功能是什么?
(2)如调用子程序前AL=9AH,BL=77H,那么返回主程序时,AL=?BL=?解:
(1) 测试AL, BL两数的符号,如为同号直接返回,如为异号,则AL与BL交换
(2) AL=77H, BL=9AH
4.21
作用
1、DOS键盘功能调用
2、DOS显示功能调用
3、DOS打印功能
4、DOS串行口通信功能调用
区别
bios是主板预装好的input、output系统,而dos是需要安装才能使用操作系统。
用int条用中断以后可以通过不同的系统达到不同的目的和效果。
其中int 1 -20 是bios中断,int21 专门用于dos 中断
4.24
ATA SEGMENT
NUMBER DB ?;存放统计数据,在程序退出以前可以在此看到统计数据,若对程序才算对
STR1 DB 'ASDAASZXCFGRSAAXADRRAT$';可以自己随便定义,注意以$结尾
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA;给数据段赋值
MOV DS,AX
LEA SI,STR1;字符串首地址
MOV BL,0;存放统计个数的寄存器赋初值LOOP1:
MOV CL,[SI];取数据
INC SI
CMP CL,'$';看是否是结尾
JE EXIT ;是,退出
CMP CL,'A' ;不是结尾,比较是否是‘A’
JNE NEXT ;不是'A'比较下一个
INC BL ;是,统计数加1
next: JMP LOOP1
EXIT:MOV NUMBER,BL;将统计数送往存储区
MOV AH,4CH
INT 21H
CODE ENDS END START。