微机原理与接口技术知识点总结(重点,习题,)

《微机原理与接口技术》复习参考资料

教师:万显荣

复习资料说明:

1、标有红色星号“%”的内容为重点内容

3、本资料末尾附有“《微机原理与接口技术》综合练习题与答案错误修正”和“《微机原理与接口技术》综合练习题与答案中不作要求的部分”,请注意查看。

第一章 概 述

一、计算机中的数制

1、无符号数的表示方法:

(1)十进制计数的表示法

特点:以十为底,逢十进一;

共有0-9十个数字符号。

(2)二进制计数表示方法:

特点:以2为底,逢2进位;

只有0和1两个符号。

(3)十六进制数的表示法:

特点:以16为底,逢16进位;

有0--9及A—F(表示10~15)共16个数字符号。

2、各种数制之间的转换

(1)非十进制数到十进制数的转换

按相应进位计数制的权表达式展开,再按十进制求和。(见书本1.2.3,1.2.4)

(2)十进制数制转换为二进制数制

l十进制 → 二进制的转换:

整数部分:除2取余;

小数部分:乘2取整。

l十进制 → 十六进制的转换:

整数部分:除16取余;

小数部分:乘16取整。

以小数点为起点求得整数和小数的各个位

(3)二进制与十六进制数之间的转换

用4位二进制数表示1位十六进制数

3、无符号数二进制的运算(见教材P5)

4、二进制数的逻辑运算

特点:按位运算,无进借位

(1)与运算

只有A、B变量皆为1时,与运算的结果就是1

(2)或运算

A、B变量中,只要有一个为1,或运算的结果就是1

(3)非运算

(4)异或运算

A、B两个变量只要不同,异或运算的结果就是1

二、计算机中的码制(重点%)

1、对于符号数,机器数常用的表示方法有原码、反码和补码三种。数X的原码记作[X]原,反码记作[X]反,补码记作[X]补。

1、

注意:对正数,三种表示法均相同。

它们的差别在于对负数的表示。

(1)原码

定义:

符号位:0表示正,1表示负;

数值位:真值的绝对值。

注意:数0的原码不唯一

(2)反码

定义:

若X>0 ,则 [X]反=[X]原

若X<0, 则 [X]反= 对应原码的符号位不变,数值部分按位求反

注意:数0的反码也不唯一

(3)补码

定义:

若X>0, 则[X]补= [X]反= [X]原

若X<0, 则[X]补= [X]反+1

注意:机器字长为8时,数0的补码唯一,同为00000000

2、8位二进制的表示范围:

原码:-127~+127

反码:-127~+127

补码:-128~+127

3、特殊数10000000

l该数在原码中定义为: -0

l在反码中定义为: -127

l在补码中定义为: -128

l对无符号数:(10000000)2 = 128

三、信息的编码

1、 十进制数的二进制数编码

用4位二进制数表示一位十进制数。有两种表示法:压缩BCD码和非压缩BCD码。

(1)压缩BCD码的每一位用4位二进制表示,0000~1001表示0~9,一个字节表示两位十进制数。

(2)非压缩BCD码用一个字节表示一位十进制数,高4位总是0000,低4位的0000~1001表示0~9

2、 字符的编码

计算机采用7位二进制代码对字符进行编码

(1)

数字0~9的编码是0110000~0111001,它们的高3位均是011,后4位正好与其对 应的二进制代码(BCD码)相符。

(2)英文字母A~Z的ASCII码从1000001(41H)开始顺序递增,字母a~z的ASCII码从1100001(61H)开始顺序递增,这样的排列对信息检索十分有利。

第二章 微机组成原理

第一节、微机的结构

1、计算机的经典结构——冯.诺依曼结构

(1)计算机由运算器、控制器、输入设备和输出设备五大部分组成(运算器和控制器又称为CPU)

(2)数据和程序以二进制代码形式不加区分地存放在存储器总,存放位置由地址指定,数制为二进制。

(3)控制器是根据存放在存储器中的指令序列来操作的,并由一个程序计数器控制指令的执行。

3、 系统总线的分类

(1)数据总线(Data Bus),它决定了处理器的字长。

(2)地址总线(Address Bus),它决定系统所能直接访问的存储器空间的容量。

(3)控制总线(Control Bus)

第二节、8086微处理器

1、8086是一种单片微处理芯片,其内部数据总线的宽度是16位,外部数据总线宽度也是16位,片内包含有控制计算机所有功能的各种电路。

8086地址总线的宽度为20位,有1MB(220)寻址空间。

2、 8086CPU由总线接口部件BIU和执行部件EU组成。BIU和EU的操作是异步的,为

8086取指令和执行指令的并行操作体统硬件支持。

3、 8086处理器的启动

4、寄存器结构(重点%)

8086微处理器包含有13个16位的寄存器和9位标志位。

4个通用寄存器(AX,BX,CX,DX)

4个段寄存器(CS,DS,SS,ES)

4个指针和变址寄存器(SP,BP,SI,DI)

指令指针(IP)

1)、通用寄存器

(1)8086含4个16位数据寄存器,它们又可分为8个8位寄存器,即:

lAX èAH,AL

lBXèBH,BL

lCXèCH,CL

lDXèDH,DL

常用来存放参与运算的操作数或运算结果

(2)数据寄存器特有的习惯用法

lAX:累加器。多用于存放中间运算结果。所有I/O指令必须都通过AX与接口传送信息;

lBX:基址寄存器。在间接寻址中用于存放基地址;

lCX:计数寄存器。用于在循环或串操作指令中存放循环次数或重复次数;

lDX:数据寄存器。在32位乘除法运算时,存放高16位数;在间接寻址的I/O指令中存放I/O端口地址。

2)、指针和变址寄存器

lSP:堆栈指针寄存器,其内容为栈顶的偏移地址;

lBP:基址指针寄存器,常用于在访问内存时存放内存单元的偏移地址。

lSI:源变址寄存器

lDI:目标变址寄存器

变址寄存器常用于指令的间接寻址或变址寻址。

3)、段寄存器

CS:代码段寄存器,代码段用于存放指令代码

DS:数据段寄存器

ES:附加段寄存器,数据段和附加段用来存放操作数

SS:堆栈段寄存器,堆栈段用于存放返回地址,保存寄存器内容,传递参数

4)、指令指针(IP)

16位指令指针寄存器,其内容为下一条要执行的指令的偏移地址。

5)、标志寄存器

(1)状态标志:

l进位标志位(CF):运算结果的最高位有进位或有借位,则CF=1

l辅助进位标志位(AF):运算结果的低四位有进位或借位,则AF=1

l溢出标志位(OF):运算结果有溢出,则OF=1

l零标志位(ZF):反映指令的执行是否产生一个为零的结果

l符号标志位(SF):指出该指令的执行是否产生一个负的结果

l奇偶标志位(PF):表示指令运算结果的低8位“1”个数是否为偶数

(2)控制标志位

l中断允许标志位(IF):表示CPU是否能够响应外部可屏蔽中断请求

l跟踪标志(TF):CPU单步执行

5、8086的引脚及其功能(重点掌握以下引脚)

lAD15~AD0:双向三态的地址总线,输入/输出信号

lINTR:可屏蔽中断请求输入信号,高电平有效。可通过设置IF的值来控制。

lNMI:非屏蔽中断输入信号。不能用软件进行屏蔽。

lRESET:复位输入信号,高电平有效。复位的初始状态见P21

lMN/MX:最小最大模式输入控制信号。

第三章 8086指令系统

说明:8086指令系统这章为重点章节,对下面列出的指令都要求掌握。

第一节 8086寻址方式

一、数据寻址方式(重点%)

1、立即寻址

操作数(为一常数)直接由指令给出

(此操作数称为立即数)

立即寻址只能用于源操作数

例:

MOV AX, 1C8FH

MOV BYTE PTR[2A00H], 8FH

错误例:

× MOV 2A00H,AX ; 错误!

指令操作例:MOV AX,3102H; AXè3102H

执行后,(AH) = 31H,(AL) = 02H

2、寄存器寻址

(1)操作数放在某个寄存器中

(2)源操作数与目的操作数字长要相同

(3)寄存器寻址与段地址无关

例:

MOV AX, BX

MOV [3F00H], AX

MOV CL, AL

错误例:

× MOV AX,BL ; 字长不同

× MOV ES:AX,DX ; 寄存器与段无关

3、直接寻址

(1)指令中直接给出操作数的16位偏移地址

偏移地址也称为有效地址(EA, Effective Address)

(2)默认的段寄存器为DS,但也可以显式地指定其他段寄存器——称为段超越前缀

(3)偏移地址也可用符号地址来表示,如ADDR、VAR

例:

MOV AX ,[2A00H]

MOV DX ,ES:[2A00H]

MOV SI,TABLE_PTR

4、间接寻址

l 操作数的偏移地址(有效地址EA)放在寄存器中

l 只有SI、DI、BX和BP可作间址寄存器

l 例: MOV AX,[BX]

MOV CL,CS:[DI]

错误例 :× MOV AX, [DX]

× MOV CL, [AX]

5、寄存器相对寻址

lEA=间址寄存器的内容加上一个8/16位的位移量

l 例: MOV AX, [BX+8]

MOV CX, TABLE[SI]

MOV AX, [BP]; 默认段寄存器为SS

l 指令操作例:MOV AX,DATA[BX]

若(DS)=6000H, (BX)=1000H, DATA=2A00H,

(63A00H)=66H, (63A01H)=55H

则物理地址 = 60000H + 1000H + 2A00H = 63A00H

指令执行后:(AX)=5566H

6、基址变址寻址

l 若操作数的偏移地址:

由基址寄存器(BX或BP)给出 —— 基址寻址方式

由变址寄存器(SI或DI)给出 —— 变址寻址方式

由一个基址寄存器的内容和一个变址寄存器的内容相加而形成操作数的偏移地址,称为基址-变址寻址。

EA=(BX)+(SI)或(DI);

EA=(BP)+(SI)或(DI)

同一组内的寄存器不能同时出现。

注意:除了有段跨越前缀的情况外,当基址寄存器为BX时,操作数应该存放在数据段DS中,当基址寄存器为BP时,操作数应放在堆栈段SS中。

例:

MOV AX, [BX] [SI]

MOV AX, [BX+SI]

MOV AX, DS: [BP] [DI]

错误例:

× MOV AX, [BX] [BP]

× MOV AX, [DI] [SI]

指令操作例:MOV AX,[BX][SI]

假定:(DS)=8000H, (BX)=2000H, SI=1000H

则物理地址 = 80000H + 2000H + 1000H = 83000H

指令执行后: (AL)=[83000H]

(AH)=[83001H]

7、相对基址变址寻址

l 在基址-变址寻址的基础上再加上一个相对位移量

EA=(BX)+(SI)或(DI)+8位或16位位移量;

EA=(BP)+(SI)或(DI)+8位或16位位移量

指令操作例MOV AX,DATA[DI][BX]

若(DS)=8000H, (BX)=2000H, (DI)=1000H, DATA=200H

则指令执行后(AH)=[83021H], (AL)=[83020H]

寄存器间接、寄存器相对、基址变址、相对基址变址四种寻址方式的比较:

寻址方式 指令操作数形式

n 寄存器间接 只有一个寄存器(BX/BP/SI/DI之一)

n 寄存器相对 一个寄存器加上位移量

n 基址—变址 两个不同类别的寄存器

n 相对基址-变址 两个不同类别的寄存器加上位移量

二、地址寻址方式(了解有4类,能判断)

简要判断依据(指令中间的单词):

段内直接 short,near

段内间接 word

段间直接 far

段间间接 dword

第二节 8086指令系统

一、数据传送指令(重点%)

1、通用传送指令

(1) MOV dest,src; dest←src

传送的是字节还是字取决于指令中涉及的寄存器是8位还是16位。

具体来说可实现:

① MOV mem/reg1,mem/reg2

指令中两操作数中至少有一个为寄存器

② MOV reg,data ;立即数送寄存器

③ MOV mem,data ;立即数送存储单元

④ MOV acc,mem ;存储单元送累加器

⑤ MOV mem,acc ;累加器送存储单元

⑥ MOV segreg,mem/reg ;存储单元/寄存器送段寄存器

⑦ MOV mem/reg,segreg ;段寄存器送存储单元/寄存器

MOV指令的使用规则

①IP不能作目的寄存器

②不允许mem←mem

③不允许segreg←segreg

④立即数不允许作为目的操作数

⑤不允许segreg←立即数

⑥源操作数与目的操作数类型要一致

⑦当源操作数为单字节的立即数,而目的操作数为间址、变址、基址+变址的内存数时,必须用PTR说明数据类型。如:MOV [BX],12H 是错误的。

(2)、堆栈指令

什么是堆栈?

按“后进先出(LIFO)”方式工作的存储区域。堆栈以为单位进行压入弹出操作。

规定由SS指示堆栈段的段基址,堆栈指针SP始终指向堆栈的顶部,SP的初值规定了所用堆栈区的大小。堆栈的最高地址叫栈底。

① 压栈指令PUSH

PUSH src ; src为16位操作数

例:PUSH AX ;将AX内容压栈

执行操作:(SP)-1←高字节AH

(SP)-2←低字节AL

(SP)←(SP)- 2

注意进栈方向是高地址低地址发展。`

② 弹出指令POP

POP dest

例:POP BX ;将栈顶内容弹至BX

执行操作:(BL)←(SP)

(BH)←(SP)+1

(SP)←(SP)+2

堆栈指令在使用时需注意的几点:

① 堆栈操作总是按字进行

② 不能从栈顶弹出一个字给CS

③ 堆栈指针为SS:SP,SP永远指向栈顶

④SP自动进行增减量(-2,+2)

(3)、交换指令XCHG

格式:XCHG reg,mem/reg

功能:交换两操作数的内容。

要求:两操作数中必须有一个在寄存器中;

操作数不能为段寄存器和立即数;

源和目地操作数类型要一致。

举例: XCHG AX,BX

XCHG [2000],CL

(4)查表指令XLAT

执行的操作:AL←[(BX)+(AL)]

又叫查表转换指令,它可根据表项序号查出表中对应代码的内容。执行时先将表的首地址(偏移地址)送到BX中,表项序号存于AL中。

2、输入输出指令

只限于用累加器AL或AX来传送信息。

功能: (累加器)←→I/O端口

(1) 输入指令IN

格式:

IN acc,PORT ;PORT端口号0~255H

IN acc,DX ;DX表示的端口范围达64K

例:IN AL,80H ;(AL)←(80H端口)

IN AL,DX ;(AL)←((DX))

(2) 输出指令OUT

格式:OUT port,acc

OUT DX,acc

例:OUT 68H,AX ;(69H,68H)←(AX)

OUT DX,AL ;((DX))←(AL)

在使用间接寻址的IN/OUT指令时,要事先用传送指令把I/O端口号设置到DX寄存器

如:

MOV DX,220H

IN AL,DX;将220H端口内容读入AL

3、目标地址传送指令

(1) LEA

传送偏移地址

格式:LEA reg,mem ; 将指定内存单元的偏移地址送到指定寄存器

要求:

1) 源操作数必须是一个存储器操作数;

2) 目的操作数必须是一个16位的通用寄存器。

例:LEA BX,[SI+10H]

设:(SI)=1000H

则执行该指令后,(BX)=1010H

l注意以下二条指令差别:

LEA BX,BUFFER

MOV BX,BUFFER

前者表示将符号地址为BUFFER的存储单元的偏移地址取到 BX中;后者表示将BUFFER存储单元中的内容取到 BX中。

下面两条指令等效:

LEA BX,BUFFER

MOV BX, OFFSET BUFFER

其中OFFSET BUFFER表示存储器单元BUFFER的偏移地址。

二者都可用于取存储器单元的偏移地址,但LEA指令可以取动态的地址,OFFSET只能取静态的地址。

二、算术运算指令

1、 加法指令

(1) 不带进位的加法指令ADD

格式: ADD acc,data

ADD mem/reg,data

ADD mem/reg1,mem/reg2

实例:

ADD AL,30H

ADD SI,[BX+20H]

ADD CX,SI

ADD [DI],200H

•ADD指令对6个状态标志均产生影响。

例:已知(BX)=D75FH

指令 ADD BX,8046H 执行后,状态标志各是多少?

D75FH = 1110 0111 0101 1111

8046H = 1000 0000 0100 0110

1 1 11 11

0110 0111 1010 0101

结果:C=1, Z=0, P=0, A=1, O=1, S=0

判断溢出与进位(重点%)

从硬件的角度:默认参与运算的操作数都是有符号数,当两数的符号位相同,而和的结果相异时有溢出,则OF=1,否则OF=0

(2) 带进位的加法ADC

ADC指令在形式上和功能上与ADD类似,只是相加时还要包括进位标志CF的内容,例如:

ADC AL,68H ; AL←(AL)+68H+(CF)

ADC AX,CX ;AX←(AX)+(CX)+(CF)

ADC BX,[DI] ;BX←(BX)+[DI+1][DI]+(CF)

(3)加1指令INC

格式:INC reg/mem

功能:类似于C语言中的++操作:对指定的操作数加1

例: INC AL

INC SI

INC BYTE PTR[BX+4]

注:本指令不影响CF标志。

(4)非压缩BCD码加法调整指令AAA

AAA指令的操作:

如果AL的低4位>9或AF=1,则:

① AL←(AL)+6,(AH)←(AH)+1,AF←1

② AL高4位清零

③ CF←AF

否则AL高4位清零

(5)压缩BCD码加法调整指令DAA

l两个压缩BCD码相加结果在AL中,通过DAA调整得到一个正确的压缩BCD码.

l指令操作(调整方法):

若AL的低4位>9或AF=1

则(AL)←(AL)+6,AF←1

若AL的高4位>9或CF=1

则(AL)←(AL)+60H,CF←1

l除OF外,DAA指令影响所有其它标志。

lDAA指令应紧跟在ADD或ADC指令之后。

2、 减法指令

(1)不考虑借位的减法指令SUB

格式: SUB dest, src

操作: dest←(dest)-(src)

注:1.源和目的操作数不能同时为存储器操作数

2.立即数不能作为目的操作数

指令例子:

SUB AL,60H

SUB [BX+20H],DX

SUB AX,CX

(2)考虑借位的减法指令SBB

SBB指令主要用于多字节的减法。

格式: SBB dest, src

操作: dest←(dest)-(src)-(CF)

指令例子:

SBB AX,CX

SBB WORD PTR[SI],2080H

SBB [SI],DX

(3)减1指令DEC

作用类似于C语言中的”--”操作符。

格式:DEC opr

操作:opr←(opr)-1

指令例子:

DEC CL

DEC BYTE PTR[DI+2]

DEC SI

(4)求补指令NEG

格式: NEG opr

操作: opr← 0-(opr)

对一个操作数取补码相当于用0减去此操作数,故利用NEG指令可得到负数的绝对值。

例:若(AL)=0FCH,则执行 NEG AL后,

(AL)=04H,CF=1

(5)比较指令CMP

格式: CMP dest, src

操作: (dest)-(src)

CMP也是执行两个操作数相减,但结果不送目标操作数,其结果只反映在标志位上。

指令例子:

CMP AL,0AH

CMP CX,SI

CMP DI,[BX+03]

(6)非压缩BCD码减法调整指令AAS

对AL中由两个非压缩的BCD码相减的结果进行调整。调整操作为:

若AL的低4位>9或AF=1,则:

① AL←(AL)-6,AH←(AH)-1,AF←1

② AL的高4位清零

③ CF←AF

否则:AL的高4位清零

(7)压缩BCD码减法调整指令DAS

对AL中由两个压缩BCD码相减的结果进行调整。调整操作为:

若AL的低4位>9或AF=1,则:

AL←(AL)-6, 且AF←1

若AL的高4位>9或CF=1,则:

AL←(AL)-60H,且CF←1

DAS对OF无定义,但影响其余标志位。

DAS指令要求跟在减法指令之后。

3、 乘法指令

进行乘法时:8位*8位→16位乘积

16位*16位→32位乘积

(1) 无符号数的乘法指令MUL(MEM/REG)

格式: MUL src

操作:字节操作数 (AX)←(AL) × (src)

字操作数 (DX, AX)←(AX) × (src)

指令例子:

MUL BL ;(AL)×(BL),乘积在AX中

MUL CX ;(AX)×(CX),乘积在DX,AX中

MUL BYTE PTR[BX]

(2)有符号数乘法指令IMUL

格式与MUL指令类似,只是要求两操作数均为有符号数

指令例子:

IMUL BL ;(AX)←(AL)×(BL)

IMUL WORD PTR[SI];

(DX,AX)←(AX)×([SI+1][SI])

注意:MUL/IMUL指令中

● AL(AX)为隐含的乘数寄存器;

● AX(DX,AX)为隐含的乘积寄存器;

● SRC不能为立即数;

● 除CF和OF外,对其它标志位无定义。

4、除法指令

进行除法时:16位/8位→8位商

32位/16位→16位商

对被除数、商及余数存放有如下规定:

被除数 商 余数

字节除法 AX AL AH

字除法 DX:AX AX DX

(1)无符号数除法指令DIV

格式: DIV src

操作:字节操作 (AL)←(AX) / (SRC) 的商

(AH)←(AX) / (SRC) 的余数

字操作 (AX) ←(DX, AX) / (SRC) 的商

(DX) ←(DX, AX) / (SRC) 的余数

指令例子:

DIV CL

DIV WORD PTR[BX]

(2)有符号数除法指令IDIV

格式: IDIV src

操作与DIV类似。商及余数均为有符号数,且余数符号总是与被除数符号相同。

注意: 对于DIV/IDIV指令

AX(DX,AX)为隐含的被除数寄存器。

AL(AX)为隐含的商寄存器。

AH(DX)为隐含的余数寄存器。

src不能为立即数。

对所有条件标志位均无定

关于除法操作中的字长扩展问题

•除法运算要求被除数字长是除数字长的两倍,若不满足则需对被除数进行扩展,否则产生错误。

•对于无符号数除法扩展,只需将AH或DX清零即可。

•对有符号数而言,则是符号位的扩展。可使用前面介绍过的符号扩展指令CBW和CWD

三、逻辑运算和移位指令

1、逻辑运算指令

(1)逻辑与AND

对两个操作数进行按位逻辑“与”操作。

格式:AND dest, src

用途:保留操作数的某几位,清零其他位。

例1:保留AL中低4位,高4位清0。

AND AL,0FH

(2)逻辑或OR

对两个操作数进行按位逻辑”或”操作。

格式:OR dest, src

用途:对操作数的某几位置1;对两操作数进行组合。

例1:把AL中的非压缩BCD码变成相应十进制数的ASCII码。

OR AL, 30H

(3)逻辑非NOT

对操作数进行按位逻辑”非”操作。

格式:NOT mem/reg

例:NOT CX

NOT BYTE PTR[DI]

(4)逻辑异或XOR

对两个操作数按位进行”异或”操作。

格式:XOR dest, src

用途:对reg清零(自身异或)

把reg/mem的某几位变反(与’1’异或)

例1:把AX寄存器清零。

①MOV AX,0

②XOR AX,AX

③AND AX,0

④SUB AX,AX

(5)测试指令TEST

操作与AND指令类似,但不将”与”的结果送回,只影响标志位。

TEST指令常用于位测试,与条件转移指令一起用。

例:测试AL的内容是否为负数。

TEST AL,80H ;检查AL中D7=1?

JNZ MINUS ;是1(负数),转MINUS

… … ;否则为正数

2、移位指令

(1)非循环移位指令(重点%)

算术左移指令 SAL(Shift Arithmetic Left)

算术右移指令 SAR(Shift Arithmetic Right)

逻辑左移指令 SHL(Shift Left)

逻辑右移指令 SHR(Shift Right)

这4条指令的格式相同,以SAL为例:

CL ;移位位数大于1时

SAL mem/reg

1 ;移位位数等于1时

Ø算术移位——把操作数看做有符号数;

逻辑移位——把操作数看做无符号数。

Ø移位位数放在CL寄存器中,如果只移1位,也

可以直接写在指令中。例如:

MOV CL,4

SHR AL,CL ;AL中的内容右移4位

Ø影响C,P,S,Z,O标志。

Ø结果未溢出时:

左移1位≡操作数*2

右移1位≡操作数/2

例:把AL中的数x乘10

因为10=8+2=23+21,所以可用移位实现乘10操作。程序如下:

MOV CL,3

SAL AL,1 ; 2x

MOV AH,AL

SAL AL,1 ; 4x

SAL AL,1 ; 8x

ADD AL,AH ; 8x+2x = 10x

四、控制转移指令

1、 转移指令

(1)无条件转移指令JMP

格式:JMP label

本指令无条件转移到指定的目标地址,以执行从该地址开始的程序段。

(2)条件转移指令(补充内容)(重点%)

① 根据单个标志位设置的条件转移指令

JB/JC ;低于,或CF=1,则转移

JNB/JNC/JAE ;高于或等于,或CF=0,则转移

JP/JPE ;奇偶标志PF=1(偶),则转移

JNP/JPO ;奇偶标志PF=0(奇),则转移

JZ/JE ;结果为零(ZF=1),则转移

JNZ/JNE ;结果不为零(ZF=0),则转移

JS ;SF=1,则转移

JNS ;SF=0,则转移

JO ;OF=1,则转移

JNO ;OF=0,则转移

②根据组合条件设置的条件转移指令

这类指令主要用来判断两个数的大小。

★判断无符号数的大小

lJA 高于则转移

条件为: CF=0∧ZF=0,即A>B

lJNA/JBE 低于或等于则转移

条件为: CF=1∨ZF=1,即A≤B

lJB A<B则转移

lJNB A≥B则转移

★判断有符号数的大小

lJG ;大于则转移(A>B)

条件为: (SF⊕OF=0)∧ZF=0

lJGE;大于或等于则转移(A≥B)

条件为: (SF⊕OF=0)∨ZF=1

lJLE;小于或等于则转移(A≤B)

条件为: (SF⊕OF=1)∨ZF=1

lJL;小于则转移(A<B=

条件为: (SF⊕OF=1)∧ZF=0

2、循环控制指令

l用在循环程序中以确定是否要继续循环。

l循环次数通常置于CX中。

l转移的目标应在距离本指令-128~+127的范围之内。

l循环控制指令不影响标志位。

(1)LOOP

格式:LOOP label

操作:(CX)-1→CX;

若(CX)≠0,则转至label处执行

否则退出循环,执行LOOP后面的指令。

LOOP指令与下面的指令段等价:

DEC CX

JNZ label

3、过程调用指令

(1)调用指令CALL

一般格式:CALL sub ;sub为子程序的入口

4、中断指令

(1)INT n 执行类型n的中断服务程序,N=0~255

五、处理器控制指令

1、标志位操作

(1)CF设置指令

CLC 0→CF

STC 1→CF

CMC CF变反

(2)DF设置指令

CLD 0→DF (串操作的指针移动方向从低到高)

STD 1→DF (串操作的指针移动方向从高到低)

(3)IF设置指令

CLI 0→IF (禁止INTR中断)

STI 1→IF (开放INTR中断)

2、 HLT(halt)

执行HLT指令后,CPU进入暂停状态。

第四章 8086汇编语言程序设计

第一节 伪指令(重点%)

CPU指令与伪指令之间的区别:

(1)CPU指令是给CPU的命令,在运行时由CPU执行,每条指令对应CPU的一种特定的操作。而伪指令是给汇编程序的命令,在汇编过程中由汇编程序进行处理。

(2)汇编以后,每条CPU指令产生一一对应的目标代码;而伪指令则不产生与之相应的目标代码。

1、数据定义伪指令

(1)数据定义伪指令的一般格式为:

l[变量名] 伪指令 操作数[,操作数…]

DB 用来定义字节(BYTE)

DW 用来定义字(WORD)

DD 用来定义双字(DWORD)

(2)操作数的类型可以是:

①常数或常数表达式

l例如: DATA_BYTE DB 10,5,10H

DATA_WORD DW 100H,100,-4

DATA_DW DD 2*30,0FFFBH

②可以为字符串(定义字符串最好使用DB)

l例如:char1 DB ‘AB’

③可以为变量

④可以为?号操作符

例如:X DB 5,?,6

?号只是为了给变量保留相应的存储单元,而不赋予变量某个确定的初值。

⑤重复次数:N DUP(初值[,初值…])

l例如:ZERO DB 2 DUP(3,5)

XYZ DB 2 DUP(0,2 DUP(1,3),5)

⑥在伪操作的操作数字段中若使用$,则表示的是地址计数器的当前值。

2、补充内容:

(1)类型 PTR 地址表达式

例如:MOV BYTE PTR [BX],12H

INC BYTE PTR [BX]

注意:单操作数指令,当操作数为基址、变址、基+变的时候必须定义

3、符号定义伪指令

(1)EQU

格式:名字 EQU 表达式

EQU伪指令将表达式的值赋予一个名字,以后可用这个名字来代替上述表达式。

例:CONSTANT EQU 100

NEW_PORT EQU PORT_VAL+1

(2) =(等号)

与EQU类似,但允许重新定义

例:

EMP=7 ;值为7

EMP=EMP+1 ;值为8

(3)LABEL

LABEL伪指令的用途是定义标号或变量的类型

格式:名字 LABEL 类型

变量的类型可以是BYTE,WORD,DWORD。标号的类型可以是NEAR或FAR

4、段定义伪指令

与段有关的伪指令有:

SEGMENT、ENDS、ASSUME、ORG

(1)段定义伪指令的格式如下:

段名 SEGMENT [定位类型] [组合类型] [’类别’]

段名 ENDS

SEGMENT和ENDS

这两个伪指令总是成对出现,二者前面的段名一致。二者之间的删节部分,对数据段、附加段及堆栈段,一般是符号、变量定义等伪指令。对于代码段则是指令及伪指令。此外,还必须明确段和段寄存器的关系,这可由ASSUME语句来实现。

(2)ASSUME

格式:

ASSUME 段寄存器名:段名[,段寄存器名:段名[,…]]

ASSUME伪指令告诉汇编程序,将某一个段寄存器设置为某一个逻辑段址,即明确指出源程序中逻辑段与物理段之间的关系。

(3)ORG

伪指令ORG规定了段内的起始地址或偏移地址,其格式为:

ORG <表达式>

表达式的值即为段内的起始地址或偏移地址,从此地址起连续存放程序或数据。

5、汇编程序的一般结构(重点%)(记住)

DATA SEGMENT

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

BGN: MOV AX ,DATA

MOV DS,AX

….

MOV AH,4CH

INT 21H

CODE ENDS

END BGN

第三节 程序设计

1、 顺序程序的设计(略)

2、 分支程序的设计

典型例题:

1 X>0

Y = 0 X=0

-1 X<0

l程序为:

MOV AL ,X

CMP AL,0

JGE BIG

MOV Y,-1

JMP EXIT

BIG:JE EQUL

MOV Y,1

JMP EXIT

EQUL:MOV Y,0

EXIT:….

3、 循环程序见讲义。

l用计数控制循环

第一章 计算机基础知识

本章的主要内容为不同进位计数制计数方法、不同进位制数之间相互转换的方法、数和字符在计算机中的表示方法、简单的算术运算以及计算机系统的组成。下边将本章的知识点作了归类,图1为本章的知识要点图,图1.2为计算机系统组成的示意图。

第二章 8086微处理器

本章要从应用角度上理解8086CPU的内部组成、编程结构、引脚信号功能、最小工作模式的系统配置、8086的存储器组织、基本时序等概念。下面这一章知识的结构图。

第三章 8086的指令系统

本章重点是8086CPU指令的寻址方式,每条指令的格式、功能及标志的影响;同时还涉及到存储器单元的物理地址计算、标志位填写和堆栈操作。下图为本章知识结构图。

第四章 汇编语言程序设计

本章主要内容是汇编语言类别、伪指令语句格式和作用、基本程序结构、调用程序和被调用程序之间数据传递途径以及汇编源程序上机调试过程。

本章重点是阅读程序和编写程序。下边是本章的知识结构图。

第五章 半导体存储器

半导体存储器是用半导体器件作为存储介质的存储器。本章讨论半导体存储器芯片的类型、存储原理、引脚功能、如何与CPU(或系统总线)连接等问题。本章知识结构图如下。

`

第六章 输入输出接口

本章讨论输入/输出接口的基本概念,包括输入/输出接口的作用、内部结构、传送信息的分析、IO端口编址以及主机通过接口与外设之间数据传送的方式。下边是本章的知识结构图。

第七章 中断与中断控制器

本章主要内容:中断的基本概念、CPU响应中断的条件、中断响应过程、中断服务程序的执行;8086/8088中断系统;可编程中断控制器8259A的引脚功能、编程结构以及工作工程。

第八章 定时器/计数器8253及应用

本章主要内容是定时器/计算器的应用场合;如何实现定时/计数;可编程计数器/定时器8253芯片的内部结构、引脚功能、计数原理、6种工作方式下的工作条件和输出波形特征。下边是知识要点图。

第九章 A/D和D/A转换

本章重点是A/D转换的任务和转换原理,D/A转换的任务和转换原理,常用A/D转换器(ADC)集成芯片和D/A转换器(DAC)集成芯片的外部引脚功能、内部结构、工作过程、性能指标以及实际应用。

如下图所示,以8088微处理器为核心的IBM PC/XT机与DAC0832连接,实现波形发生器。IBM PC/XT机使用10根地址线A0~A9寻址I/O端口,AEN为地址允许信号,低电平时选中端口。DAC0832的参考电压VREF=-5V, VREF的范围为0~5V, 计算式为,其中,N是由DAC0832转换的数字量对应的十进制值。Vout的输出范围是-5V~5V。

(1) 根据下图一所示的DAC0832的硬件连接,说明其工作方式。

(2) 假如DAC0832端口地址为140H, 请在下图一中画出相应的译码电路。

(3) 现有1ms的延时子程序DELAY, 请编写程序片段实现输出右图二的所示波形。

第一章 计算机基础知识

本章的主要内容为不同进位计数制计数方法、不同进位制数之间相互转换的方法、数和字符在计算机中的表示方法、简单的算术运算以及计算机系统的组成。下边将本章的知识点作了归类,图1为本章的知识要点图,图1.2为计算机系统组成的示意图。

第二章 8086微处理器

本章要从应用角度上理解8086CPU的内部组成、编程结构、引脚信号功能、最小工作模式的系统配置、8086的存储器组织、基本时序等概念。下面这一章知识的结构图。

第三章 8086的指令系统

本章重点是8086CPU指令的寻址方式,每条指令的格式、功能及标志的影响;同时还涉及到存储器单元的物理地址计算、标志位填写和堆栈操作。下图为本章知识结构图。

第四章 汇编语言程序设计

本章主要内容是汇编语言类别、伪指令语句格式和作用、基本程序结构、调用程序和被调用程序之间数据传递途径以及汇编源程序上机调试过程。

本章重点是阅读程序和编写程序。下边是本章的知识结构图。

第五章 半导体存储器

半导体存储器是用半导体器件作为存储介质的存储器。本章讨论半导体存储器芯片的类型、存储原理、引脚功能、如何与CPU(或系统总线)连接等问题。本章知识结构图如下。

`

第六章 输入输出接口

本章讨论输入/输出接口的基本概念,包括输入/输出接口的作用、内部结构、传送信息的分析、IO端口编址以及主机通过接口与外设之间数据传送的方式。下边是本章的知识结构图。

第七章 中断与中断控制器

本章主要内容:中断的基本概念、CPU响应中断的条件、中断响应过程、中断服务程序的执行;8086/8088中断系统;可编程中断控制器8259A的引脚功能、编程结构以及工作工程。

第八章 定时器/计数器8253及应用

本章主要内容是定时器/计算器的应用场合;如何实现定时/计数;可编程计数器/定时器8253芯片的内部结构、引脚功能、计数原理、6种工作方式下的工作条件和输出波形特征。下边是知识要点图。

第九章 A/D和D/A转换

本章重点是A/D转换的任务和转换原理,D/A转换的任务和转换原理,常用A/D转换器(ADC)集成芯片和D/A转换器(DAC)集成芯片的外部引脚功能、内部结构、工作过程、性能指标以及实际应用。

如下图所示,以8088微处理器为核心的IBM PC/XT机与DAC0832连接,实现波形发生器。IBM PC/XT机使用10根地址线A0~A9寻址I/O端口,AEN为地址允许信号,低电平时选中端口。DAC0832的参考电压VREF=-5V, VREF的范围为0~5V, 计算式为,其中,N是由DAC0832转换的数字量对应的十进制值。Vout的输出范围是-5V~5V。

(1) 根据下图一所示的DAC0832的硬件连接,说明其工作方式。

(2) 假如DAC0832端口地址为140H, 请在下图一中画出相应的译码电路。

(3) 现有1ms的延时子程序DELAY, 请编写程序片段实现输出右图二的所示波形。

1. 什么是中断?什么是中断向量?中断向量表的地址范围?

答:中断就是CPU在执行当前程序时由于内外部事件引起CPU暂时停止当前正在执行的程序而转向执行请求CPU暂时停止的内外部事件的服务程序,该程序处理完后又返回继续执行被停止的程序;中断向量是中断处理子程序的入口地址;地址范围是00000H-003FFH。

2.

3. 微机系统的硬件由哪几部分组成?

答: 微型计算机(微处理器,存储器,I/0接口,系统总线),外围设备,电源。

4. 什么是微机的总线,分为哪三组?

答:是传递信息的一组公用导线。分三组:地址总线,数据总线,控制总线。

5. 8086/8088CPU的内部结构分为哪两大模块,各自的主要功能是什么?

答:总线接口部件(BIU)功能:根据执行单元EU的请求完成CPU与存储器或IO设备之间的数据传送。执行部件(EU),作用:从指令对列中取出指令,对指令进行译码,发出相应的传送数据或算术的控制信号接受由总线接口部件传送来的数据或把数据传送到总线接口部件进行算术运算。

6. 8086指令队列的作用是什么?

答:作用是:在执行指令的同时从内存中取了一条指令或下几条指令,取来的指令放在指令队列中这样它就不需要象以往的计算机那样让CPU轮番进行取指和执行的工作,从而提高CPU的利用率。

7. 8086的存储器空间最大可以为多少?怎样用16位寄存器实现对20位地址的寻址?完成逻辑地址到物理地址转换的部件是什么?

答:8086的存储器空间最大可以为2^20(1MB);8086计算机引入了分段管理机制,当CPU寻址某个存储单元时,先将段寄存器内的内容左移4位,然后加上指令中提供的16位偏移地址形成20位物理地址。

8. 段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗?

答:指令的物理地址为21F00H;CS值和IP值不是唯一的,例如:CS=2100H,IP=0F00H。

9. 设存储器的段地址是4ABFH,物理地址为50000H,其偏移地址为多少?

答:偏移地址为54100H。(物理地址=段地址*16+偏移地址)

10. 8086/8088CPU有哪几个状态标志位,有哪几个控制标志位?其意义各是什么?

答:状态标志位有6个: ZF,SF,CF,OF,AF,PF。其意思是用来反映指令执行的特征,通常是由CPU根据指令执行结果自动设置的;控制标志位有3个:DF,IF,TF。它是由程序通过执行特定的指令来设置的,以控制指令的操作方式。

11. 8086CPU的AD0~AD15是什么引脚?

答:数据与地址引脚

12. INTR、INTA、NMI、ALE、HOLD、HLDA引脚的名称各是什么?

答:INTR是可屏蔽请求信号,INTA中断响应信号,NMI是不可屏蔽中断请求信号,ALE是地址锁存允许信号,HOLD总线请求信号,HLDA总线请求响应信号。

13. 虚拟存储器有哪两部分组成?

答:有主存储器和辅助存储器。

14. 在80x86中,什么是逻辑地址、线性地址、物理地址?

答:线性地址是连续的不分段的地址;逻辑地址是由程序提供的地址;物理地址是内存单元的实际地址。

15. 段描述符分为哪几种?

答:分为三大类,程序段描述符,系统段描述符,门描述符。

16. RAM有几种,各有什么特点?ROM有几种,各有什么特点?

答:RAM有两种,SRAM(静态RAM),它采用触发器电路构成一个二进制位信息的存储单元,这种触发器一般由6个晶体管组成,它读出采用单边读出的原理,写入采用双边写入原理;DRAM(动态RAM),它集成度高,内部存储单元按矩阵形式排列成存储体,通常采用行,列地址复合选择寻址法。ROM有5种,固定掩摸编程ROM,可编程PROM,紫外光檫除可编程EPROM,电可檫除的可编程EPROM,闪速存储器。

17. 若用4K*1位的RAM芯片组成8K*8为的存储器,需要多少芯片?A19—A0地址线中哪些参与片内寻址,哪些用做芯片组的片选信号?

答:需要16片芯片;其中A11-A0参与片内寻址;A12做芯片组的片选信号。

18. 若系统分别使用512K*8、1K*4、16K*8、64K*1的RAM,各需要多少条地址线进行寻址,各需要多少条数据线?

答:512K*8需要19条地址线,8条数据线。1K*4需要10条地址线,4条数据线。16K*8需要14条地址线,8条数据线。64K*1需要14条地址线,1条数据线。

19. 某微机系统的RAM容量为8K*8,若首地址为4800H,则最后一个单元的地址是多少?

答:最后一个单元的地址是:4800H+2^13-1

20. 什么是总线,微机中的总线通常分为哪几类?

答:是一组信号线的集合,是一种在各模块间传送信息的公共通路;有四类,片内总线,微处理器总线,系统总线,外总线。

21. 微处理器为什么需要用接口和外设相连接?

答:因为许多接口设备中,在工作原理,驱动方式,信息格式以及工作速度方面彼此相差很大,因此为了进行速度和工作方式的匹配,并协助完成二者之间数据传送控制任务。

22. 一般的I/O接口电路有哪四种寄存器,它们各自的作用是什么?

答:数据输入寄存器,数据输入寄存器,状态寄存器和控制寄存器。数据端口能对传送数据提供缓冲,隔离,寄存的作用 ;状态寄存器用来保存外设或接口的状态;控制寄存器用来寄存CPU通过数据总线发来的命令。

23. 8086最多可有多少级中断?按照产生中断的方法分为哪两大类?

答:有8级;按照产生中断的方法可分为硬件中断和软件中断。

24. 什么是中断?什么是中断向量?中断向量表的地址范围?

答:中断就是CPU在执行当前程序时由于内外部事件引起CPU暂时停止当前正在执行的程序而转向执行请求CPU暂时停止的内外部事件的服务程序,该程序处理完后又返回继续执行被停止的程序;中断向量是中断处理子程序的入口地址;地址范围是00000H-003FFH。

25. 中断向量表的功能是什么?若中断向量号分别为1AH和20H,则它们的中断向量在中断向量表的什么位置上?

答:中断向量表的功能是当中断源发出中断请求时,即可查找该表,找出其中断向量,就可转入相应的中断服务子程序。1AH在中断向量表的位置是1AH*4=68H在中断向量表0000:0068处;20H在中断向量表的位置是80H在中断向量表0000:0080处。

26. 通常,解决中断优先级的方法有哪几种?

答:3种,软件查询确定优先级,硬件优先级排队电路确定优先级,具体中断屏蔽的接口电路。

27. 8259A通过级联的方式可以由几片构成最多多少级优先权的中断源。

答:8259A通过级联的方式由9片构成最多64级优先权的中断源。

28. 简述中断控制器8259A的内部结构和主要功能。

答:8259A的内部结构有数据总线缓冲器,读写逻辑电路,级联缓冲比较器,中断请求寄存器(IRR),中断屏蔽寄存器(IMR),中断服务寄存器(ISR),优先权判别器(PR),控制逻辑。

29. 8259A的内部寄存器中IRR、IMR、ISR三个寄存器的作用是什么?

答:见课本153页。

30. 8259A有哪些中断结束方式,分别适用于哪些场合。

答:8259A有2种中断结束方式:中断自动结束方式,中断非自动结束方式(一般中断和特殊中断);中断自动结束方式只适合有一块8259A,并且各中断不发生嵌套的情况。中断非自动结束方式只能适合与全嵌套方式下不能用与循环优先级方式。

31. 8259A对优先级的管理方式有哪几种,各是什么含义?

答:有4种,普通全嵌套方式,特殊全嵌套方式,自动循环方式,优先级特殊循环方式(详细见课本P159和P160)

32. 8259A的初始化命令字和操作命令字有哪些,其功能是什么;哪些应写入奇地址,哪些应写入偶地址。

答:8259A的初始化命令字ICW1,ICW2,ICW3,ICW4;操作命令字OCW1,OCW2,OCW3。(见课本P155到P158);ICW2,ICW3,ICW4,OCW1写如奇地址,ICW1,OCW2,OCW3为偶地址。

33. 简述8259A的初始化过程。

答:8259A的初始化编程,需要CPU向它输出一个2—4字节的初始化命令字,

输出初始化命令字的流程如图所示,其中ICW1和ICW2是必须的,而ICW3和ICW4需根据具体的情况来加以选择。各初始化命令字的安排与作用分叙如下:

34. 8253有几个计数通道,每条计数通道有哪些信号线,其作用是什么?

答:8253有三个计数通道,每个计数通道有3条信号线:CLK:计数输入用于输入定时基准脉冲或计数脉冲.OUT:输出信号以相应的电平指示计数的完成或输出脉冲的波型.GATA:选通输入用于启动或禁止计数器的操作,以使计数器和计数输入信号同步。

35. 8253有几种工作方式,其特点是什么?

答:六种方式(见课本P224)

36. 8253的内部寄存器及各位的意义是什么?

答:8253的内部寄存器有四个,8位的控制寄存器:初始化时,将控制字写入该寄存器;16位的计数器初值寄存器,初始化是写入该计数器的初始值,其最大初始值为0000H;16位的减一计数器,计数器的初值由计数初值寄存器送入减法计数器,当计数输入端输入一个计数脉冲时,减法计数器内容减一;16位的输出锁存器用来锁存计数脉冲时,减法计数器内容减一。

37. 8255A的功能是什么,有哪几个控制字,各位的意义是什么?

答:8255A是一种通用的可编程程序并行I/O接口芯片.它有两个控制字,一个是方式选择控制字,它的作用是实现对8255A的各个端口的选择。一个是对C口进行置位或复位控制字. 它的作用是能实现对端口C的每一位进行控制。

38. 8255A的A口、B口、C口有哪几种工作方式,其特点是什么?C口有哪些使用特点?

答:8255A的A口可以工作在3种工作方式的任何一种,B口只能工作在方式0或方式1,C口则常常配合端口A和端口B工作,为这两个端口的输入/输出传输提供控制信号和状态信号。

39. 同步通信、异步通信的帧格式各是什么?什么是奇、偶校验?

答:异步通信的帧格式是用一个起始位表示传送字符的开始,用1-2个停止位表示字符结束。起始位与停止位之间是数据位,数据位后是校验位,数据的最底位紧跟起始位,其他各位顺序传送;同步通信的帧格式是在每组字符之前必须加上一个或多个同步字符做为一个信息帧的起始位。

40. 什么是波特率?若在串行通信中的波特率是1200b/s,8位数据位,1个停止位,无校验位,传输1KB的文件需要多长时间?

答:波特率是单位时间内通信系统所传送的信息量。

需要多长时间=1024/(1200/10)=8.53s

41. 对8255A进行初始化,要求端口A工作于方式1,输入;端口B工作于方式0,输出;端口C的高4位配合端口A工作,低4位为输入。设控制口的地址为006CH。

答:由题知应为10111001H(B9H)

MOV AL,B9H

MOV DX,006CH

OUT DX,AL

42. 设8255A的四个端口地址分别为00C0H、00C2H、00C4H和00C6H,要求用置0、置1的方法对PC6置1,对PC4置0。

答:MOV DX,00C0H ;端口地址

MOV AL,00001101 ;对PC6置1

OUT DX,AL

MOV AL,00001000 ;对PC4置0

OUT DX,AL

43. 试按照如下要求对8259A进行初始化:系统中只有一片8259A,中断请求信号用电平触发方式,下面要用ICW4,中断类型码为60H、61H、62H……67H,用全嵌套方式,不用缓冲方式,采用中断自动结束方式。设8259A的端口地址为94H和95H。

答:MOV DX,94H ;偶地址

MOV AL,00011011B ;ICW1

OUT DX,AL

MOV AL,10011111B ;ICW2 ,中断源在IR7

MOV DX,95H ;奇地址

OUT DX,AL

MOV AL,00000011B ;ICW4

OUT DX,AL

44. 试编程对8253初始化启动其工作。要求计数器0工作于模式1,初值为3000H;计数器1工作于模式3,初值为100H;计数器2工作于模式4,初值为4030H。设端口地址为40H、41H、42H和43H。

答:MOV AL,00011110H ; 控制字

OUT 43H,AL

MOV AL,3000H ;计数初值

OUT 40H,AL

MOV AL,01010110H ; 计数器1

OUT 43H,AL

MOV AL,100H

OUT 41H,AL

MOV AL,10011000H ; 计数器2

OUT 43H,AL

MOV AL,4030H

OUT 42H,AL

模拟试题一

一、简答题:

1.简述USB总线的特点。

答:1)具备即插即用特性,为USB接口设计的驱动程序和应用程序可自动启动、成本低,节省空间,为开放性的不具备专利版权的理想工业标准。

2)可动态连接和重新配置外设,支持热插拔功能;

3)允许多台设备同时工作;

4)可以向USB总线上的设备供电,总线上的设备可以自备电源;

5)通讯协议支持等时数据传输和异步消息传输的混合模式;

6)支持实时语音、音频、和视频数据传输。

2.什么是中断类型码?什么叫中断向量?什么叫中断向量表?它们之间有什么联系答:8086/8088系统可以处理256种中断,为了区别每一种中断,为每个中断安排一个号码,称为中断类型码。每一种中断服务程序在内存中的起始地址称为中断向量,以32位逻辑地址表示,即为CS:IP。把所有中断向量存储在内存中的某一个连续区中,这个连续的存储区称为中断向量表。

中断向量CS:IP在中断向量表中的位置为:中断向量表中偏移量为(中断类型码×4)的单元中存放IP的值,偏移量为(中断类型码×4+2)的单元中存放CS的值。

3.简述高速缓冲存储器Cache为什么能够实现高速的数据存取?

答:高速缓冲存储器Cache是根据程序局部性原理来实现高速的数据存取。即在一个较小的时间间隔内,程序所要用到的指令或数据的地址往往集中在一个局部区域内,因而对局部范围内的存储器地址频繁访问,而对范围外的地址则范围甚少的现象称为程序访问的局部性原理。

如果把正在执行的指令地址附近的一小部分指令或数据,即当前最活跃的程序或数据从主存成批调入Cache,供CPU在一段时间内随时使用,就一定能大大减少CPU访问主存的次数,从而加速程序的运行。

4.有一个由20个字组成的数据区,其起始地址为3500H:0320H。试写出数据区首末单元的实际地址。

答:数据区首地址=3500 H×10H+0320H=33320H

数据区末地址=33320H+28H-1=33347H

5.设有一个具有16位地址和8位数据的存储器,问:(1)该存储器能存书多少个字节的信息?(2)如果存储器由8K×4位RAM芯片组成,需要多少片?(3)需要地址多少位做芯片选择?

答:(1)因为8位二进制数为1个字节,所以16位地址能存储216=64KB个字节的信息;

(2)需要64K×8/8K×4=16片RAM

(3)因为需要16片来构成存储器,而16片需要4位地址线进行译码输出,故需要4位做芯片选择。

6.定性分析微型计算机总线的性能指标。

答:微型计算机总线的主要职能是负责计算机各模块间的数据传输,对总线性能的衡量也是围绕这一性能而进行的。性能中最重要的是数据传输率,另外,可操作性、兼容性和性能价格比也是很重要的技术特征。具体来说,总线的主要性能指标有以下几项:

(1)总线宽度:以位数表示。

(2)标准传输率Mb/s:是总线工作频率与总线宽度的字节数之积。

(3)时钟同步/异步:总线中与时钟同步工作的称为同步总线;与时钟不同步工作的称为异步总线。这取决于数据传输时源模块与目标模块间的协议约定。(4)信号线数:这是地址总线、数据总线和控制总线线数的总和。信号线数和系统的复杂程度成正比关系。

(5)负载能力:以系统中可以连接的扩展电路板数表示。

(6)总线控制方法:包括突发传输、并发工作、自动配置、仲裁方式、逻辑方式、中断方式等项内容。

(7)扩展板尺寸:这项指标对电路板生产厂家很重要。

(8)其他指标:电源是5V还是3V,能否扩展64位宽度等。

任何系统的研制和外围模块的开发,都必须服从其采用的总线规范。

7.虚拟存储器的含义是什么?

答:虚拟存储器是以存储器访问的局部性为基础,建立在主存-辅存物理体系结构上的存储管理技术。在存储系统中,由于主存容量不能满足用户的需要,因而引入辅存作为后援。即辅存做主存用,扩大编程者的使用空间。

二、编程及综合题

1.已知8255A的地址为0060H~0063H,A组设置方式1,端口A作为输入,PC6PC7作为输出,B组设置方式1,端口B作为输入,编制初始化程序.。

答案: MOV DX, 0063H

MOV AL, 00110111B

OUT DX, AL

2编写8253初始化程序。如下图所示(注意端口地址),要求3个计数通道分别完成以下功能:

(1)通道0工作于方式3,输出频率为2KHZ的方波;

(2)通道1产生宽度为480us的单脉冲;

(3)通道2用硬件方式触发,输出负脉冲,时间常数为26。

(提示:8253的端口地址分别为:0310H、0312H、0314H、0316H)

答案:

编写8253的初始化程序

1.确定端口地址:0310H、0312H、0314H、0316H

2.确定工作方式: 通道0,方式3

通道1,方式1

通道2,方式5

3.确定计数值: 通道0:N0=1MHz/2KHz=500

通道1:N1=480us/(1/1mhz)=480

通道2:N2=26

4.确定控制字:通道0:00110111B

通道1:01110011B

通道2:10011011B

对3个通道的初始化程序如下:

;通道0初始化程序

MOV DX, 316H

MOV AL,00110111B

OUT DX,AL

MOV DX,310H

MOV AL,00H

OUT DX, AL

MOV AL,05H

OUT DX,AL

;通道1的初始化程序

MOV DX, 316H

MOV AL, 001110011B

OUT DX, AL

MOV DX, 312H

MOV AL, 80H

OUT DX, AL

MOV AL, 04H

OUT DX, AL

;通道2初始化程序

MOV DX, 316H

MOV AL, 10011011B

OUT DX, AL

MOV DX, 314H

MOV AL,26H

OUT DX,AL

模式试题二

一、 填空:

1、设字长为八位,有x= -1,y=124,则有:[x+y]补= 01111011 [x-y] 补= 10000011;

2、数制转换:247.86= H =______________BCD;

3、在8086CPU中,由于BIU和EU分开,所以_____和_____ 可以重叠操作,提高了CPU的利用率;

4、8086的中断向量表位于内存的_______区域,它可以容纳____个中断向量, 每一个向量占____ 个字节;

5、8086系统中,地址FFFF0H是___________________ 地址;

6、8086CPU的MN/MX引脚的作用是____________________;

7、8251芯片中设立了_____、_____ 和______三种出错标志;

8、8086CPU中典型总线周期由____个时钟周期组成,其中T1期间,CPU输出______信息;如有必要时,可以在__________两个时钟周期之间插入1个或多个TW等待周期。

9、8259A共有___个可编程的寄存器,它们分别用于接受CPU送来的______命令字和________命令字。

二、简答题:

1、什么是信号的调制与解调?为什么要进行调制和解调?试举出一种调制的方式。串行长距离通信时,需要利用模拟信道来传输数字信号,由于信道的频带窄,一般为300~3400HZ,而数字信号的频带相当宽,故传输时必须进行调制,以免发生畸变而导致传输出错。(3分)

调制是将数字信号®模拟信号。而解调则是相反。例如FSK制(调频制或称数字调频)可将数字“1”和“0”分别调制成2400HZ和1200HZ的正弦波信号。(2分)

2、已有AX=E896H,BX=3976H,若执行ADD BX,AX指令,则结果BX,AX,标志位CF,OF,ZF各为何值?

BX=220CH (1分) AX=E896H (1分) CF=1 (1分) OF=0 (1分) ZF=0 (1分)

三、阅读程序与接口芯片初始化:

1、源程序如下:

MOV CL,4

MOV AX,[2000H]
SHL AL,CL
SHR AX,CL

MOV [2000H],AX

试问:j若程序执行前,数据段内(2000H)=09H,(2001H)=03H, 则执行后有(2000H)=_____,(2001H)=______。

k本程序段的功能_________________________。

2、源程序如下:

MOV AL,0B7H
AND AL,0DDH

XOR AL,81H

OR AL,33H

JP LAB1

JMP LAB2

试问:j执行程序后AL=_______;

k程序将转到哪一个地址执行:__________。

3、源程序如下:

MOV CX,9

MOV AL,01H

MOV SI,1000H

NEXT: MOV [SI],AL

INC SI

SHL AL,1

LOOP NEXT

试问:j执行本程序后有:AL=_____;SI=______;CX=______;

k本程序的功能是______________________________。

4、某系统中8253占用地址为100H~103H。初始化程序如下:

MOV DX, 103H

MOV AL, 16H

OUT DX, AL

SUB DX, 3

OUT DX, AL

试问:j此段程序是给8253的哪一个计数器初始化?安排工作在哪种工作方式?__________________;

k若该计数器的输入脉冲的频率为1MHZ,则其输出脉冲的频率为:___________。

5、已知某8255A在系统中占用88~8BH号端口地址,现欲安排其PA,PB,PC口全部为输出,PA,PB口均工作于方式0模式,并将PC6置位,使PC3复位,试编写出相应的初始化程序:

模式试题二 参考答案

一、填空题

2、F7.DCH 001001000111.10000110 BCD

3、取指令 执行指令

4、00000H~003FFH区 256个 4个

5、CPU复位以后执行第一条指令的地址

6、决定CPU工作在什么模式(最小/最大)

7、奇/偶错 帧格式错 溢出错

8、4个 地址 T3和T4

9、7个 初始化 操作

三、阅读程序与接口芯片初始化:

1、 (2000H)=39H (2001H)=00H

将(2000H),(2001H)两相邻单元中存放的未组合型BCD码压缩成组合型BCD码,并存入(2000H)单元,0®(2001H)

2、37H LAB2

3、0 1009H 0

对数据段内1000H~1008H单元置数,依次送入1,2,4,8,16,32,64,128,0共九个

4、计数器0 工作于方式3 45.454KHZ

5、 MOV AL, 80H

OUT 8BH,AL

MOV AL,ODH

OUT 8BH,AL

MOV AL,06H

OUT 8BH,AL

模式试题三

一、填空题

1、将十进制数279.85转换成十六进制数、八进制数、二进制数及BCD码数分别为:________H,________Q,_____B, BCD。

2、字长为8位的二进制数10010100B,若它表示无符号数,或原码数,或补码数,则该数的真值应分别为______D,______D或______D。

3、已知BX=7830H,CF=1,执行指令:ADC BX,87CFH之后,BX=____________,标志位的状态分别为CF=_______,ZF=_______,OF=________,SF=__________。

4、8086中,BIU部件完成______功能,EU部件完成 _____功能。

5、8086中引脚BHE信号有效的含义表示________________。

6、8086正常的存储器读/写总线周期由________个T状态组成,ALE信号在__________状态内有效,其作用是______________。

7、设8086系统中采用单片8259A,其8259A的ICW2=32H,则对应IR5的中断类型号为___________H,它的中断入口地址在中断向量表中的地址为______________H。

二、简答及判断题

1、某指令对应当前段寄存器CS=FFFFH,指令指针寄存器IP=FF00H,此时,该指令的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗?试举例说明

2、8086CPU的FLAG寄存器中,状态标志和控制标志有何不同?程序中是怎样利用这两类标志的?

3、设采用16550进行串行异步传输,每帧信息对应1个起始位,7个数据位,1个奇/偶校验位,1个停止位,波特率为4800,则每分钟能传输的最大字符数为多少个?

三、读图和作图题

1、8086系统中接口连接关系如下图所示。要求回答以下问题:

(1) 试分别确定8255,8253,8259及8251的端口地址;

(2) 设8255的PA口为输出,PB口为输入,试写出对PA口和PB口执行输入/输出操作的指令。

8255的端口地址为:___________________________________;

8253的端口地址为:___________________________________;

8259的端口地址为:___________________________________;

8251的端口地址为:___________________________________;

对PA口操作的I/O指令为_______________________________;

对PB口操作的I/O指令为______________________________。

2、作图题。

系统采用4个接口芯片:8253,8251,8259及8255。要求8253的通道0用作实时时钟,每当定时时间到之后向8259的IR2送入中断申请信号。8253通道1用作方波发生器作为8251的收发时钟脉冲。8253通道0,通道1的门控信号由8255 PC口的PC3和PC2控制。

(1) 画出4个芯片之间控制线的连接图;

(2) 8253的两个通道应分别工作在什么方式?

四、程序阅读题

1、源程序如下:

MOV AH, 0

MOV AL, 9

MOV BL, 8

ADD AL, BL

AAA

AAD

DIV AL

结果AL_________,AH=___________,BL=_____________。

2、源程序如下:

MOV AX, SEG TABLE ;TABLE为表头

MOV ES, AX

MOV DI, OFFSET TABLE

MOV AL, ‘0’

MOV CX, 100

CLD

REPNE SCASB

问:1) 该段程序完成什么功能?

2) 该段程序执行完毕之后,ZF和CX有几种可能的数值?各代表什么含义?

3、源程序如下:

CMP AX, BX

JNC L1

JZ L2

JNS L3

JNO L4

JMP L5

设AX=74C3H,BX=95C3H,则程序最后将转到哪个标号处执行?试说明理由。

4、源程序如下:

MOV DX, 143H

MOV AL, 77H

OUT DX, AL

MOV AX, 0

DEC DX

DEC DX

OUT DX, AL

MOV AL, AH

OUT DX, AL

设8253的端口地址为140H~143H,问:

(1)程序是对8253的哪个通道进行初始化?

(2)该通道的计数常数为多少?

(3)若该通道时钟脉冲CLK的周期为1µs,则输出脉冲OUT的周期为多少µs?

五、编程题

1、8255的编程。设8255的端口地址为200H~203H。

(1)要求PA口方式1,输入;PB口方式0输出;PC7~PC6为输入;PC1~PC0为输出。试写出8255的初始化程序。

(2)程序要求当PC7=0时置位PC1,而当PC6=1时复位PC0,试编制相应的程序。2、自BUFFER开始的缓冲区有6个字节型的无符号数:10,0,20,15,38,236,试编制8086汇编语言程序,要求找出它们的最大值、最小值及平均值,分别送到MAX、MIN和AVI三个字节型的内存单元。要求按完整的汇编语言格式编写源程序。

模式试题三参考答案

一、填空题

1、117.D99H 427.6631Q 000100010111.110110011001B

0010 01111001.1000 0101 BCD

2、148D -20D -108D 3、BX=0000H CF=1 ZF=1 OF=0 SF=0

4、总线接口功能 指令的译码及执行功能 5、高8位数据线D15~D8有效

6、4 T1 给外部的地址锁存器提供一个地址锁存信号 7、35H 000D4H~000D7H

二、简答及判断题

1、∵

故物理地址为0FEF0H。 指向该物理地址的CS,IP值不唯一。

例如:CS:IP=0000:FEF0H也指向该物理地址。

2、状态标志表示算术运算或逻辑运算执行之后,运算结果的状态,这种状态将作为一种条件,影响后面的操作。控制标志是人为设置的,指令系统中有专门的指令用于控制标志的设置或清除,每个控制标志都对某一特定的功能起控制作用。

3、每帧占1+7+1+1=10位,波特率为4800 bit/s,故每分钟能传送的最大字符数为

28800(个)

三、读图和作图题

1、 (1) A7 A6 A5 A4 A3 A2 A1 A0

1 0 0 0 任意 ´ ´ 0 Y0

1 0 0 1 任意 ´ ´ 0 Y1

1 0 1 0 任意 ´ ´ 0 Y2

1 0 1 1 任意 ´ ´ 0 Y3

\ 8255的端口地址为 80H, 82H, 84H, 86H

8253的端口地址为 90H, 92H, 94H, 96H

8259的端口地址为 A0H, A2H,

8251的端口地址为 B0H, B2H,

(2) OUT 80H, AL IN AL, 82H

2、 (1) 控制线连接图如图所示。

(2) 通道0工作在方式2—分频发生器;

通道1工作在方式3—方波速率发生器

四、程序阅读题

1、AL=01H AH=00 H BL=08H

2、(1) 从目的串中查找是否包含字符 ‘0’,若找到则停止,否则继续重复搜索。

(2) ZF=1, 说明已找到字符 ZF=0, 说明未找到字符

CX¹0,说明中途已找到字符退出 CX=0,且ZF=0说明串中无字符 ‘0’

3、 74C3H

- 95C3H

DF00H

且有:CF=1, ZF=0, SF=1, OF=1

\ 程序将转到L5标号处执行。

4、 (1) 程序对8253的通道1进行初始化。

(2)计数常数为10000D,BCD计数。

(3)工作在方式3,方波速率发生器 周期=10000´1µs=10000µS=10ms

五、编程题

1、(1) MOV DX, 203H MOV AL, 10111000B OUT DX, AL (2) MOV DX, 202H IN AL, DX MOV AH, AL

TEST AL, 80H

JNZ NEXT1

MOV DX, 203H

MOV AL, 00000011B ;对PC1置位

OUT DX, AL (2分)

NEXT1: MOV AL, AH

TEST AL, 40H

JZ NEXT2

MOV AL, 00000000B ; 对PC0复位

MOV DX, 203H

OUT DX, AL

NEXT2:……… (3分)

2、 DATA SEGMENT
BUFER DB 10,0,20,15,38,236

MAX DB 0

MIN DB 0

AVI DB 0

DATA ENDS (2分)

STACK SEGMENT PARA STACK‘STACK’

DW 100 DUP (?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK (1分)

START PROC FAR

BEGIN: PUSH DS

MOV AX,0

PUSH AX

MOV AX,DATA

MOV DS,AX

LEA DI,BUFFER

MOV DX,0 ;使DH=0,DL=0

MOV CX,6

MOV AX,0 ; 和清0

MOV BH,0 ; 最大值

MOV BL,0FFH ; 最小值 (2分)

LOP1: CMP BH,[DI]

JA NEXT1 ; 若高于转移

MOV BH,[DI]; 大值®BH

NEXT1: CMP BL,[DI] ;

JB NEXT2 ; 若低于转移

MOV BL,[DI]; 小值®BL (2分)

NEXT2: MOV DL,[DI]; 取一字节数据

ADD AX,DX ; 累加和

INC DI

LOOP LOP1

MOV MAX,BH;送大值

MOV MIN, BL;送小值 (3分)

MOV DL, 6

DIV DL, ;求平均值

MOV AVI, AL;送平均值

RET

START ENDP

CODE ENDS

END BEGIN (3分)

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值