微机原理与接口接口技术复习提纲文档格式.docx

上传人:b****8 文档编号:22900150 上传时间:2023-02-05 格式:DOCX 页数:34 大小:256.29KB
下载 相关 举报
微机原理与接口接口技术复习提纲文档格式.docx_第1页
第1页 / 共34页
微机原理与接口接口技术复习提纲文档格式.docx_第2页
第2页 / 共34页
微机原理与接口接口技术复习提纲文档格式.docx_第3页
第3页 / 共34页
微机原理与接口接口技术复习提纲文档格式.docx_第4页
第4页 / 共34页
微机原理与接口接口技术复习提纲文档格式.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

微机原理与接口接口技术复习提纲文档格式.docx

《微机原理与接口接口技术复习提纲文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理与接口接口技术复习提纲文档格式.docx(34页珍藏版)》请在冰豆网上搜索。

微机原理与接口接口技术复习提纲文档格式.docx

【Y】补=11101011B

【X+Y】补=【X】补+【Y】补=00100011B

(3)X=-1101001B,Y=-1010110B

【X+Y】补=【X】补+【-Y】补=10010111B+01010110=11101101B

5.译码器

此题答案为Y1,跟课本有不同

 

第2章微处理器与总线

2.1微处理器包括运算器、控制器、寄存器

2.1.1运算器由算术逻辑单元、通用或专用寄存器、内部总线

2.1.2控制器程序计数器、指令寄存器、指令译码器、时序控制部件、微操作控制部件

2.28088/8086微处理器

2.2.1指令流水线,内存分段管理(了解)

2.2.28088CPU的外部引脚及其功能(要了解最小模式下的方式,最大模式不作要求)

2.2.38088CPU的功能结构包含执行单元EU和总线接口单元BIU

2.2.4内部寄存器(需掌握)

2.2.5存储器的物理地址和逻辑地址、段寄存器

2.38036微处理器(不考查)

2.4奔腾处理器(不考查)

课本习题

2.1微处理器主要组成部分

微处理器包括运算器、控制器、内部寄存器

2.28088CPU中EU和BIU的主要功能,在执行指令时,BIU能直接访问存储器吗?

可以,EU和BIU可以并行工作,EU需要的指令可以从指令队列中获得,这是BIU预先从存储器中取出并放入指令队列的。

在EU执行指令的同时,BIU可以访问存储器,取下一条指令或指令执行时需要的数据。

2.38088CPU工作在最小模式,回答下面的问题

(1)当CPU访问存储器时,要利用那些信号?

WR#(写信号,#表示WR上加一横),RD#读选信号,IO/M#(输入输出存储器控制信号),ALE地址锁存信号、DEN#数据允许信号、DT/R#数据传送信号,地址线AD0-AD7、A8-A19

(2)当CPU访问I/O时,要利用那些信号?

2.4标志寄存器

CF进位标志位。

运算时有进位,CF=1

PF奇偶标志位。

当运算结果的低8位1的个数为偶数时PF=1

ZF零标志位。

运算结果为零时ZF=1

SF符号标志位运算结果的最高位为1时,SF=1

OF溢出标志位运算结果溢出时,OF=1

AF辅助进位,d3向d4进位的时,AF=1

2.58086/8088CPU中,有哪些通用寄存器和专用寄存器,并说明作用

(1)通用寄存器包括

1.数据寄存器AX、BX、CX和DX。

它们一般用于存放参与运算的数据或运算的结果。

AX主要存放算术逻辑运算中的操作数,并存放I/O操作的数据

BX存放访问内存的基地址

CX在循环和串操作指令中用作计数器

DX在寄存器间接寻址的I/O指令中存放I/O地址。

在做双字长运算时,DX与AX合起来存放一个双字长

2.地址寄存器SP、BP、SI和DI。

SP存放栈顶偏移地址,BP存放访问内存时的基地址。

SP和BP也可以存放数据,但它们的默认段寄存器都是SS。

SI和DI常在变址寻址方式中作为索引指针。

(2)专用寄存器包括

1.段寄存器CS、DS、ES和SS

2.控制寄存器IP、FLAGS。

Ip是指令指针寄存器,FLAGS标志寄存器

2.68086/8080CPU中,物理地址和逻辑地址,逻辑地址为1F00:

38A0H,物理地址多少,已知物理地址,逻辑地址唯一吗?

不唯一,逻辑地址为1F00:

38A0H,物理地址=1F00*16+38A0H=228A0H。

1.某微机的最大可寻址的内存空间为16MB,其CPU地址总线至少应有(D)条

A.32B.16C.20D.24

2.8086CPU外部的地址总线和数据总线分别为(B)位

A.16,16B.20,16C.16,8D.20,20

3.8086CPU在进行对外设输出操作时,控制信号

必须是(D)

A.0,0B.0,1C.1,0D.1,1

控制IO是搞电平,对外输出

高电平,见教材P41

4.决定计算机指令执行顺序的寄存器是,它总是指向。

5.8088CPU内的堆栈是一种特殊的数据存储区,堆栈操作是字操作(字/字长)其存取采用先进后出的原则(先进先出/先进后出),它由SP作地址指针管理。

(SP/BP)

判断

1.8086/8088允许各个逻辑段重叠和相邻。

(正确)

2.8086CPU在读入数据前,其

线变为高阻状态(正确)

填空题

完成下列各式补码数的运算,并根据结果设置标志SF、ZF、CF和OF,指出运算结果是否溢出。

(1)00101101B+10011100B=11001001BSF=1(最高位为1,结果为负),ZF=0(结果不全为0),CF=0(没有进位),OF=0(没有溢出),结果没有溢出。

(2)01011101B-10111010B这两个数都是补码,

【Y】补=10111010B【Y】反=11000101B【Y】真值=-1000101B【-Y】补=01000110B

【01011101B】补码+【01000110B】补码=1010011B

结果最高位为1,为负数,所以SF=1,ZF=0,(结果不全为0)CF=1(有借位或进位)OF=1,表示有溢出。

第3章指令系统

3.1指令格式

操作码存放运算数据或结果的地址(目标操作数)参加运算的数据或数据的地址(源操作数)

3.2寻址方式

3.2.1立即寻址MOVAX,3102H源操作数是立即操作数

3.2.2直接寻址MOVAX,【3102H】参加运算的数据存放在内存中,存放的地址由指令直接给出

3.2.3寄存器寻址MOVSIAX

3.2.4寄存器间接寻址MOVAX【SI】

3.2.5寄存器相对寻址MOVDADT【BX】注意p99页的例

3.2.6基址—变址寻址MOVAX,【BX】【SI】寻址方式由BX和BP的内容与SI和DI的内容相加而形成操作数的偏移地址。

3.2.7基址—变址寻址MOVAX,5【DI】【BX】,偏移地址=BX+DI+5

3.2.8隐含寻址

3.38086指令系统

3.3.1数据传送指令

3.3.1.1一般传送指令MOV

堆栈指令PUSH和POP

交换指令XCHG

查表转换指令XLAT(不作要求)

3.3.1.2输入/输出指令IN和OUT指令注意只有AX或AL才与I/O端口进行数据交换

INAL,DX

OUT44H,AX

3.3.1.3取偏移地址指令LEA

3.3.2算术运算指令

3.3.2.1加法运算指令

普通加法指令ADD

带进位的加法指令ADC

累加指令INC

3.3.2.2减法指令

不考虑借位减法指令SUB

考虑借位的减法指令SBB

累减指令DEC

求补指令NEG

比较指令CMP

3.3.2.3乘法指令(了解)

3.3.2.4除法指令(了解)

3.3.3逻辑运算和移位指令

与指令AND

或指令OR

非指令NOT(取反)

异或指令XOR

测试TEST指令(了解)

移位指令(了解)

3.3.4串操作指令

3.3.4.1串操作指令的共同特点

3.3.4.2重复操作前缀REP无条件重复前缀

3.3.4.3串操作指令:

MOVS;

CMPS;

SCANS;

SCANS;

STOS;

3.3.5程序控制指令

3.3.5.1JMP无条件转移指令,注意教材P131页例题

3.3.5.2有条件转移指令P132了解几个常见的条件转移指令,比如JZ,JA等

3.3.5.3循环指令LOOP

3.3.5.4过程调用指令:

CALL;

返回指令RET

3.3.5.5中断指令INT(不考查)

3.3.6处理器控制指令CLC清进位标志(了解)

3.1设DS=6000H,ES=2000H,SS=1500H,SI=00A0H,BX=0800H,BP=1200H,字符常数VAR为0050H,分别计算出下列源操作数的物理地址

(1)MOVAX,VAR【BX】【SI】源地址=DS*16+SI+BX+VAR=608F0H

(2)MOVDX,ES:

【BX】源操作数的地址为ES*16+BX=20800H

(3)MOVBX,20H【BX】源操作数的地址为DS*16+BX+20H=60820H

3.2假设DS=212AH,CS=0200H,IP=1200H,BX=0500H,位移量DATA=40H,【217A0H】=2300H,【217E0H】=0400H,【217E2H】=9000H,试确定下列转移指针的转移地址。

(1)JMPBX段内转移,转移目标物理地址=CS*16+BX=02500H

(2)JMPWORDPTR[BX]段内间接转移地址=CS*16+[BX]=02000H+[212A0H+0500H]=04300H

(3)JMPDWORDPTR[BX+DATA]

段间转移地址=[BX+DATA]=[DS*16+BX+DATA+2]*16+[DS*16+BX+DATA]=90400H

3.3判断下列指令是否正确,有错则指正

(1)MOVAH,CX错,两个操作数字长不一致,

(2)MOV33H,AL错,目标操作数不能为立即数

(3)MOVAX,[SI][DI]错,间接寻址中不允许两个间址寄存器同时为变址寄存器

(4)MOV[BX],[SI]错,两个操作数不能同时为存储器操作数

(5)ADDBYTEPTR[BP],256错,ADD指令要求两个操作等字长

(6)MOVDATA[SI],ES:

AX错,源操作数形式错,

(7)JMPBYTEPTR[BX]错,转移指令地址至少要16位

(8)OUT230H,AX错,当端口地址超出8位二进制的表达范围,必须采用间接寻址

(9)MOVDS,BP指令准确

(10)MUL39H错,乘法指令不允许操作数为立即数。

3.4已知AL=7BH,BL=38H,试问执行指令ADDAL,BL后,AF、CF、OF、PF、SF和ZF各为多少。

解答:

01111011+00111000=10110011

运算时最高位向前有进位,CF=1;

本题没有,CF=0;

当运算结果的低8位1的个数为偶数时PF=1;

结果中低8位1的个数为5,故PF=0

运算结果为零时ZF=1;

显然不为零,ZF=0

SF符号标志位运算结果的最高位为1时,SF=1;

确实如是,故SF=1;

OF溢出标志位运算结果溢出时,OF=1;

所以对于有符号数的相加,本题OF=1;

AF辅助进位,d3向d4进位的时,AF=1,本题确实有,故AF=1,

---以上需要会判断,如果考会将每个的说明先提示出来,只作判断

3.5按下列要求写出相应的指令或程序段

(1)写出两条使得AX内容为0的指令

(2)使得BL寄存器中的高4位和低4位互换

(3)屏蔽CX寄存器中的D11、D7和D3位,也就是使得这3位出来信号固定为0,其余不变

(4)测试DX中的D0位和D8位是否同时为1

(1)MOVAX,0或XORAX,AX;

异或逻辑运算

(2)MOVCL,4

ROLBLCL循环左移4位

(3)ANDCX,F777H;

与运算这个数为1111011101110111,故为F777H

(4)ANDDX0101H;

与运算这个数为0000000100000001,故为F777H

CMPDX0101H;

比较

JZONE;

若相等,则表示D0和D8位同时为1

3.6已知AX=8060H,DX=03F8H,端口PORT1的地址为48H,内容为40H;

PORT2的地址为84H,内容为85H,请指出下列指令执行后的结果

(1)OUTDX,AL;

AX=8060H,则AL=60H为内容输出到03F8H为地址的端口

(2)INAL,PORT1;

从地址为48H,读入一个字节,结果AL=40H

(3)OUTDX,AX;

将AX=8060H为内容,输出到地址为03F8H的端口

(4)INAX,48H;

从地址48H读入一个内容为16位二进制数

(5)OUTPORT2,AX;

将8060H输出到地址为85H的端口

3.7完成下列功能的程序段

(1)从地址为DS:

0012H的存储单元中传送一个数据56H到AL寄存器

(2)AL的内容与字节单元DS:

0013H的内容相乘

(1)MOVBYTEPTR[0012H],56H

MOVAL,[0012H]

(2)MULBYTEPTR[0013H]

3.1下列指令,正确的是(D)

A.MOVAL,1000B.MOV100,ALC.MOVAL,100HD.MOVAL,100

3.2假设AL=3,要使得AL=0CH,应执行的指令是(C)

A.NOTALB.ANDAL,0FHC.XORAL,0FHD.ORAL,0FH

3.3阅读程序段,请在注释中填写指令的结果

BUFDW4105;

伪指令,定义一个字变量BUF,它的内容为4105H。

MOVAL,BYTEPTRBUF;

AL=05H取BUF变量的低字节05H到AL中,由此AL=05H

MOVAH,8传送指令,AH=8

MULAH执行后AH=00H,AL=28H;

将AH*AL=08H*05H=28H结果送入AX,默认被乘数在AL中。

3.4将下列程序补充完整,程序的功能是在数据段ADDR1地址处有200个字节,要传送到数据段地址ADDR2处。

MOVAX,SEGADDRI;

取ADDRI所在的段地址

MOVDS,AX;

取AX的内容传送给DS,

MOVES,AX;

取AX的内容传送给ES,

MOVSI,OFFSETADDR1;

取源偏移地址,也就是ADDR1的偏移地址

MOVDI,OFFSETADDR2;

取目标操作数的偏移地址;

MOVCX,200;

将传送的个数赋给计数器寄存器CX

CLD;

清零传送方向

REPMOVSB;

串传送操作,是对字节进行的,故MOVSB

3.5写出一条能完成下述操作的指令

(1)将AX的高字节清零,低字节不变。

ANDAX,00FFH

(2)将CX的中间8位清零,其余位不变。

XOR0FF0H

第4章汇编语言

4.1汇编语言

4.1.1汇编语言结构

一个完整的汇编语言源程序通常由若干个逻辑段组成,包括数据段、附加段、堆栈段和代码段,分别银蛇到存储器的物理段上。

每个逻辑的段以SEGMENT语句开始,以ENDS语句结束,整个源程序用END语句结束

4.1.2汇编语言语句类型及格式

指令性语句和指示性语句

指令性语句由指令助记符等组成的可被CPU执行的语句,指示性语句只是告诉汇编程序如何对程序进行汇编,CPU不执行指令,不生成目标代码,成为伪操作和伪指令。

指令性语句的一般格式

【标号:

】【前缀】操作码【操作数】【,操作数】【;

注释】

指示性语句的一般格式为

【名字】伪操作操作数【,操作数,……】【;

加【】是可选项,不一定要

4.1.3汇编语言数据项及表达式

操作数可以是寄存器、存储器单元或数据项,而数据项又可以是常量、标号、变量和表达式。

(1)常量:

数字常量,字符串常量(比如‘B’或ASCII码)两种。

(2)符号:

只是程序员定义的一个符号

(3)变量:

变量类型有BYTE(字节)、WORD(字)、DWORD(双字)等,表示数据区中存取操作对象的大小。

(4)表达式

算术运算符

逻辑运算

关系运算符

取值运算符和属性运算符

A.OFFSET得到一个符号或变量的偏移地址

B.SEG得到一个标号或变量的段地址

C.PTR属性运算符用来指定位于其后的存储器操作数的类型

例如MOVAL,BYTEPTRVAR;

BYTEPTR指令将变量VAR变为字节操作数,PTR只对当前指令有效。

其他运算符比如[]里面是操作数的偏移地址段重设运算符“:

4.2伪指令不会产生目标代码

4.2.1数据定义伪指令

1.数据定义伪指令

数据定义伪指令用来定义变量的类型、给变量赋初值或给变量分配存储空间。

[变量名]伪操作操作数,

2.操作数

3.重复操作符

比如DATA1DB11H,22H,33H

DATA2DB20DUP(?

4.2.2符号定义伪指令

4.2.3段定义伪指令

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

……

段名ENDS

4.2.4设定段寄存器的伪指令

ASSUME段寄存器名:

段名[,段寄存器名:

段名[,……]]

CODESEGMENTPARAPUBLIC‘CODE’

ASSUMECS:

CODE,DS:

DATA,ES:

EDATA,SS:

STACK

4.2.5过程定义伪指令

过程名PROC[NEAR/FAR]

RET

过程名ENDP

4.2.6宏定义伪指令(了解)

4.3BIOS和DOS功能调用

4.3.1BIOS的调用(不考查)

4.3.2DOS的调用

键盘输入

MOVAH,1;

有键盘输入,功能号1送(AH),输入单个字符。

INT21H;

当按下键后,返回AL=字符的ASCII码

MOVAH,0AH;

显示器输出

MOVDL,<

要显示的字符>

;

要显示的字符必须放在DL中

MOVAH,2;

功能号送AH

执行系统功能调用

MOVDL,[BX];

返回到DOS

MOVAH,4CH

INT21H

4.4汇编程序设计要求能看懂一些程序,并不是不重要。

课后试题

4.1请分别用DB、DW、DD伪指令写出在DATA开始的连续8个单元中依次存放数据11H、22H、33H、44H、55H、66H、77H、88H的数据定义语句。

DATADB1H,22H,33H,44H,55H,66H,77H,88H

DATADW2211H,4433H,6655H,8877H

DATADD44332211H,88776655H

4.2若程序的数据段定义如下,写出各指令语句执行后的结果

DSEGSEGMENT

DATA1DB10H,20H,30H

DATA2DW10DUP(?

STRINGDB‘123’

DSEGENDS

(1)MOVAL,DATA1;

取变量DATA1的值。

指令执行后AL=10H

(2)MOVBX,OFFSETDATA2;

取变量DATA2的偏移地址。

指令执行后,BX=0003H。

(3)LEASI,STRING;

取变量STRING的偏移地址送寄存器SI,

ADDBX,SI;

将SI的内容(也就是STRING的地址0017H=23)与BX的内容(DTATA2的地址0003H)相加并将结果送BX。

指令执行后,SI=001AH

4.3试编写求两个无符号32位数之后的程序。

两数分别在MEM1和MEM2单元中,其和放在SUM单元。

MEM1DW1122H,3344H

MEM2DW5566H,7788H

SUMDW2DUP(?

CSEGSEGMENT

ASSUMECS:

CSEG,DS:

DSEG

START:

MOVAX,DSEG

MOVDS,AX

LEABX,MEM1;

取MEM1的偏移地址

LEASI,MEM2;

取MEM2的偏移地址

LEADI,SUM;

取SUM的偏移地址

MOVCL,2;

为什么要重复2次;

寄存器是16位,但相加的是32位的数,

CLC

AGAIN:

MOVAX,[BX]

ADCAX,[SI];

将MEM1和MEM2的内容相加,放在AX内。

MOV[DI],AX

ADDBX,2;

为什么要加2,将地址移两位。

每个单元只存放1字节。

ADDSI,2

ADDDI,2

LOOPAGAIN;

重复调用

HLT

CSEGENDS

ENDSTART

考查时,一般不会要求写完整的程序,但是要求补充其中的内容。

比如此题中的划线部分。

4.7执行下列指令后,A

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

当前位置:首页 > 总结汇报 > 学习总结

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

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