自考 02241 工业用微型计算机 重要知识点Word格式.docx
《自考 02241 工业用微型计算机 重要知识点Word格式.docx》由会员分享,可在线阅读,更多相关《自考 02241 工业用微型计算机 重要知识点Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
(2)二进制数转换为十进制数,对所给的二进制数,只要按前述的式(2-2)展开,即可得到对应的十进制数。
1011.1010B=1×
23+1×
21+1×
20+1×
+1×
=11.625
(3)十进制整数转换为二进制数,把十进制整数转换为二进制数,一般采用除2取余法。
只要决定
的值,就可写出二进制数,因为20=1,所以(215-20)一定是2的整数倍,215÷
2所得的余数即为X0。
其转换过程为
215÷
2=107(商),余数=1=x0;
107÷
2=53(商),余数=1=x1;
53÷
2=26(商),余数=1=x2;
26÷
2=13(商),余数=1=x3;
13÷
2=6(商),余数=1=x4;
6÷
2=3(商),余数=1=x5;
3÷
2=1(商),余数=1=x6;
1÷
2=0(商),余数=1,商为0,转换结束。
故215D=11010111B。
(4)十进制整数转换为十六进制数,同转换为二进制数的道理一样,也可采用除16取余例如215D转换为十六进制的过程为
215÷
16=13(商),余数=7=x0;
13÷
16=0(商),余数=13=x1;
商为0,转换结束。
故215D=D7H;
通常写成0D7H,D前面的0字说明D不是英文字符D而是数字13。
又如何2345D的转换过程为
12345÷
16=771(商),余数=9=x0;
771÷
16=48(商),余数=3=x1;
48÷
16=3(商),余数=0=x2;
16=0(商),余数=3=x3,商为0,结束。
故12345D=3039H,然后可化成二进制数0011000000111001B。
(二)原码
如上所示,正数的符号位用零表示,负数的符号位用1表示,符号位之后表示数值的大小这种表示方法称为原码。
x=+114,〔x〕原=01110010B
x=+114,〔x〕原=11110010B
(三)反码
正数的反码与原码相同。
最高位一定为0,代表符号,其余位为数值位。
负数的反码其符号位为1,与原码相同,数值位是将其负数的原码的数值位按位取反。
x=-4,〔x〕反=11111011B
x=-0,〔x〕反=11111111B
x=-127,〔x〕反=10000000B
显然,反码的0也有2个,X=+0,〔x〕反=0000000B
(四)补码
正数的补码表示与原码相同,即最高位为符号位,用“0”表示,其余位为数值位。
而负数的补码为其反码加1即在反码的最低位加1形成补码。
x=-4,〔x〕补=〔x〕反+1=11111011B+1=11111100B=FCH
三、8位与16位二进制数的表示范围
(一)8位二进制的范围
1)无符号数0~255(或用0~FFH表示)
第三节微型计算机系统的组成
一、微型计算机系统的构成
微型计算机系统是由硬件和软件两部分组成的,它的层次结构如图所示。
运算器
CPU控制器
主机存储器寄存器
微型机硬件输入/输出接口
外围设备
微型机系统
系统软件
微型机软件
应用软件
图1微型计算机系统的组成示意图
(一)微型机硬件
(1)微处理器,是微机系统的核心部件,简称为CPU,它包括运算器、控制器和寄存器几部分,运算器也叫算逻单元ALU(ArithmeticandLogicUnit)。
(2)存储器(Memory)又叫主存或内存,是微机的存储和记忆部件,用以存放程序代码和运算需要的数据。
内存通常使用半导体存储器。
1)内存容量,以8086/8088CPU为例,其地址总线为20根,寻址内存的范围为220=1MB。
这里B是字节(Byte),即每个内存单元内部存放的是一个字节(8位二进制)程序代码或数据,其形式均为二进制数(机器数)。
因为8086的地址总线是20根,其寻址范围为1024KB,写成十六进制时就是5位,其地址范围为00000H~FFFFFH。
2)内存的操作对内存的操作是读(取)和写(存储)。
3)内存的分类按存储器的工作性质可将内存分为只读存储器(ROM)和随机读写存储器(RAM)两大类。
(3)输入输出接口(I/OInterface)和外部设备CPU要与很多外部设备进行数据传送,必须通过“I/O接口”,所以输入输出接口是CPU与外设之间的桥梁。
(4)总线由上面叙述可以看到微型计算机主要是由微处理器、存储器、I/O接口和I/O设备所组成,这些部件是用系统总线连接起来的。
(二)微型计算机软件
微型机的软件是为运行、管理和测试维护而编制的各种程序的总和,没有软件的计算机只是裸机,计算机就无法工作。
计算机软件分为系统软件和应用软件,系统软件包括操作系统(DOS及WINDOWS、UNIX、LINUX等)和系统应用程序。
三、微型计算机的外围设备
一般的计算机,配备有多种外围设备。
其输入的外围设备有:
键盘、鼠标、扫描仪、输出的外部设备有:
显示器、打印机、绘图仪。
而软盘和硬盘驱动器既可作为输入又可作为输出设备,而大多数的光盘驱动器(CD-ROM)是作为输入设备使用的,它可以把CD或VCD光盘中的音乐送入声卡放大,也可以把VCD光盘的图像通过解压缩后的彩色图像在CRT是显示出来。
目前,都采用全双工的声卡(AudioPCI混声器)完成声音的接收(有话简接口)、录音、声音合成和声音的播放(有一定功率的放大)。
这样,配上较大功率的有源单箱,就可以放送出美丽动听的音乐和歌声。
配置上网卡(一种是电话上网的调制解调器,例如56K的MODEM,一种是高速网卡),连接上INTERNET网络,就可以通过IDTNET2PHONE等软件打网络电话,发传真(FAX),收发ENALL,通过WWW进行网上浏览。
第四节微处理器
一、Intel8086/8088微处理器
(一)8086/8088的功能结构
微处理器8086/8088微处理器结构类似,都由算术逻辑单元ALU、累加器、专用和通用寄存器、指令寄存器、指令译码器、定时器控制器等组成,后四部分相当于控制器。
不过按功能可以分为两大部分—总线接口单元BIU(BusInterfaceUnit)和执行单元EU(ExecutionUnit)。
(二)8086/8088的内部寄存器
8086/8088内部有14个16位寄存器,编程时都要用到,所以必须识记。
按其功能,可分为三大类:
第一类是通过寄存器(8个),第二类是段寄存器(4个),第三类是控制寄存器(2个)。
通用寄存器包括数据寄存器、地址寄存器和变址寄存器。
1.数据寄存器AX、BX、CX、DX
2.地址指针寄存器SP、BP
3.变址寄存器SI、DI
4.段寄存器CS、SS、DS、ES
5.控制寄存器IP、FLAGS
CF进位标志位。
当进行加法或减法运算时。
若最高位发生进位或错位,则CF=1,否则CF=0;
PF奇偶标志位。
当逻辑运算结果中“1”的个数为偶数时,PF=1;
为奇数时,PF=0。
AF辅助进位位。
在8(16)位加法操作中,低4(8)位有进位、借位发生时,AF=1,否则AF=0;
ZF零标志位。
当运算结果为零时,ZF=1。
否则ZF=0;
SF符号标志位。
当运算结果的最高位为1(即为负数)时,SF=1,否则SF=0;
OF溢出标志位。
当算术运算的结果超出了带符号数的范围,即溢出时,OF=1,否则OF=0。
8位带符号数范围是-128~+127,16位带符号数的范围是-32768~+32767。
下面三个是控制标志位。
控制标志位被设置后便对其后的操作产生控制作用。
TF跟踪标志位。
TF=1使CPU处于单步执行指令的工作方式。
这种方式便于进行程序的调试。
每执行一条指令后,便自动产生一次内部中断,从而使用户能逐条地检查程序。
IF中断允许标志位。
IF=1使CPU可以响应可屏蔽中断请求。
IF=0使CPU禁止响应可屏蔽中断请求。
IF的状态对不可屏蔽中断及内部中断没有影响。
DF方向标志位。
DF=1使串操作按减地址方向进行,也就是说,从高位地址开始,每操作一次地址减小一次。
DF=0使串操作按增地址方向进行。
(四)8086/8088的工作方式
8086/8088有两种工作方式:
最小和最大模式,最小模式是单处理器模式,最大模式是多处理器模式,一般接入8087协调处理器。
现在,用户使用的大部分都是486以上微处理器,均为最大模式。
第二章知识点
第一节指令系统
计算机的指令系统。
可以分为六大类:
数据传送指令;
算术传送指令;
逻辑运算和移位指令;
串操作指令;
控制转移指令;
处理器控制指令。
一、指令格式
指令是以二进制代码形式表示的操作命令,这种二进制代码称为机器码。
寻址方式,通常是指CPU指令中规定的寻找操作数所在地址的方式,8086/8088CPU内部设置了多个有关地址的寄存器,如各种地址指针寄存器以及变址寄存器等,因而使8086/8088的基本寻址方式有以下七种。
二、立即寻址(ImmediateAddrssing)
MOVCL,28H
MOVAX,3189H
三、寄存器寻址(RegisterAddrssing)
指令中指定某些CPU寄存器存放操作数。
上述寄存器可能是通用寄存器(8位或16位)、地址指针或变址寄存器,以及段寄存器。
MOVSS,AX
四、直接寻址(DirectAddrssing)
直接寻址指令在指令的操作码后面直接给出操作数的16位偏移地址。
这个偏移地址也称为有效地址EA(EffectiveAddress),它与指令的操作码一起,存放在内存的代码段,也是低8位在前,高8位在后。
但是,操作数本身一般存放在内存的数据段。
MOVAX,〔3100H〕
五、寄存器间接寻址
六、变址寻址(IndexedAddressing)
变址寻址指令将规定的变址寄存器的内容加上指令中给出的位移量,得到操作数的有效地址。
8086/8088CPU中变址寄存器有两个:
源变址寄存器SI和目的变址寄存器DI。
位移可以是8位或16位二进制数,一般情况下操作数在内存的数据段,但也允许段超越。
下面是一条变址寻址指令的例子。
MOVBX,〔SI+1003H〕
七、基址寻址(BasedAddrssing)
基址与变址相类似,不同之处在于指令中使用基址寄存器BX或基址指针寄存器BP,而不是变址寄存器SI和DI。
需要指出一点,当使用BX寄存器实现基址时,一般情况下操作数是在数据段,即段地址在DS寄存器;
而当使用BP时操作数通常在堆栈段,即段地址在SS寄存器中。
但是,同样允许段超越。
下面两条指令是基址寻址的例子。
MOVSI,DATA〔BX〕
MOVBLOCK〔BP〕,AX
八.基址-变址寻址(BasedIndexedAddre88ing)
这种寻址方式是前面已经介绍的两种寻址方式的结合。
指令中规定一个基址寄存器(BX和BP二者之一)和一个变址寄存器(SI和DI二者之一),同时还给出一个8位或16位的位移量,将三者的内容相加就得到操作的有效地址。
至于段地址,通常由所用的基址寄存器决定。
当使用BX存放基址时,段地址一般在DS寄存器;
当使用BP时,段地址一般在堆栈段SS中,但当指令中标明是段超越时例外。
以下是一条基址加变址寻址指令的例子:
MOVAX,COUNT〔BX〕〔SI〕
第二节8086/8088的指令系统
一、数据传送指令(Datatransfer)
数据传送指令是程序中使用最多的指令,这是因为无论程序针对何种具体的实际问题,往往都需要将原始数据、中间结果、最终结果以及其他各种信息,在CPU的寄存器和存储器之间传送。
数据传送指令按其功能的不同,可以分为以下四组:
通用数据传送指令;
输入/输出指令;
目标地址传送指令;
标志传送指令。
以下是MOV指令的几个例子:
MOVAX,CS;
段寄存器至通用寄存器
MOVAL,125;
立即数至寄存器
MOVMEM,15;
立即数至存储器,直接寻址
MOVSI,BX;
寄存器至寄存器
MOVDS,AX;
通用寄存器至段寄存器
MOV〔BX〕,50H;
立即数至存储器,寄存器间址
MOVMEM,AX;
寄存器至存储器,直接寻址
MOVMEM,DS;
段寄存器至存储器,直接寻址
MOVDISP〔BX〕,CX;
寄存器至存储器,基址寻址
MOVAX,DISP〔SI〕;
存储器至寄存器,变址寻址
MOVDS,MEM;
存储器至段寄存器,直接寻址
MOVAX,DISPBX〕〔SI;
存储器至寄存器,基址-变址寻址
PUSH(Pushwordontostack)推入操作
POP(Popwordoffstacks)弹出操作
指令格式及操作:
PUSHsrc;
(SP)←(SP)-2,首先,堆栈指针-2送给堆栈指针
((SP)+1:
(SP))←(src),再把源操作数(字)推入堆栈中
POPdest;
(dest)←((SP)+1:
(SP)),首先,堆栈的内容弹出到目的操作数
(SP)←(SP)+2,再使堆栈指针加2
这是两条堆栈操作指令,PUSH指令将寄存器或存储器的内容推入堆栈;
POP指令将堆栈中的内容弹出到寄存器或存储器,但都是字操作。
PUSH和POP指令的操作数可能有三种情况:
1)寄存器
2)段寄存器
3)存储器
无论那种操作数,其类型必须是字操作数(16位),如果推入或弹出堆栈的寄存器操作数,则应是一个16位寄存器。
如果是存储器操作数,是两个地址连续的存储单元。
如:
PUSHAX;
通用寄存器椎入堆栈
PUSHBP;
基址指针寄存器推入堆栈
PUSHDATA〔SI〕;
两个连续的存储单元推入堆栈
POPDI;
从堆栈弹出到变址寄存器
POPES;
从堆栈弹出至段寄存器
POPALPHE〔BX〕;
从堆栈弹出到两个连续的存储单元
堆栈的用途很多,例如调用子程序(或过程),发生中断时都用推入堆栈的办法来保护断点的地址,而当子程序返回时再将断点地址从堆栈中弹出到IP,以便继续执行主程序。
输入输出指令共两条。
输入指令IN用于从外设端口接收数据,输出指令OUT向端口发送数据。
INacc,port;
(acc)←(port)
OUTport,acc;
(port)←(acc)
目标地址传送指令(Address—objecttransfer)
8086-8088CPU提供了三条把地址指针写入寄存器或寄存器对的指令,它们可以用来写入近地址指针和远地址指针。
这三条指令是LDS、LES、LEA。
LEAreg16mem16
LEA指令将一个近地址指针写入到指定的寄存器。
指令中的目标寄存器必须是一个16位通用寄存器,源操作数必须是一个存储器,指令的执行结果是把源操作数的有效地址即16位偏移地址传送到目标寄存器。
LEABX,BUFFER
LEAAX,〔BP〕〔DI〕
二、算术运算指令(Arithmetic)
算术运算指令共有以下五组:
加法运算指令
减法运算指令
乘法运算指令
除法运算指令
转换指令
(一)加法指令(Addition)
加法指令包括普通加法(ADD)指令、带进位加法(ADC)指令和加1(INC)指令,另外还有两条加法调整指令,即ASCII调整(AAA)和十进制调整(DAA)指令。
1.ADD(Addition)
ADDdest,src;
(dest)←(dest)+(src)
ADD指令将目标操作数与源操作数相加,并将结果存回目标操作数。
加法指令将影响大多数标志位。
3.INC(Incrementby1),加1指令
INCdest(dest)←(dest)+1
INC指令将目标操作数加1,指令将影响大多数标志位,如SF、ZF、AF、PF和OF但对进位标志CF没有影响。
(二)减法相令(Subtraction)
8086/8088CPU共有七条减法指令,它们是普通减法(SUB)、带借位减(SBB)、减1(DEC)、求补(NEG)、比较(CMP)指令,以及减法的ASCII调整(AAS)和十进制调整(DAS)指令,重点是SUB、DEC、CMP指令。
SUB(Subtraction)
SUBdest,src;
(desd)←(desd)←(src)
SUB指令将目标操作数减源操作数,结果送回目标操作数。
指令对标志位SF、ZF、AF、PF、CF和OF有影响
操作数的类型与加法指令一样,即目标操作数可以是寄存器或存储器,源操作数可以是立即数、寄存器或存储器,但不允许两个存储器相减。
既可以字节相减,也可以字相减。
例如,SUBAL,98H;
寄存器减立即数
SUBBX,CX;
寄存器减寄存器
SUBDX,VAR1;
寄存器减存储器
DEC(Decrementby1)减指令
DECdest;
(dest)←(dest)-1
DEC指令将目标操作数减1,指令对标志位SF、ZF、AF、PF和OF有影响,但不影响进位标志CF。
操作数的类型与INC指令一样,可以是寄存器或存储器(段寄存器不可)。
字节操作或字操作均可。
例如,
DECBL8位寄存器减:
DECCX;
16位寄存器减1
DECBYTEPTR〔BX〕;
存储器减1,字节操作
DECWORDPTR〔BP〕〔DI〕;
存储器减1,字操作
CMP(Compare)比较指令
CMPdest,src;
(dest)-(src)
不把差值回送给目的的操作数,影响标志,这条比较指令经常使用,并不把结果送给目的操作数,两个操作数不变,比较后影响标志,使程序根据比较后的标志转移。
(三)乘法指令(Multiplication)
8086/8088CPU可以通过执行一条指令完成乘法或除法运算。
乘法指令共有三条:
无符号数乘法指令(MUL)、带符号数乘法指令(IMUL)以及乘法的ASCII调整指令(AAM)。
1.MUL(Multiplicationunsigned)无符号数乘法
指令格式:
MULsrc
指令操作为,字节乘法(AX)←(src)×
(AL)
字乘法(DX:
AX)←(src)×
(AX)
MUL指令对标志位CF和OF有影响,但SF、ZF、AF和PF不确定。
8086/8088CPU有三条除法指令,它们是无符号数除法指令(DIV)、带符号数除法指令(IDIV)以及除法的ASCII调整指令(AAD)。
DIA(Divisionunsigned),无符号数除法指令
DIVsrc
DIA指令使大部分标志位如SF、ZF、AF、PF、CF和OF的值不确定。
例比较两个字符串,找出其中第一个不相等字符的地址。
如果两字符串全部相同。
则转到ALL_MATCH进行处理。
这两个字符串长度均为20,首地址分别为STRING1和STRING2。
LEASI,STRING1;
(SI)←字符串1首地址
LEADI,STRING2;
(DI)←字符串2首地址
MOVCX,20;
(CX)←字符串长度
CLD;
清方向标志DF
REPECMPSB;
如相等,重复进行比较
JCXZALL_MATCH;
若(cx)=0,跳至ALL_MATCH
DECSI;
否则(SI)-1
DECDI;
(DI)-1
INT3;
返回DEBUG
ALL_MATCH:
MOVSI,0
MOVDI,0
控制转移指令(Controltransfer)
8086/8088CPU提供了很多指令用于控制程序的转移。
这类指令是以下四种:
转移指令、循环控制指令、过程调用指令和中断指令,下面分别进行讨论。
(一)转移指令
转移是一种将程序从一处改换到另一处的最方便的方法。
在CPU内部,转移是通过将目标地址传送给指令指针寄存器IP来实现的。
转移指令包括无条件转移指令和条件转移指令。
1、无条件转移指令JMP(JumP)
JUMP指令的操作是无条件地将控制转移到指令中规定的目的地址。
另外,目标地址可以用直接的方式给出,也可以用间接的方式给出,JMP指令对标志位没有影响。
(1)段内直接转移指令格式及操作:
JMPnear_label;
转移到近标号,(IP)←(IP)+disp(16位)
例:
在内存的数据段中存放了若干个8位带符号数,数据块的长度为COUNT(不超过255),首地址为TABLE,试统计其中正元素、负元素及零元素的个数,并分别将个数存入PLUS、MINUS和ZERO单元。
为了统计正元素。
负元素和零元素的个数,可先将PLUS、MINUS和ZERO三个单元清零,然后将数据表中带符号数逐个取入AL寄存器并使其影响标志位,再利用前面介绍的JS、JZ等条件转移指令测试