当前位置:文档之家› 微机原理及接口第四章习题答案复习课程

微机原理及接口第四章习题答案复习课程

微机原理及接口第四章习题答案复习课程
微机原理及接口第四章习题答案复习课程

“微机系统原理与接口技术”第四章习题解答

1.判断以下说法是否正确,如有错,请说明原因并改正。

(1)伪指令在汇编过程中不会产生二进制代码。

(2)宏和过程的相同之处是都可用于简化源程序书写、精简目标代码。

(3)在计算机中,高级语言通常需要转换为汇编语言后才能执行。

(4)汇编语言程序上机一般包括编辑、汇编、链接和调试几个步骤。

答:(1)正确。

(2)错误。宏不能精简目标代码。

(3)错误。高级语言程序经编译或解释后直接转换为目标代码。

(4)正确。

2.已知数据和符号定义

A1 DB ?

A2 DB 8

K1 EQU 100

判断下列指令的正误,并说明错误指令的原因。

(1)MOV K1,AX

(2)MOV A2,AH

(3)MOV BX,K1

MOV [BX],DX

(4)CMP A1,A2

(5)K1 EQU 200

答:(1)错误。K1是符号常数,在此处相当于立即数100,故不能做目的操作数。

(2)正确。

(3)正确。

(4)错误。A1、A2都是字节变量,相当于两个存储器单元,故不能同时出现在一条指令中直接进行比较。

(5)错误。用EQU定义的符号不能重新赋值,除非已用PURGE解除了原值。

3.若数据段中有定义

N UM1 EQU 23H

N UM2 DW 0

则指令MOV NUM2,NUM1 的源、目操作数的寻址方式以及指令执行后NUM2+1单元的内容分别是什么?

答:指令MOV NUM2,NUM1的源操作数使用立即数寻址,目的操作数使用直接寻址。指令执行后NUM2+1单元的内容是0。

4.设DS=6000H,BX=8432H,SS=5000H,SP=3258H,内存69632H~69635H单元的内容依次是00H、11H、22H、33H。4字节指令CALL DWORD PTR [BX+1200H] 本身位于2000H:3250H处的双字单元中。当8086执行该指令后转移至子程序入口时,CS、IP、SS、SP各寄存器以及栈顶2个字单元的内容分别是多少?

答:执行结果为CS=3322H,IP=1100H,SS=5000H,SP=3254H,栈顶的两个字即

断点地址,为2000H:3254H。

5.已知某数据段从物理地址03000H处开始,定义如下:

D SEG SEGMENT

ORG 2000H

A1 DD 2 DUP(7,1,?)

A2 DB 10 DUP(0,4,3 DUP(2),5)

CNT EQU 20H Array A3 DW 100 DUP(?)

D SEG ENDS

请分别用分析运算符SEG、OFFSET、LENGTH、SIZE、TYPE求出

A1、A2、A3的段基址、偏移量、类型及它们的LENGTH、SIZE。

答:(SEG A1)=0300H,(OFFSET A1)=2000H,(TYPE A1)=4,

(LENGTH A1)=2,(SIZE A1)=2×4=8;

(SEG A2)=0300H,(OFFSET A2)=2018H,(TYPE A2)=1,

(LENGTH A2)=10,(SIZE A2)=10×1=60;

(SEG A3)=0300H,(OFFSET A3)=2054H,(TYPE A3)=2,

(LENGTH A3)=100,(SIZE A3)=100×2=200

6.已知符号定义语句如下:

A LPHA EQU 100

B ETA EQU 25

G AMMA EQU 2

分别求下列各表达式的值。

(1)ALPHA*4 GT BETA = 100*4 GT 25 = 0FFFFH

(2)ALPHA MOD GAMMA+BETA = 100 MOD 2+25 = 25

(3)(BETA / 3)LE 5 =(25 / 3)LE 5 = 0

(4)ALPHA AND BETA = 100 AND 25 = 64H & 19H = 0

(5)GAMMA XOR(BETA EQ 25)= 2 (25 EQ 25) = 0FFFDH

7.已知数据段定义如下:

DSEG SEGMENT

ORG 6

ARA1 DD 110009H

ARA2 DW 2 DUP(?),‘64’

CONT1 EQU $-ARA2

COUT2 EQU ARA2 -ARA1

ARA3 DB CONT1 DUP(0FFH)

ARA4 DB 2 DUP (?, CONT2 DUP (5), ’$’ )

ORG $+2

VAR2 DW 569AH

DB ‘AB’

DSEG ENDS

用示意图说明该数据段的存贮单元分配情况。

题4-7 图

答:有关存储单元的内容如右图所示。

8.下列程序是否有错?如有错,请改正。该程序完成什么功能?。

D ATA SEGMENT

INBUF DW 100 DUP(?)

OUTBUF DW 100 DUP(?)

D ATA ENDS

C ODE SEGMENT

ASSUME CS:CODE,DS:DATA

M AIN PROC FAR

MOV AX,DATA

MOV DS,AX

I NIT:MOV SI,OFFSET INBUF

LEA DI,OUTBUF

MOV CX,100

REP MOVSB

M AIN ENDP

C ODE ENDS

END MAIN

答:改正之后的源程序清单如下(下划波浪线的语句是原来没有的或有错之处):DATA SEGMENT

INBUF DW 100 DUP(?)

OUTBUF DW 100 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA ;原ASSUME语句未说明ES MAIN PROC FAR

PUSH DS ; 补充的三条指令为主程序返回提供正确的地址

XOR AX,AX

PUSH AX

MOV AX,DATA

MOV DS,AX

MOV ES,AX ; MOVS指令以ES:DI为目的串指针,故应对ES赋值INIT:MOV SI,OFFSET INBUF

LEA DI,OUTBUF

MOV CX,100

CLD ; 从首址开始传送,应使D F=0

REP MOVSW ; 应传送的是100个字而非字节

RET ; 程序结束,返回DOS

MAIN ENDP

CODE ENDS

END MAIN

该程序完成的功能是:将INBUF表内的10个字数据复制到以OUTPUT开始的连续的内存单元中。

9.读下面程序,在其中的空处添上适当内容。该程序完成了什么功能?程序运行后,变量RS的值是多少?

DATA SEGMENT

BUF DB -13,24,5,-62,77,20,-7,145,0

CNT DB $ -BUF

RS DB 0

DATA ENDS

STACK SEGMENT PARA STACK‘STACK’

DB 256 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME DS:DATA,SS:STACK,CS:CODE

START PROC FAR

PUSH DS

MOV AX,0

PUSH AX

MOV AX,DATA

MOV DS,AX

LEA BX,BUF

MOV CH,0

MOV CL,

LP:MOV AL,[BX]

TEST AL,80H

JE CONT

INC RS

CONT:INC BX

LOOP LP

RET

START ENDP

CODE ENDS

END START

答:程序空处可填CNT,字节变量RS的最后结果是04H。该程序实现的功能是:统计数据段中以BUF为首址的带符号字节数据表中负数的个数,CNT为表中所有数据的个数,即表的长度。需要注意的是:十进制数据“145”在以二进制带符号字节数据形式存放时相当于“-111”。

10.编写一个完整的源程序,将数据35、-27、-13、6、-47、52、9、-3中的正数放入以BUFFER为首址的数据缓冲区中。

答:一种可能的程序如下实现:

DATA SEGMENT

BLOCK DB 35,-27,-13,6,-47,52,9,-3

COUNT EQU $-BLOCK

BUFFER DB COUNT DUP(?)

DATA ENDS

STACK SEGMENT PARA STACK‘STACK’

DW 40 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK

BEGIN:MOV AX,DATA

MOV DS,AX

MOV ES,AX ;需用STOS串操作指令

MOV CX,COUNT

LEA SI,BLOCK ;源数据区指针

LEA DI,BUFFER ;正数存放区指针

CLD ;自动增量

AGAIN:LODSB ;取源数据,并修改SI

TEST AL,80H ;取符号位,不影响AL

JS GO ;符号位=1,是负数,不存

STOSB ;存正数并修改DI

GO:LOOP AGAIN

MOV AH,4CH ;退出循环,返回DOS

INT 21H

CODE ENDS

END BEGIN

11.已知有一个长100个字的数据块,存放在以3DA0H:1000H开始的存储区域内。试编写一个完整的汇编语言程序,将该数据块复制到以3DA0H:1008H开始的存储区内。

答:一种可能的程序如下实现:

DATA SEGMENT AT 3DA0H

ORG 1000H

BLOCK DW 104 DUP(?)

DATA ENDS

SSEG SEGMENT PARA STACK‘SSEG’

DB 100 DUP(?)

SSEG ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:SSEG,DS:DATA,ES:DATA

MAIN PROC FAR

PUSH DS

MOV AX,0

PUSH AX

MOV AX,SEG BLOCK

MOV DS,AX

MOV ES,AX

MOV CX,200 ;重复次数

LEA SI,BLOCK

ADD SI,199 ;SI=10C7H

MOV DI,SI

ADD DI,8 ;DI=10CFH

STD ;自动减量

REP MOVSB

RET

MAIN ENDP

CODE ENDS

END MAIN

简析:

由题意可知,源数据区(占用地址3DA0:1000H~3DA0:10C7H,共200个字节)与目标数据区(占用地址3DA0:1008H~3DA0:10CFH,共200个字节)是重叠的。若从首址开始增量传送(D F=0),将破坏1008H以后的源数据,所以必须从末址向首址减量传送(D F=1)。

数据段初始化时,有以下几点需注意:段基址规定为3DA0H,故应在段定义伪指令SEGMENT后加上AT语句;源数据区首址的偏移量规定为1000H,故应使用ORG 语句指明;对源、目标数据区进行定义时,应注意目标数据区首址的偏移量是1008H。如果定义为:

ORG 1000H

SOUR DW 100 DUP(?);源数据区

DEST DW 100 DUP(?);目标数据区

则目标数据区首址的偏移量实际上是10C8H,不合题意。可将它们统一定义为足够长度(至少104字或208字节)的变量,如参考程序所示。

指针初始化时,可以将SI、DI分别置为10C7H、10CFH,且CX=200,即进行字节的传送,使用MOVSB;亦可将SI、DI分别置为10C6H、10CEH,且CX=100,即进行字的传送,相应使用MOVSW。

12.从内存单元BUF开始的缓冲区中有7个8位无符号数,依次为13H、0D8H、92H、2AH、66H、0E0H、3FH。编程找出它们的中间值并放入RES单元,且将结果以“(RES) = ?”的格式显示在屏幕上。

答:一种可能的程序如下实现:

DATA SEGMENT

BUF DB 13H,0D8H,92H,2AH,66H,0E0H,3FH

RES DB ?;中间数的存放单元

STR DB ‘(RES)=’

STR1 DB ?,?,‘$’;结果字符串

DATA ENDS

SSEG SEGMENT PARA STACK‘SSEG’

DB 100 DUP(?)

SSEG ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:SSEG,DS:DATA,ES:DATA

MAIN PROC FAR ;主程序

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DATA

MOV DS,AX

MOV ES,AX ;有STOS指令,需用ES

MOV CX,6 ;外循环次数,比6次

AGN:MOV SI,OFFSET BUF

MOV DI,SI

INC DI ;SI、DI指向相邻2数

MOV DX,6 ;内循环次数,比6次

AGN1:MOV AL,[SI]

CMP AL,[DI] ;两个无符号数相比较

JB UNCH ;小于则转,不互换

EXCH:XCHG AL,[ DI ] ;前1单元较大,则互换

MOV [ SI ],AL ;大数放在后面

UNCH:INC SI ;修改指针,指向下一个数

INC DI

DEC DX

JNZ AGN1 ;未处理完,继续内循环

LOOP AGN ;外循环

DONE:MOV AL,[SI-3] ;排序完成,取中间数

MOV RES,AL

AND AL,0F0H ;分离高半字节

MOV CL,4

SHR AL,CL

CALL BATR ;调子程序,将AL值转换为ASCII码

LEA DI,STR1 ;DI指向结果单元

CLD

STOSB ;存放转换结果

MOV AL,RES

AND AL,0FH ;分离并转换低半字节

CALL BATR

STOSB

LEA DX,STR ;显示整个字符串

MOV AH,09H

INT 21H

RET

MAIN ENDP ;主程序MAIN结束

;子程序BATR,实现16进制数到ASCII码的转换

BATR PROC NEAR

CMP AL,10 ;入口参数为AL

JB NUM ;是数字,则转NUM

ADD AL,’A’-10-’0’;字母

NUM:ADD AL,’0’

RET

BATR ENDP ;子程序结束

CODE ENDS

END MAIN

简析:

本例的基本思路是:先把7个无符号数按大小排序,排序完成之后取位于中间的一个数即为中间值。然后将该16进制数转换为两个对应的ASCII码,再与要求的格式字符一起输出送显即可。

数据排序可以是从大到小、或从小到大排列,本参考程序完成从小到大排序,由一个双重循环结构实现。内循环完成一个数与其它数之间的一一比较,并使每次比较所得的小数置于低地址单元。外循环实现所有数之间的两两相较。共7个数据,故内、外循环中的比较次数均为6次。

编程时需注意:无符号数比较大小应使用JA、JB、JAE、JBE指令,本例完成从小到大的排列,故用JB控制转移到UNCH;若要从大到小排列,则用JA代替JB即可。

对两个循环体进行初始化时,需仔细考虑指针和循环控制寄存器的初值。在数据段的定义中,分别定义STR、STR1两个变量名字,是为了便于在STR1处存放转换结果;显示时使DX直接指向STR,以STR1末尾的“$”为结束符。中间值找出之后,应把高、低半字节相分离,并分别转换为各所对应的ASCII码。

13.设某测试系统中,1号端口为测试口,所得数据是0~9之间的十进制整数;2号端口为显示口,对应于数字0~9的LED七段共阴显示码依次为:3FH、06H、5BH、4FH、66H、6DH、3DH、07H、7FH、6FH。编写一段查表送显的程序,要求:先从测试口读入一个数据,再查表将相应的显示码从显示口送出,如此反复进行直至读入数据“0FFH”为止。

答:一种可能的程序如下实现:

DATA SEGMENT

TAB DB 3FH,06H,5BH,4FH,66H

DB 6DH,3DH,07H,7FH,6FH ;0~9的七段码

DATA ENDS

STACK SEGMENT PARA STACK‘STACK’

DW 50 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:STACK,DS:DATA

START:MOV AX,DATA

MOV DS,AX

LEA BX,TAB ;BX指向表首址

NEXT:IN AL,1 ;从测试口输入

CMP AL,0FFH

JE STOP ;是0FFH,结束

XLAT TAB ;不是0FFH,查表转换

OUT 2,AL ;向显示口输出七段码

JMP NEXT ;继续测试

STOP:MOV AH,4CH

INT 21H

CODE ENDS

END START

14.编程实现以下操作:从键盘输入4个数字,分别作为2个10~99之间的十进制数。求它们的和,并把结果以三位十进制数的形式显示在屏幕上。要求:输入回显的两个加数与送显的和之间有适当的分隔,以示区别。格式可自行拟定。

答:一种可能的程序如下实现:

DATA SEGMENT

NUM1 DB ?,?;加数1,高位在前,以非组合BCD码存放

NUM2 DB ?,?;加数2,高位在前,以非组合BCD码存放

SUM DB ?,?,?,‘$’;存放结果的ASCII码,以‘$’为结束符

DATA ENDS

STACK SEGMENT PARA STACK‘STACK’

DW 50 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:STACK,DS:DATA,ES:DATA

FIRST:MOV AX,SEG NUM1

MOV DS,AX

MOV ES,AX ;有STOS指令,需用ES

CLD ;自动增量,先输入高位

MOV CX,2

LEA DI,NUM1 ;输入加数1

IN1:MOV AH,1 ;DOS功能调用,单字符输入

INT 21H

AND AL,0FH ;ASCII码转换为非组合BCD码

STOSB

LOOP IN1

MOV DL,‘+’;输出加号,以分隔2个加数

MOV AH,2

INT 21H

MOV CX,2

LEA DI,NUM2 ;输入加数2

IN2:MOV AH,01H

INT 21H

AND AL,0FH

STOSB

LOOP IN2

MOV DL,‘=’;输出等号,分隔加数与结果

MOV AH,02H

INT 21H

LEA SI,NUM1

INC SI ;SI指向加数1的低位

LEA BX,NUM2

INC BX ;BX指向加数2的低位

LEA DI,SUM

ADD DI,2 ;DI指向结果的末单元

STD ;自动减量,由低向高相加

MOV CX,2 ;相加次数

CLC ;清进位,准备用ADC

AD:LODSB ;取加数1的低位,修改SI

ADC AL,[BX] ;2数相加,带进位

AAA ;未组合BCD码的十进制调整

PUSHF

ADD AL,30H ;BCD码向ASCII码转换

POPF

;因未组合BCD码的高4位为0,故加30H不会影响C F

STOSB ;存和,并修改DI。C F不变

DEC BX ;指向加数2的高位。C F不变

LOOP AD

ADC BYTE PTR [DI],30H ;BCD码向ASCII码转换

;高位相加若产生进位,则使SUM单元加1(表示百位),故使用ADC指令

LEA DX,SUM ;输出结果

MOV AH,09H

INT 21H

MOV AH,4CH ;返回DOS

INT 21H

CODE ENDS

END FIRST

简析:

按照本参考程序,屏幕显示格式如“73+46=119”的样式。基本思路是:首先调用DOS功能,从键盘输入2个0~9之间的数字(字符串输入的AH调用号为10,单个字符输入的AH调用号为1),然后向CRT输出“+”(单个字符输出的AH调用号为2);再由键盘输入2个数,然后输出“=”。将两次输入的数分别作为2个加数相加,得到的和经十进制调整后,向CRT输出(字符串输出的AH调用号为9)。

以下几处需进行码制转换:调用单个字符输入功能后,AL中的出口参数为各数字键所对应的ASCII码,故应转换为BCD码才能进行加运算。转换方式:与0FH相与,所得为未组合BCD码。2个未组合BCD码相加,和应该用AAA指令进行十进制调整,调整结果反映在累加器和标志位C F上。加法完成之后,应将结果逐位转换为ASCII码,才可以向CRT输出。

做加法运算时还应注意:加数输入之后,先取两个低位相加,再取高位相加(同时加上低位相加产生的进位),需仔细检查指针。若用循环结构完成加运算,则进入循环之前必须清C F,方可在循环体中使用ADC指令。

15.有一个长度不超过100字节的字符串,以回车符结尾。编程统计其中非空格的字符个数,并将统计结果以自拟格式显示在CRT上。

答:一种可能的程序如下实现:

DATA SEGMENT

STR DB ‘It’’s a fine day, isn’’t it?’,0DH,‘$’

;依题意以0DH为结束符。加上“$”便于显示整个字符串

COUNT EQU $-STR-2 ;串长中不包括结束符和“$”符号NUM DB 0 ;置统计结果初值为0

STR1 DB ‘The number of non-space charactors is’,‘$’

DATA ENDS

STACK SEGMENT PARA STACK‘STACK’

DB 100 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:STACK,DS:DATA,ES:DATA START:MOV AX,DATA

MOV DS,AX

MOV ES,AX ;有SCAS指令,需用ES

LEA DI,STR

CLD

MOV AL,20H ;关键字符(空格)

MOV CX,COUNT

NEXT:SCASB

JE SKIP ;是空格,跳过下一句

INC NUM ;非空格字符,NUM加1

SKIP:LOOP NEXT

LEA DX,STR ;显示原字符串

MOV AH,09H

INT 21H

MOV DL,0AH ;显示换行符,以便显示另一字串

MOV AH,2

INT 21H

LEA DX,STR1 ;显示另一个字符串

MOV AH,9

INT 21H

;将16进制的统计结果转换为十进制数,再转换为两个ASCII码输出

MOV AL,NUM

MOV AH,0 ;AX中为待转换16进制数

MOV BL,10

DIV BL ;AX / BL

;商(十位)在AL中,余数(个位)在AH中,均为未组合BCD码

PUSH AX ;入栈保护

OR AL,30H ;将十位数转换为ASCII码

MOV DL,AL ;送CRT显示

MOV AH,2

INT 21H

POP AX ;恢复除法运算的结果

ADD AH,30H ;将个位数转换为ASCII码

MOV DL,AH ;显示

MOV AH,2

INT 21H

MOV AH,4CH ;完成,返回DOS

INT 21H

CODE ENDS

END START

简析:

本例的关键在于统计结果的显示。统计完成后,结果单元中是一个16进制数。为符合一般习惯,应在CRT上显示十进制数,因此首先用除法将十位、个位分离开,再将其分别转换为ASCII码输出。由于除数是10,故相除之后得到的商(十位数)和余数(个位数)必在0~9范围内,即未组合BCD码,所以很容易转换为ASCII码。

编程时注意:DIV指令执行后结果在AX中,而DOS功能调用必须用AH为调用号,故应保护AX的内容。另外,原题已告知字串的结束符是0DH,故亦可通过检索结束符(0DH)的方式控制循环。

另外请注意:数据段中定义的STR串中出现的单引号前必须用另一个单引号转义,如“’s”应为“’’s”。

16.数据段中有1个由小写英文字母组成的字符串,编程将各小写字母转换成对应的大写字母,并存放起来。

答:一种可能的程序如下实现:

DSEG SEGMENT

STR1 DB ‘djdwpneasmv’,‘$’

COUNT EQU $-STR1-1

CHAR DB 0AH,0DH

STR2 DB COUNT DUP(?),‘$’

DSEG ENDS

SSEG SEGMENT PARA STACK‘SSEG’

DW 100 DUP(?)

SSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG,SS:SSEG,DS:DSEG,ES:DSEG

TRAN PROC FAR

PUSH DS

SUB AX,AX

PUSH AX

MOV AX,DSEG

MOV DS,AX

MOV ES,AX ;有STOS指令,需用ES

LEA DX,STR1 ;显示小写字母串

MOV AH,9

INT 21H

CLD ;自动增量

LEA SI,STR1 ;SI指向小写字母串

LEA DI,STR2 ;DI指向结果存放处

MOV CX,COUNT ;转换次数

NEXT:LODSB ;取1个小写字母至AL中SUB AL,‘a’;转换为大写字母

ADD AL,‘A’

STOSB ;存放

LOOP NEXT

MOV DX,OFFSET CHAR ;换行显示大写字母串

MOV AH,9

INT 21H

RET

TRAN ENDP

CSEG ENDS

END TRAN

微机原理学习心得

微机原理学习心得 本学期的微机原理课程即将要结束,以下是关于微机这门课程的心得体会: 初学《微机原理》时,感觉摸不着头绪。面对着众多的术语、概念及原理性的问题不知道该如何下手。在了解课程的特点后,我发现,应该以微机的整机概念为突破口,在如何建立整体概念上下功夫。“麻雀虽小,五脏俱全”可以通过学习一个模型机的组成和指令执行的过程,了解和熟悉计算机的结构、特点和工作过程。 《微机原理》课程有许多的新名词、新专业术语。透彻理解这些名词、术语的意思,为今后深入学习打下基础。一个新的名词从首次接触到理解和应用,需要一个反复的过程。而在众多概念中,真正关键的有很多。比如“中断”概念,既是重点又是难点,如果不懂中断技术,就不能算是搞懂了微机原理。在学习中凡是遇到这种情况,绝对不轻易放过,要力求真正弄懂,搞懂一个重点,将使一大串概念迎刃而解。 学习过程中,我发现许多概念很接近,为了更好的掌握,将一些容易混淆的概念集中在一起进行分析,比较它们之间的异同点。比如:微机原理中,引入了计算机由五大部分组成这一概念;从中央处理器引出微处理器的定义;在引出微型计算机定义时,强调输入/输出接口的重要性;在引出微型计算机系统的定义时,强调计算机软件与计算机硬件的相辅相成的关系。微处理器是微型计算机的重要组成部

分,它与微型计算机、微型计算机系统是完全不同的概念。 在微机中,最基础的语言是汇编语言。汇编语言是一个最基础最古老的计算机语言。语言总是越基础越重要。在重大的编程项目中应用最广泛。就我的个人理解,汇编是对寄存的地址以及数据单元进行最直接的修改。而在某些时候,这种方法是最有效,最可靠的。比如,最近闹得沸沸扬扬的珊瑚虫一案,其软件制作的核心人物就是使用汇编语言来创造闻名遐迩的QQ查IP软件-----珊瑚虫,并成立了有名的珊瑚虫工作室,其威力可见一斑。 然而,事物就是有两面性,有优点自然缺点也不少。其中,最重要的一点就是,汇编语言很复杂,对某个数据进行修改时,本来很简单的一个操作会用比较复杂的语言来解决,而这些语言本身在执行和操作的过程中,占有大量的时间和成本。在一些讲求效率的场合,并不可取。 汇编语言对学习其他计算机起到一个比较、对照、参考的促进作用。学习事物总是从最简单的基础开始的。那么学习高级语言也当然应当从汇编开始。学习汇编语言实际上是培养了学习计算机语言的能力和素养。个人认为,学习汇编语言对学习其他语言很有促进作用。 汇编语言在本学期微机学习中有核心地位。本学期微机原理课程内容繁多,我认为在学习中要考虑到“学以致用”,不能过分强调课程的系统性和基本理论的完整性,而应该侧重于基本方法和应用实例。从微机应用系统的应用环境和特点来看,微机系统如何与千变万化的外部设备、外部世界相连,如何与它们交换信息,是微机系统应用中的关键所在,培养一定的微机应用系统的分析能力和初步设计能

微机原理与接口技术(第三版)课本习题答案

第二章 8086体系结构与80x86CPU 1.8086CPU由哪两部分构成它们的主要功能是什么 答:8086CPU由两部分组成:指令执行部件(EU,Execution Unit)和总线接口部件(BIU,Bus Interface Unit)。指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。 2.8086CPU预取指令队列有什么好处8086CPU内部的并行操作体现在哪里答:8086CPU的预取指令队列由6个字节组成,按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。从速度上看,该指令队列是在CPU内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。8086CPU 内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。 5.简述8086系统中物理地址的形成过程。8086系统中的物理地址最多有多少个逻辑地址呢答:8086系统中的物理地址是由20根地址总线形成的。8086系统采用分段并附以地址偏移量办法形成20位的物理地址。采用分段结构的存储器中,任何一个逻辑地址都由段基址和偏移地址两部分构成,都是16位二进制数。通过一个20位的地址加法器将这两个地址相加形成物理地址。具体做法是16位的段基址左移4位(相当于在段基址最低位后添4个“0”),然后与偏移地址相加获得物理地址。由于8086CPU的地址线是20根,所以可寻址的存储空间为1M字节,即8086系统的物理地址空间是1MB。逻辑地址由段基址和偏移地址两部分构成,都是无符号的16位二进制数,程序设计时采用逻辑地址,也是1MB。 6.8086系统中的存储器为什么要采用分段结构有什么好处 答:8086CPU中的寄存器都是16位的,16位的地址只能访问64KB的内存。086系统中的物理地址是由20根地址总线形成的,要做到对20位地址空间进行访问,就需要两部分地址

(完整版)微机原理及接口技术(习题答案)

范文范例学习指导 第1章微机运算基础 习题和思考题 1.请完成以下计算: 174.66D=(10101110.10101)B=(AE. A8)H 10101110101.01011B=(1397.344)D=(575.58)H 4BCH=(010*********)B=()BCD 2.设字长为8位,X=(2A)16,当X分别为原码、补码、反码和无符号数的时候,其真值 是多少? 答:当X表示原码时,其真值为:+101010 当X表示补码时,其真值为:+101010 当X表示反码时,其真值为:+101010 当X表示无符号数数时,其真值为:00101010 3.设字长为8位,用补码形式完成下列计算,要求有运算结果并讨论是否发生溢出? 120+18 -33-37 -90-70 50+84 答:120+18 其补码形式分别为:(120)补=01111000 (18)补=00010010 01111000 + 00010010 10001010 由于C s=0 ,C p=1,因此有溢出,结果错误 -33-37 其补码形式为:(-33)补=11011111 (-37)补=11011011 11011111 +11011011 10111010 由于C s=1, C p=1,所以没有溢出,结果正确 -90-70 其补码形式为:(-90)补=10011100 (-70)补=10111010 10011100 +10111010 01010110 由于C s=1, C p=0,所以有溢出,结果错误 50+84

其补码形式为:(50)补=00110010 (84)补=01010100 00110010 +01010100 10000110 由于C s=0, C p=1,所以有溢出,结果错误 4.请写出下列字符串的ASCII码值。 My name is Zhang san. 4D 79 6E 61 6D 65 69 73 5A 68 61 6E 67 73 61 6E 2E 第2章 80X86微机系统 习题与思考题 1.微型计算机主要由哪些基本部件组成?各部件的主要功能是什么? 答:微型计算机主要由输入设备、运算器、控制器、存储器和输出设备组成。 各部件的功能分别是:1、输入设备通过输入接口电路将程序和数据输入内存;2、运算器是进行算术运算和逻辑运算的部件,它是指令的执行部件;3、控制器是计算机的指挥中心,它负责对指令进行译码,产生出整个指令系统所需要的全部操作的控制信号,控制运算器、存储器、输入/输出接口等部件完成指令规定的操作;4、存储器用来存放程序、原始操作数、运算的中间结果数据和最终结果数据; 5、输出设备是CPU通过相应的输出接口电路将程序运行的结果及程序、数据送到的设备; 2.微处理器的发展过程是什么? 答:微型计算机的发展过程是: 第一代(1946~1957)——采用电子管为逻辑部件,以超声波汞延迟线、阴极射线管、磁芯和磁鼓等为存储手段;软件上采用机器语言,后期采用汇编语言。 第二代(1957~1965)——采用晶体管为逻辑部件,用磁芯、磁盘作内存和外存;软件上广泛采用高级语言,并出现了早期的操作系统。 第三代(1965~1971)——采用中小规模集成电路为主要部件,以磁芯、磁盘作内存和外存;软件上广泛使用操作系统,产生了分时、实时等操作系统和计算机网络。 第四代(1971~至今)——采用大规模集成电路(LSI)、超大规模集成电路(VLSI)为主要部件,以半导体存储器和磁盘为内、外存储器;在软件方法上产生了结构化程序设计和面向对象程序设计的思想。 3.简述80486微处理器的基本结构。 书12页 4.80486微处理器的工作模式有几种?当CS内容为1000H,IP内容为7896H,求在实地址 模式下的物理地址为多少? 答:实模式和保护模式及虚拟8086模式。当CS内容为1000H,IP内容为7896H,在实地

微机原理课程总结

微机原理与接口技术课程总结 班级:03 学号:B12020115 某:朱松峰

微机原理与接口技术课程总结 这学期我们学习了微机原理与接口技术这门课程,这门课学起来是很难的,老师讲课很有激情,也很有层次,重点都告诉我们,每节课上课的时候都会回顾上节课的内容,也会找同学回答问题。经过一个学期的学习,我对《微机原理与接口技术》这门课也有了一定的认识。 第一节课老师反复强调需要高度熟练掌握的☆☆☆☆☆级重点计算机的主要组成部分:计算机主要由中央处理器(CPU),内存(memory),I/O接口和系统总线组成。第一章讲了计算机的发展史,微型计算机的特点和分类,微型计算机的系统组成,微型计算机的工作过程。都是些概念性的内容。 第二章8086处理器,需要高度熟练掌握的☆☆☆☆☆级重点内容有8086/8088的内部结构图,8086/8088CPU引脚功能,物理地址的计算,8086最小模式系统的典型配置,8086总线周期各个T状态。需要掌握的有标志寄存器各标志位含义。 总线接口部件(BIU)是联系微处理器内部与外部的重要通道,其主要功能是负责微处理器内部,与存储器和I/O接口之间的数据传送。具体的讲,BIU完成一下几个主要任务(1)取指令和预取指令(2)配合EU执行的指令(3)形成物理地址。BIU由段寄存器(代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加段寄存器ES)、指令指针寄存器、地址加法器、总线控制电路和指令队列缓冲器等组成。执行部件(EU):是执行指令并对各个硬件部分进行控

制的部件,包含一个16位的算术逻辑元件,8个16位的通用寄存器,一个16位的状态标志寄存器,一个数据暂存寄存器和EU控制电路。他的主要功能简单地说就是执行全部指令。 8086/8088的内部结构框图 8086/8088CPU引脚功能:AD15~AD0(Address Data Bus):16位地址/数据总线,分时复用。传输地址时三态输出,传输数据时三态双向输入/输出。A19/S6~A16/S3(Address/Status):地址/状态线,三态,输出,分时复用。BHE/S7:高8位数据线允许/状态信号,三

微机原理与接口技术(第二版) 清华大学出版社

习题1 1.什么是汇编语言,汇编程序,和机器语言? 答:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。 汇编语言是面向及其的程序设计语言。在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。这种用符号代替机器语言的二进制码,就把机器语言编程了汇编语言。 使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。 2.微型计算机系统有哪些特点?具有这些特点的根本原因是什么? 答:微型计算机的特点:功能强,可靠性高,价格低廉,适应性强、系统设计灵活,周期短、见效快,体积小、重量轻、耗电省,维护方便。 这些特点是由于微型计算机广泛采用了集成度相当高的器件和部件,建立在微细加工工艺基础之上。 3.微型计算机系统由哪些功能部件组成?试说明“存储程序控制”的概念。 答:微型计算机系统的硬件主要由运算器、控制器、存储器、输入设备和输出设备组成。 “存储程序控制”的概念可简要地概括为以下几点: ①计算机(指硬件)应由运算器、存储器、控制器和输入/输出设备五大基本部件组成。 ②在计算机内部采用二进制来表示程序和数据。 ③将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预的情况下,自动、高速的从存储器中取出指令加以执行,这就是存储程序的基本含义。 ④五大部件以运算器为中心进行组织。 4.请说明微型计算机系统的工作过程。 答:微型计算机的基本工作过程是执行程序的过程,也就是CPU自动从程序存

放的第1个存储单元起,逐步取出指令、分析指令,并根据指令规定的操作类型和操作对象,执行指令规定的相关操作。如此重复,周而复始,直至执行完程序的所有指令,从而实现程序的基本功能。 5.试说明微处理器字长的意义。 答:微型机的字长是指由微处理器内部一次可以并行处理二进制代码的位数。它决定着计算机内部寄存器、ALU和数据总线的位数,反映了一台计算机的计算精度,直接影响着机器的硬件规模和造价。计算机的字长越大,其性能越优越。在完成同样精度的运算时,字长较长的微处理器比字长较短的微处理器运算速度快。 6.微机系统中采用的总线结构有几种类型?各有什么特点? 答:微机主板常用总线有系统总线、I/O总线、ISA总线、IPCI总线、AGP总线、IEEE1394总线、USB总线等类型。 7.将下列十进制数转换成二进制数、八进制数、十六进制数。 ①(4.75)10=(0100.11)2=(4.6)8=(4.C)16 ②(2.25)10=(10.01)2=(2.2)8=(2.8)16 ③(1.875)10=(1.111)2=(1.7)8=(1.E)16 8.将下列二进制数转换成十进制数。 ①(1011.011)2=(11.375)10 ②(1101.01011)2=(13.58)10 ③(111.001)2=(7.2)10 9.将下列十进制数转换成8421BCD码。 ① 2006=(0010 0000 0000 0110)BCD ② 123.456=(0001 0010 0011.0100 0101 0110)BCD 10.求下列带符号十进制数的8位基2码补码。 ① [+127]补= 01111111

《微机原理及应用》课程.

《微机原理及应用》课程 一、制定实验教学大纲依据 本大纲根据《微机原理及应用》教学大纲对学生实验能力培养要求而制定。 二、本课程实验教学的地位和作用 微机原理实验是验证、巩固和补充课堂讲授的理论知识的必要环节,通过微机原理实验,培养学生运用所学的理论解决实际问题的能力,使学生初步掌握分析简单电路,调试简单汇编程序以及撰写实验报告的能力。 三、本课程实验教学基本理论与技术内容 通过对一些基本控制线路的连接的实验(I/O、8255方式、数码管显示)等使学生巩固课堂所学的知识,了解芯片的原理及使用方法,培养学生运用所学理论解决实际问题的能力,使学生达到能正确使用和选用基本的元器件,掌握汇编语言程序的调试方法及如何分析简单的微机接口电路。 四、学生应达到的实验能力标准 1. 掌握74L273的工作原理。 2. 掌握8255的工作原理及使用方法。 3. 通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。 4. 掌握数码管显示数字的原理 5. 掌握I/O地址译码电路的工作原理。 6. 学会分析简单电路,调试简单汇编程序。 五、学时、教学文件及教学形式 学时:机械类专业本课程总学时为40学时,其中实验4学时,占总学时10%。 课外上机15学时 教学文件:校编《微机原理实验指导书》,实验报告学生自拟。 教学形式:本课程实验为综合性实验。要求学生课前预习实验指导书,写出实验程序,指导教师应概述实验的原理、方法及仪器使用等,并作针对性指导,具体实验步骤和结果分析由学生独立完成。 课外上机要求每个学生完成8-10道汇编语言的程序设计及调试。以巩固和深化对课程内容的理解,提高编程技能及程序调试的技能。 六、实验考试方法与成绩评定 根据学生的实验预习、实验纪律、实验动手能力及实验报告结果,进行综合评定,

微机原理课程标准

《微机原理与接口技术》课程标准 课程编号:070131 课程名称:微机原理及接口技术 适用专业:计算机应用技术,计算机网络技术 学时数:110(其中讲课:64 实验/实训:46)学分:4 一、课程性质 微机原理与接口技术是计算机类相关专业必修的一门重点主干课程之一,面向学生职业知识的培养。是信息学科相关专业后继课程学习的纽带。教学内容包括:微机原理、汇编语言、微机接口技术,通过本课程的学习,应使学生掌握微型计算机的基本工作原理,能够正确使用典型的接口芯片,能够对计算机接口电路进行简单分析。本课程的前修课程《计算机电路》(包含:电路原理、模拟电路、数字电路)。 二、课程目标 本课程从传授基础知识和培养学生的动手能力目的出发,使学生掌握微机接口的基本原理、技术和典型接口芯片的主要特性及其使用方法。理论联系实际,培养学生的硬件分析能力,能够使学生获得在专业领域内应用微型计算机的初步能力。同时培养学生爱岗敬业、团结协作的职业精神。 ?能编制简单汇编应用程序。 ?能够承担计算机系统的安装、操作、维护和调试等工作任务。 ?能设计简单的接口应用电路。 三、设计思路 按照“以能力为本位,以职业实践为主线,以项目课程为主体的模块化专业课程体系”的总体设计要求,本门课程以培养计算机硬件应用能力和职业素质、职业岗位能力为基本目标,彻底打破学科课程的设计思路,紧紧围绕工作任务完成的需要来选择和组织课程内容,突出工作任务与知识的联系,让学生在职业实践活动的基础上掌握知识、增强课程内容与职业岗位能力要求的相关性,提高学生的就业能力。 采用项目教学法,以实验/实训任务为出发点来激发学生的学习兴趣。课程围绕实训任务完成的需要来选择和组织课程内容,组成相对独立的工程项目,突出项目任务与知识的联系,让学生在职业实践活动的基础上掌握知识,增加课程

微机原理与接口技术学习心得

本学期微机原理课程已经结束,关于微机课程的心得体会甚多。微机原理与接口技术作为一门专业课,虽然要求没有专业课那么高,但是却对自己今后的工作总会有一定的帮助。记得老师第一节课说学微机原理是为以后的单片机打基础,这就让我下定决心学好微机原理这门课程。 初学《微机原理与接口技术》时,感觉摸不着头绪。面对着众多的术语、概念及原理性的问题不知道该如何下手。在了解课程的特点后,我发现,应该以微机的整机概念为突破口,在如何建立整体概念上下功夫。可以通过学习一个模型机的组成和指令执行的过程,了解和熟悉计算机的结构、特点和工作过程。 《微机原理与接口技术》课程有许多新名词、新专业术语。透彻理解这些名词、术语的意思,为今后深入学习打下基础。一个新的名词从首次接触到理解和应用,需要一个反复的过程。而在众多概念中,真正关键的并不是很多。比如“中断”概念,既是重点又是难点,如果不懂中断技术,就不能算是搞懂了微机原理。在学习中凡是遇到这种情况,绝对不轻易放过,要力求真正弄懂,搞懂一个重点,将使一大串概念迎刃而解。 学习过程中,我发现许多概念很相近,为了更好地掌握,将一些容易混淆的概念集中在一起进行分析,比较它们之间的异同点。比如:微机原理中,引入了计算机由五大部分组成这一概念;从中央处理器引出微处理器的定义;在引出微型计算机定义时,强调输入/输出接口的重要性;在引出微型计算机系统的定义时,强调计算机软件与计算机硬件的相辅相成的关系。微处理器是微型计算机的重要组成部分,它与微型计算机、微型计算机系统是完全不同的概念在微机中,最基础的语言是汇编语言。汇编语言是一个最基础最古老的计算机语言。语言总是越基础越重要,在重大的编程项目中应用最广泛。就我的个人理解,汇编是对寄存的地址以及数据单元进行最直接的修改。而在某些时候,这种方法是最有效,最可靠的。 然而,事物总有两面性。其中,最重要的一点就是,汇编语言很复杂,对某个数据进行修改时,本来很简单的一个操作会用比较烦琐的语言来解决,而这些语言本身在执行和操作的过程中,占有大量的时间和成本。在一些讲求效率的场合,并不可取。 汇编语言对学习其他计算机起到一个比较、对照、参考的促进作用。学习事物总是从最简单基础的开始。那么学习高级语言也当然应当从汇编开始。学习汇

《微机原理与接口技术》参考答案

《微机原理与接口技术》参考答案 《微机原理与接口技术》习题参考答案习题 2 1. 为何说8086CPU是16位CPU?答:16位指的是8086CPU的字长,而字长一般来说和运算器、寄存器、总线宽度一致。因为8086CPU的内部寄存器、内部运算部件以及内部操作都是按16位设计的,这决定了它的字长为16位。 2. 8086CPU哪两个单元组成?其中,指令队列在哪个单元中,有何作用?答:总线接口单元和执行单元。指令队列在BIU中。它的作用是当EU在执行指令时,空闲的BIU可以从内存读取后续指令到指令队列,这样就可以将取指令工作和执行指令工作重叠进行,从而提高CPU的工作效率,加快指令的执行速度。 3. 8086CPU中8位寄存器和16位寄存器是什么关系?答:8086的通用寄存器包括数据寄存器、指

针寄存器和变址寄存器。其中数据寄存器包含AX、BX、CX、DX四个16位寄存器,但他们每个都可以分开作为两个单独的8位寄存器使用。8086的指针寄存器和变址寄存器不可分割为8位寄存器。4. 8086CPU中的IP寄存器有何用途?答:IP寄存器是指令指针寄存器,用来存放下一条要执行的指令在代码段中的偏移地址。在程序运行过程中,IP寄存器始终指向下一条指令的首地址,与CS寄存器联合确定下一条指令的物理地址。8086就是通过IP寄存器来控制指令序列的执行流程。 5. 在标志寄存器中,用于反映运算结果属性的标志位有哪些?它们每一位所表示的含义是什么?答:有CF、PF、AF、ZF、SF、OF。它们的含义如下:CF:进位标志。它记录运算时从最高有效位产生的进位值或结果值。最高有效位有进位或有借位时CF=1,否则CF=0。PF:奇偶标志。它记录运算结果的奇偶检验条件。当结果操作数

微机原理与接口技术习题答案

《微机原理与接口技术》习题答案 一、单项选择题 1、80486CPU进行算术和逻辑运算时,可处理的信息的长度为( D )。 A、32位 B、16位 C、8位 D、都可以 2、在下面关于微处理器的叙述中,错误的是( C ) 。 A、微处理器是用超大规模集成电路制成的具有运算和控制功能的芯片 B、一台计算机的CPU含有1个或多个微处理器 C、寄存器由具有特殊用途的部分内存单元组成,是内存的一部分 D、不同型号的CPU可能具有不同的机器指令 3、若用MB作为PC机主存容量的计量单位,1MB等于( B )字节。 A、210个字节 B、220个字节 C、230个字节 D、240个字节 4、运算器在执行两个用补码表示的整数加法时,判断其是否溢出的规则为( D )。 A、两个整数相加,若最高位(符号位)有进位,则一定发生溢出 B、两个整数相加,若结果的符号位为0,则一定发生溢出 C、两个整数相加,若结果的符号位为1,则一定发生溢出 D、两个同号的整数相加,若结果的符号位与加数的符号位相反,则一定发生溢出 5、运算器的主要功能是( C )。 A、算术运算 B、逻辑运算 C、算术运算与逻辑运算 D、函数运算 6、指令ADD CX,55H[BP]的源操作数的寻址方式是(D )。 A、寄存器寻址 B、直接寻址 C、寄存器间接寻址 D、寄存器相对寻址 7、设(SS)=3300H,(SP)=1140H,在堆栈中压入5个字数据后,又弹出两个字数据,则(SP)=(A ) A、113AH B、114AH C、1144H D、1140H 8、若SI=0053H,BP=0054H,执行SUB SI,BP后,则( C)。 A、CF=0,OF=0 B、CF=0,OF=1 C、CF=1,OF=0 D、CF=1,OF=1 9、已知(BP)=0100H,(DS)=7000H,(SS)=8000H,(80100H)=24H,(80101H)=5AH,(70100H)=01H,(70101H)=02H,指令MOV BX,[BP]执行后,(BX)=(D ) 。 A、0102H B、0201H C、245AH D、5A24H 10、实模式下80486CPU对指令的寻址由(A )决定。 A、CS,IP B、DS,IP C、SS,IP D、ES,IP 11、使用80486汇编语言的伪操作指令定义: VAL DB 2 DUP(1,2,3 DUP(3),2 DUP(1,0)) 则

微机原理及应用课程

微机原理及应用课程学习总结与例程分析 班级:xxxxx 学号:xxxxx 姓名:xxxx 系部:机械工程学院

一、课程学习总结 通过对这门课程的学习,我对8086/8088单片机有了较为深刻的认识。课程分为理论课和实验课,在理论课上,我由浅入深的了解了微型计算机的产生和发展、微机的系统组成和基本结构、微型计算机的工作过程。以及8086\8088单片机的内部逻辑结构、外部引脚功能、存储器、指令系统中的寻址与逻辑算术运算、微型计算机存储器接口技术、输入输出及中断、模拟量数字量的转换、定时器\计数器、微机接口技术的应用等知识。 而在实验课上,我先学习了汇编软件win-Masm的使用,明白了汇编程序从编写到执行即编程→.ASM→编译→.OBJ→连接→.EXE→加载→内存中的程序→执行的过程。然后又学习使用了模拟仿真软件Protues和汇编语言开发编写软件Keilc51。再通过汇编小程序、延时控制、按键控制、流水灯等几个实验,更是让我了解到了汇编语言的强大与神奇之处,也激发起了我深厚的学习兴趣也锻炼了我的动手能力。 这门课程很注重系统性,和实用性,前后关联性很强,并有大量的程序和硬件设计类的案例,使学生能够深入了解计算机的原理、结构和特点,以及如何运用这些知识来设计一个实用的微型计算机系统。具体来说,就是掌握Intel8086/8088微型计算机系统地组成原理,熟练运用8086宏汇编语言进行程序设计,熟悉各种I/O接口芯片的配套使用技术,并通过一定的课程实验与实践,进一步提高系统设计的能力,使学生能够完成实用的微

型计算机系统软件的初步设计。 同时,我也对这门《微机原理与接口技术》课程中的“接口”有了深刻的理解与认识。首先是计算机接口技术的基本原理。计算机系统由中央处理器(CPU)、存储器、IO系统组成,在发展的初期,CPU与各模块之间采用点对点的方式直接连接,集成电路发展之后,才出现以总线为中心的标准结构。 计算机接口技术,实现了各个外部终端与系统内存的信息传递,与指令下达。其次是并行/串行接口技术,1)并行接口,并行接口传输速率高,一般不要求固定格式,但不适合长距离数据传输。2)串行接口,串行通信是将数据的各个位一位一位地,通过单条1位宽传输线按顺序分时传送,即通信双方一次传输一

微机原理与接口技术期末考试试题及答案

微机原理与接口技术期末考试题库 1.微机系统的硬件由哪几部分组成? 答:三部分:微型计算机(微处理器,存储器,I/0接口,系统总线),外围设备,电源。 2.什么是微机的总线,分为哪三组? 答:是传递信息的一组公用导线。分三组:地址总线,数据总线,控制总线。 3.8086/8088CPU的内部结构分为哪两大模块,各自的主要功能是什 么? 答:总线接口部件(BIU)功能:根据执行单元EU的请求完成CPU 与存储器或IO设备之间的数据传送。执行部件(EU),作用:从指令对列中取出指令,对指令进行译码,发出相应的传送数据或算术的控制信号接受由总线接口部件传送来的数据或把数据传送到总线接 口部件进行算术运算。 4.8086指令队列的作用是什么? 答:作用是:在执行指令的同时从内存中取了一条指令或下几条指令,取来的指令放在指令队列中这样它就不需要象以往的计算机那样让CPU轮番进行取指和执行的工作,从而提高CPU的利用率。 5.8086的存储器空间最大可以为多少?怎样用16位寄存器实现对 20位地址的寻址?完成逻辑地址到物理地址转换的部件是什么?

答:8086的存储器空间最大可以为2^20(1MB);8086计算机引入了分段管理机制,当CPU寻址某个存储单元时,先将段寄存器内的内容左移4位,然后加上指令中提供的16位偏移地址形成20位物理地址。 6.段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令 的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗? 答:指令的物理地址为21F00H;CS值和IP值不是唯一的,例如:CS=2100H,IP=0F00H。 7.设存储器的段地址是4ABFH,物理地址为50000H,其偏移地址 为多少? 答:偏移地址为54100H。(物理地址=段地址*16+偏移地址) 8.8086/8088CPU有哪几个状态标志位,有哪几个控制标志位?其意 义各是什么? 答:状态标志位有6个:ZF,SF,CF,OF,AF,PF。其意思是用来反映指令执行的特征,通常是由CPU根据指令执行结果自动设置的;控制标志位有3个:DF,IF,TF。它是由程序通过执行特定的指令来设置的,以控制指令的操作方式。 9.8086CPU的AD0~AD15是什么引脚? 答:数据与地址引脚 10.INTR、INTA、NMI、ALE、HOLD、HLDA引脚的名称各是什么?

微机原理与接口技术

第二章 8086系统结构 一、 8086CPU 的内部结构 1.总线接口部件BIU (Bus Interface Unit ) 组成:20位地址加法器,专用寄存器组,6字节指令队列,总线控制电路。 作用:负责从内存指定单元中取出指令,送入指令流队列中排队;取出指令所需的操作 数送EU 单元去执行。 工作过程:由段寄存器与IP 形成20位物理地址送地址总线,由总线控制电路发出存储器“读”信号,按给定的地址从存储器中取出指令,送到指令队列中等待执行。 *当指令队列有2个或2个以上的字节空余时,BIU 自动将指令取到指令队列中。若遇到转移指令等,则将指令队列清空,BIU 重新取新地址中的指令代码,送入指令队列。 *指令指针IP 由BIU 自动修改,IP 总是指向下一条将要执行指令的地址。 2.指令执行部件EU (Exection Unit) 组成:算术逻辑单元(ALU ),标志寄存器(FR ),通用寄存器,EU 控制系统等。 作用:负责指令的执行,完成指令的操作。 工作过程:从队列中取得指令,进行译码,根据指令要求向EU 内部各部件发出控制命令,完成执行指令的功能。若执行指令需要访问存储器或I/O 端口,则EU 将操作数的偏移地址送给BIU ,由BIU 取得操作数送给EU 。 二、 8088/8086的寄存器结构 标志寄存器 ALU DI DH SP SI BP DL AL AH BL BH CL CH ES SS DS CS 内部暂存器输入 / 输出控制 电路1432EU 控制系 统20位16位8086总线指令 队列总线 接口单元执行 单元 6 516位 属第三代微处理器 运算能力: 数据总线:DB

《微机原理》课程大纲

《微机原理》课程教学大纲 一、课程名称(中英文) 中文名称:微机原理 英文名称:Principle of Microcomputer 二、课程编码及性质 课程编码:0800305 课程性质:专业核心课,必修课 三、学时与学分 总学时:32 学分:2.0 四、先修课程 电路理论、模拟电子技术、数字电子技术、C语言及其编程 五、授课对象 本课程面向材料成型及控制工程专业学生与电子封装技术专业学生开设,也可以供材料科学与工程专业选修。 六、课程教学目的(对学生知识、能力、素质培养的贡献和作用) 《微机原理》是材料加工工程专业学生必修专业课程之一,其教学的主要目的包括: 1、通过一门理论性、实践性和实用性很强的职业技能课程,增强学生的分析问题能力、编写程序能力与动手能力。 2、深入了解单片微型计算机的原理与结构,为今后成型设备开发打下牢固的理论基础。 3、系统掌握单片机的指令系统、接口技术和一般应用开发方法,为今后设计实际的单片机应用系统打下牢固的理论基础。 4、了解微型计算机技术的发展前沿,掌握其发展特点与动向,具备研发单片机的基础与能力。

表1 课程目标对毕业要求的支撑关系

七、教学重点与难点: 教学重点: 1)当今计算机技术飞速发展,本课程以介绍单片微型计算机中最典型的8051为主体、以讲述单片机结构与应用为重点; 2)在全面了解与掌握单片微型计算机种类及结构特点的基础上,重点学习汇编语言开发单片微型计算机技术; 3)课程将重点或详细介绍新颖的流行的微型控制器及其开发方法,为同学提供更多的实践机会; 4)重点学习的章节内容包括:第2章“单片机的结构和原理”(4学时)、第3章“单片机的指令系统”(4学时)、第4章“汇编语言程序设计基础”(8学时)、第6章“单片机的定时/计数器”(8学时)。 教学难点: 1)单片机原理与接口技术课程是实践性极强的课程之一,本课程将密切结合学生的生产实习、课程设置、实验课等实践环节,培养学生对单片微型计算机的认识及设计能力,提高授课质量与效果。 2)通过本课程学习,要求掌握单片微型计算机中的工作原理、结构特点、

微机原理与接口技术知识点总结整理

《微机原理与接口技术》复习参考资料 第一章概述 一、计算机中的数制 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)十进制数制转换为二进制数制 ●十进制→二进制的转换: 整数部分:除2取余; 小数部分:乘2取整。 ●十进制→十六进制的转换: 整数部分:除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)原码 定义: 符号位: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 ●该数在原码中定义为:-0 ●在反码中定义为:-127 ●在补码中定义为:-128 ●对无符号数:(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码)相符。

微机原理与接口技术试题库(含答案)汇总

一、问答题 1、下列字符表示成相应的ASCII码是多少? (1)换行0AH (2)字母“Q”51H (3)空格20H 2、下列各机器数所表示数的范围是多少? (1)8位二进制无符号定点整数; 0~255 (2)8位二进制无符号定点小数;0.996094 (3)16位二进制无符号定点整数;0~65535 (4)用补码表示的16位二进制有符号整数;-32768~32767 3、(111)X=273,基数X=?16 4、有一个二进制小数X=0.X1X2X3X4X5X6 (1)若使X≥1/2,则X1……X6应满足什么条件? X1=1 若使X>1/8,则X1……X6应满足什么条件?X1∨X2 ∨X3=1 (2) 5、有两个二进制数X=01101010,Y=10001100,试比较它们的大小。 (1)X和Y两个数均为无符号数;X>Y (2)X和Y两个数均为有符号的补码数。X

微机原理课程设计

合肥工业大学 计算机与信息学院 课程设计 课程:微机原理与接口技术设计专业班级:计算机科学与技术班 学号:2 姓名:

一、设计题目及要求: 利用8259A中断,实现对8253多种计数初值的设定: 1.在中断服务程序中设定8253的计数初值。 2.开关K1用于设定秒方波的计数初值,K2用于设定1秒方波的计数初值,K3用于设定2秒方波的计数初值。 3.用8253的输出信号,控制一个发光二极管,以演示修改效果。 二、设计思想: 整体设计: ①利用8259A芯片设定IR1、IR2、IR3三个中断,分别用三个开关的高低电平触发中断。 ②在三个终端的中断服务子程序里面为8253芯片通道0设定不同频率的方波计数初值,使得在触发不同中断时8253芯片产生周期为秒、1,秒、2秒的方波。③将8253的输出端口与发光二极管连接,通过二极管的亮灭显示出8253内部方波的频率。 部分设计: ①8253芯片方式3初值确定:根据分频电路T(n)=T/2*公式以及、1s、2s方波的频率计算出初值分别为2580H、4B00H、9600H。 ②8253芯片和8259芯片的片选方法:设定8259A和8253芯片的端口号分别为0FFE0H 、0FFE1H,以及0FFFCH—0FFFFH,使得在连接138译码器时,A连A2,B连A3,C连A4,T0连接8259A芯片的CS端,T7连接8253芯片的CS端。 ③8259A中断向量表写入以及芯片初始化:根据8259A各个中断在中断向量表中的地址,将IR0、IR1、IR2的中断服务程序入口地址写入向量表中;ICW4设定除中断0、1、2外其他位屏蔽。 ④手动设置中断结束:为了不影响各个中断之间的交替响应,在每个中断服务程序结束之前写入中断结束方式,将20H输出到8259端口,将当前中断结束响应后再响应下一个中断。 三、功能流程图: 结果讨论: 附录:实验代码:(完整的源程序) CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3400H Port0 EQU 0FFE0H ;8259芯片的端口号 Port1 EQU 0FFE1H START: CALL F8259

微机原理与接口技术

微机原理及接口技术 第一部分客观题 一、单项选择题(每小题2分,共10分) 1. 寄存器ECX勺低16位部分可以用 ____________ 达。 A EX B CX C CH D CL 2. 8086处理器执行“ OUT DX,AL指令时,AL的数据出现在_____________ 输出给外设。 A控制总线B地址总线C电源和地线D 数据总线 3. 与DRAM目比,SRAM勺特点是___________ 。 A集成度高、存取周期长B集成度低、存取周期长 C集成度高、存取周期短D集成度低、存取周期短 4. 使用语句“ var dword 3721 ”定义的变量var在主存占用___________ 字节存储空间。 A 1 B 2 C 4 D 8 5. 用8K>8结构SRAM芯片构成64000H H6FFFFH地址范围的存储器,需要使用__________ 。 A 4 B 6 C 8 D 10 二、对错判断题(每小题2分,共10分)(说明:正确的选“ A ,错误选“ B” 6. IA-32 处理器设置的中断标志IF = 0是关中断,表示禁止内部中断和外部中断的所有中断请求。X

7. 已知var是一个变量,语句“ add esi,byte ptr var ”没有语法错误。X 8. DMA传输由DMA控制器控制,无需处理器执行I/O指令。V 9. 高性能计算机中常使用Cache (高速缓冲存储器)提高主存性能。V 10. 向某个I/O端口写入一个数据,一定可以从该I/O端口读回这个数据。V 第二部分主观题 一、填空题(每空2分,共10分) 1. 8086处理器引脚有3个最基本的读写控制信号,它们是M/IO*,—RD* __________ 和____ /R* ______ 。 2. 逻辑地址由—段基地址_________ 口偏移地址两部分组成。代码段中下一条要执行的指令由CS和 _____ 指针IP ____ 寄存器指示,后者在实地址模型中起作用 的仅有_____ 指针 ____ 寄存器部分。 二、问答题(每小题6分,共30分) 1. 什么是JMP指令的近(near)转移和远(far )转移? jmp指令的近转移是指在同一个段里面的转移,也叫做段内近转移,用汇编编码就是这样的jmp near ptr标号 jmp指令的远转移是指段与段之间的转移,就是说不在同一个段的转移,用汇编编码就是这样的jmp far ptr 标号 2. 什么是存储访问的局部性原理,它分成哪两个方面的局部性? 程序局部性原理:虚拟存储管理的效率与程序局部性程序有很大关系。根据统计,进程运行时,在一段时间内,其程序的执行往往呈现岀高度的局限性,包括时间局部性和空间局部性。 1、时间局部性:是指若一条指令被执行,则在不久的将来,它可能再被执行。 2、空间局部性:是指一旦一个存储单元被访问,那它附近的单元也将很快被访问。

相关主题
文本预览
相关文档 最新文档