太原理工大学 微机原理 考试 13届 葬仪落整理.docx
《太原理工大学 微机原理 考试 13届 葬仪落整理.docx》由会员分享,可在线阅读,更多相关《太原理工大学 微机原理 考试 13届 葬仪落整理.docx(36页珍藏版)》请在冰豆网上搜索。
太原理工大学微机原理考试13届葬仪落整理
简答
第一章
1.简述计算机和微型计算机经过了哪些主要的发展阶段?
计算机:
电子管、晶体管、集成电路、大规模集成电路计算机。
微型计算机:
低档8位微处理器和微型计算机、中档8位、16位、32位、高档64位。
2.操作系统(DOS、Windows、Unix、Linux)
3.程序设计语言
(1)机器语言:
是直接用二进制代码指令表达的计算机语言,是01代码,计算机可以直接识别,不用翻译,执行速度快,但是是面向机器的语言,不宜掌握,可读性差。
(2)汇编语言:
也是面向机器的语言,用符号代替二进制代码,又称符号语言,特点是可以直接访问与硬件相关的存储器或I\O端口,占内存少,速度快。
(3)高级语言:
面向用户的语言,需要翻译。
4.微处理器:
简称CPU,是指一片或几片大规模集成电路所组成的,具有运算和控制功能的中央处理单元,由ALU(算术逻辑部件)、CU(控制器)和寄存器组成。
微型计算机:
简称MC,以CPU为核心,加上存储器,I\O接口,加上系统总线构成。
微型计算机系统:
简称MCS,以微型计算机为核心,配以相应外围设备,辅助电路,电源以及软件,叫做微型计算机系统。
5,微型计算机系统的性能指标
字长(一次可处理的二进制位数)、存储器容量、运算速度(每秒执行指令条数)、扩展能力、软件配置情况。
6.微型计算机结构,简述部分功能。
CPU:
由运算器和控制器两部分组成。
运算器进行对数据运算(算数、逻辑运算),控制器为整机的指挥控制中心,计算机的操作在控制器的控制下进行。
存储器:
分为ROM和RAM。
用来存储数据、程序、运算的中间结果和最终结果。
I\O接口:
微型计算机与外部设备联系的桥梁。
外设种类众多,工作速度与主机不匹配,所以必须经过接口电路加以合理匹配,缓冲。
总线:
各部件的联系。
数据总线(DB):
微处理器与外界传递数据的数据信号线。
地址总线(AB):
微处理器输出的一组地址信号线,用来指定微处理器所访问的存储器和外部设备的地址。
控制总线(CB):
使微处理器的工作与外部工作同步。
第二章
7.8086微处理器主要特点,内部结构。
主要特点:
16位微处理器,数据总线16位,地址总线20位1MB。
时钟频率5-10MHZ。
结构:
BIU(总线接口部件):
负责CPU、存储器、外设间信息传送。
分为地址加法器、段寄存器、指令队列缓冲器、总线控制电路。
EU(执行部件):
负责指令的执行。
分为算术逻辑单元(ALU),数据暂存寄存器,EU控制电路。
8.8086各有哪些寄存器?
四个通用寄存器(AX累加、BX基址、CX计数、DX数据)
四个指针和变址寄存器(SP堆栈指针、BP基址指针、SI源变址寄存器、DI目的变址寄存器)
四个段寄存器(CS代码段寄存器、DS数据、SS堆栈、ES附加)
指令指针IP标志寄存器FR
9.存储器为什么要分段?
在实地址方式下如何分段?
(1).806CPU有20条地址线,可以寻址2^20=1MB的存储空间,而寄存器均为16位,可以寻址2^16=64K的存储空间,不能直接寻址1MB的空间,所以要进行分段。
由16位段寄存器提供段基址,由不同寻址方式或寄存器提供偏移地址,共同组成20位物理地址,1MB的存储空间。
(2)1MB分为4段,CS、DS、SS、ES,每段包含2^16=64K字节,首地址可被16整除。
在任意时刻,程序可以方便的访问4个分段内容。
10.什么是逻辑地址,什么是物理地址?
在实地址模式下,如何求存储器的物理地址?
逻辑地址是由段基址(存放在段寄存器中)和偏移地址(由寻址方式提供)两部分构成,他们都是无符号的16位二进制数,逻辑地址是用户进行程序设计采用的地址。
物理地址是1M内存空间中每个存储单元唯一的地址,由20位二进制数构成,物理地址是CPU访问内存时使用的地址。
当用户通过编制程序将16位逻辑地址送入CPU总线接口部件BIU时,地址加法器通过地址运算变换为20位的物理地址。
计算公式:
物理地址=段基址×16+偏移地址
11.堆栈的数据结构特点是什么?
计算机中为什么要设置堆栈?
答:
(1)堆栈是CPU内存中一个特定的存储区。
堆栈的数据结构特点是先进后出,即最后进入堆栈的数据最先从堆栈中弹出。
(2)CPU在处理数据的过程中,有一些中间数据需要进行暂存,同时CPU在调用子程序和进行终端响应的过程中,现场和断点都需要进行保护,为此计算机中设置了一定容量的堆栈。
12.简述时钟周期、总线周期和指令周期。
时钟周期:
CPU执行指令的最小时间单位,又称T状态,与微机主频有关。
总线周期:
CPU对存储器或I\O端口完成一次读\写操作所用时间。
例:
8086的基本总线周期由4个时钟周期组成,80486则由2个时钟周期组成,外设速度慢,可插入等待周期。
指令周期:
CPU执行一条指令所需要的时间。
指令周期有若干个总线周期组成,不同指令执行的时间不同,同一功能指令,寻址方式不同,所需要的时间也不同。
第三章
13.指令、指令系统、程序的概念。
指令:
指示计算机执行某种操作的命令,由一串二进制组成。
指令系统:
计算机能执行的全部指令,CPU所能识别的全部指令。
程序:
为实现特定目标,解决特定问题而用计算机语言编写的指令序列的集合。
14.寻址方式
非存储器操作寻址方式:
立即数寻址和寄存器寻址,不需要访问存储器,执行速度快。
访问存储器操作寻址方式:
后九种,计算有效地址EA外,还必须确定操作数所在的段,确定有关段寄存器。
第四章
15.写出汇编程序设计上机流程,并简要叙述调试过程。
(1)用编辑软件(如EDIT、WORD等)把汇编语言源程序输入计算机中,形成扩展名为.ASM
的源程序文件(如:
PROG.ASM)
(2)使用宏汇编软件MASM,把ASM文件汇编成扩展名为.OBJ的二进制代码文件及扩展名为.LST的汇编语音程序列表文件(如:
PROG.OBJ,PROG.LST)
(3)目标文件虽然是二进制代码文件,但它不能直接运行,必须经过LINK软件程序把目标文件、其他文件和库文件连接起来才可形成扩展名为.EXE的可执行文件。
(4)如果运行中仍有问题或想观察运行过程,可使用调试程序DEBUG进行调试。
只有在计算机中运行通过的程序,才能被认为是正确的程序。
注:
CRF是MASM提供的一个随机交叉参考文件,MAP是MASM为大型源程序提供的一个随机文件。
16.MASM三种基本语句
指令性语句
指示性语句(伪指令语句):
变量定义、符号、段、过程伪指令
宏指令语句
17.宏指令:
源程序中具有独立功能的一段代码
宏定义:
对宏指令进行定义
宏调用宏展开
18.宏指令和子程序各有什么优缺点?
在汇编语言程序设计中,宏指令和子程序都起到简化源程序的作用,提供了很大方便。
从占用空间角度来说,子程序由CALL调用,由RET返回,汇编后只占一段空间,宏指令每用一次,宏展开后就占据一段空间,所以子程序占用空间比宏指令占据空间小。
从执行速度角度说,子程序在执行时,每调用一次都要保护和恢复返回地址及寄存器的内容等,而宏指令不用,所以宏指令的执行速度快于子程序。
补充:
标志寄存器
状态标志位
CF:
进位标志有进位为1
PF:
奇偶校验标志运算结果包含1的个数,偶数为1
AF:
辅助进位标志加法或减法运算结果中D3位向D4位进位或借位的情况,有进位1
ZF:
零标志当前运算结果为零,为1
SF:
符号标志运算结果的正负情况负数为1
OF:
溢出标志补码运算有溢出为1
控制标志位
DF:
方向标志为1,串操作过程中的地址会自动递减10时,自动增加1
IF:
中断允许标志IF=1开中断
TF:
单步标志=1CPU进入单步工作方式,每执行一条指令就产生一次内部中断。
4.4什么是变量?
什么是变量的3重属性?
答:
在除代码段以外的其他段中被定义,用来定义存放在存储单元中的数据。
段属性SEG定义变量所在段的段基址。
一般在DS段寄存器中,也可以在ES,SS中
偏移地址属性OFFSET表示变量所在的段内偏移地址段基址和偏移地址构成逻辑地址
类型属性TYPE表示变量占用存储单元的字节数,由数据定义伪指令来规定的
4.5什么是标号?
什么是标号的3重属性?
答:
标号可在代码段中被定义。
它是指令语句的标识符,表示后面的指令所存放单元的符号地址,标号必须和后面的操作项以冒号分隔开。
常作为转移指令的操作数,确定程序转移的目标地址。
段属性SEG定义标号所在段的起始地址。
必须在一个段寄存器中标号段基址在CS寄存器中
偏移属性OFFSET表示标号躲在的段内偏移地址。
为16位无符号数,代表从段的起始地址到定义标号的位置只间的字节数。
段基址和偏移地址构成标号的逻辑地址。
距离属性distance当标号作为转移类指令的操作数时,可在段内段间转移。
分为NEAR和FAR
1.ADCII码3列为数字01234567
4列为大写字母@ABCDEFG
6列为小写字母、abcdefg
例:
2537H=32353337
20EH=323045
2.设一个16字的数据存储区,它的起始地址为70A0H:
DDF6H.。
写出这个数据区的首字单元和末字单元的物理地址。
解:
20位物理地址的计算公式为:
物理地址=段基址×16+偏移地址
解题思路:
按照物理地址的计算公式,计算首字单元的物理地址。
在计算末字单元的物理地址时,注意16个字为32个字节,占用32个(即20H个)存储单元。
首字单元的物理地址=70A0H×16+DDF6H=7E7F6H
末字单元的物理地址=7E7F6H+20H-2=7E816H-2=7E814H
3.分别指出下列指令中源操作数和目标操作数的寻址方式。
目标操作数源操作数
MOVSI,100寄存器立即数
MOVCX,DATA[SI]寄存器寄存器间接
ADDAX,[BX][DI]寄存器基址加间址
SUBAH,DH寄存器寄存器
ANDDL,[BX+SI+20H]寄存器基址加间址
MOV[BP+1054H],AX基址寄存器
OR[DI+3000H],BX寄存器间接寄存器
XOR[BP+SI],AL基址加间址寄存器
MOVEAX,EBX寄存器寄存器
MOVEAX,[ECX][EBX]寄存器基址加间址
MOVEAX,[ESI][EDX×2]寄存器基址加比例间址
MOVEAX,[ESI×8]寄存器比例间址
3.2设DS=1000H,BX=2865H,SI=0120H,偏移量D=47A8H,试计算下列各种寻址
方式下的有效地址,并在右边答案中找出正确答案,将它的序号填入括号内:
①使用D的直接寻址(②)A.2865H
②使用BX的寄存器间接寻址(③)B.700DH
③使用BX和D的寄存器相对寻址(①)C.47A8H
④使用BX、SI和D的相对基址变址寻址(⑤)D.2985H
⑤使用BX、SI的基址变址寻址(④)E.712DH
3.3假定DS=2000H,ES=2100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H,数据段中变量名VAL的偏移地址值为0050H,试指出下列源操作数字段的寻址方式是什么,其物理地址值是多少?
序号寻址方式物理地址值
①MOVAX,[100H]①直接20100H
②MOVAX,[BP]②基址15010H
③MOVAX,VAL.③直接20050H
④MOVAX,VAL[BX]④基址20150H
⑤MOVAX,[BX+10]⑤基址2010AH
⑥MOVAX,[BP+SI]⑥基址加间址150B0H
⑦MOVAX,[BX]⑦基址20100H
⑧MOVAX,VAL[BX][SI]⑧基址加间址201F0H
⑨MOVAX,ES:
[BX]⑨基址21100H
⑩MOVAX,ES:
[BX][SI]-⑩基址加间址211A0H
物理地址=段基址×16+偏移地址
3.4试根据以下要求,分别写出相应的汇编语言指令。
①以寄存器BX和SI作为基址变址寻址方式把存储器中的一个字数据传送到CX寄存器中。
②以寄存器BX和偏移量VALUE作为寄存器相对寻址方式把存储器中的一个字和AX相加,把结果送回到那个字单元中。
③以寄存器BX和DI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送回到存储器中。
④清除以寄存器SI间接寻址的存储器字单元,同时清除CF标志位。
⑤将一字节立即数0B6H与符号地址为NUM的存储器字节单元中的内容相比较。
答:
①MOVCX,[BX+SI]d
②ADDVALUE[BX],AX
③ADD[BX+DI],AL
④ANDWORDPTR[SI],0h
⑤CMPBYTEPTRNUM,0B6H
3.5下列程序段中每条指令执行完后,指出AX寄存器中及CF,SF,ZF和OF的值。
MOVAX,0
DECAX
ADDAX,7FFFH
ADDAX,2
NOTAX
SUBAX,0FFFFH
ADDAX,8000H
SUBAX,1
ANDAX,58D1H
SALAX,1
SARAX,1
NEGAX
RORAX,1
指令AX中的内容CFSFZFOF
MOV0000H××××
DECFFFFH×100
ADD7FFEH1000
ADD8000H0101
NOT7FFFH××××m
SUB8000H1101
ADD0000H1011
SUBFFFFH1100o
AND58D1H0000
SALB1A2H0101c
SARD8D1H0100
NEG272FH1000
ROR9397H1××1
3.6假设DX=36C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。
序号DX中的内容CF
①SHRDX,1①1B32H1
②SARDX,CL②01B6H0
③SHLDX,CL③6D8AH0
④SHLDL,1④368AH1
⑤RORDX,CL⑤29B6H0
⑥ROLDL,CL⑥36B8H0
⑦SALDH,1⑦6CC5H0
⑧RCLDX,CL⑧D8B3H0
⑨RCRDH,1⑨9BC5H0
⑩SARDH,CL⑩1BC5H0
3.7写出下列每组指令执行后目标操作数中的内容。
①MOVEAX,299FF94H
ADDEAX,34FFFFH
②MOVEBX,500000H
ADDEBX,700000H
③MOVEDX,40000000H
SUBEDX,1500000H
④MOVEAX,39393834H
ANDEAX,0F0F0F0FH
⑤MOVEBX,9FE35DH
XOREBX,0F0F0F0H
答:
①EAX=02CEFF93H②EBX=00C00000H③EDX=3EB00000H
④EAX=09090804H⑤EBX=005F13ADH.
3.8指出下列每条指令执行后相应寄存器中的内容。
①MOVEAX,9823F4B6H(AL,AH,AX,EAX)
②MOVEBX,985C2H(BL,BH,BX,EBX)
③MOVEDX,2000000H(DL,DH,DX,EDX)
④MOVESI,120000H(SI,ESI)a
答:
解题思路:
下列指令的功能是将一个立即数传送到目标操作数,根据括号中指定的课
寄存器,给出指令运行后,相应寄存器存入的结果。
①AL=B6H,AH=F4H,AX=F4B6H,EAX=9823F4B6H
②BL=C2H,BH=85H,BX=85C2H,EBX=000985C2H
③DL=00H,DH=00H,DX=0000H,EDX=02000000H
④SI=0000H,ESI=00120000H
3.9分别说明下列每组指令中的两条指令的区别。
①MOVAX,TABLE
LEAAX,TABLE
②ANDBL,0FH
ORBL,0FH
③JMPSHORTL1
JMPNEARPTRL1
④MOVAX,[BX]
MOVAX,BX
⑤SUBDX,CX
CMPDX,CX
⑥MOV[BP][SI],CL
MOVDS:
[BP][SI],CL
答:
①第一条指令将变量名TABLE确定的一个字数据传送到AX中;
第二条指令取变量名TABLE的16位有效地址值传送到AX中。
②第一条指令将BL中的内容和立即数0FH相与,结果回送到BL中;
第二条指令将BL中的内容和立即数0FH相或,结果回送到BL中。
③第一条指令为段内无条件短程转移,跳转的范围不得超过带符号的8位二进制数
表示的字节范围;
第二条指令为段内无条件近程转移,跳转的范围不得超过带符号的16位二进制
数表示的字节范围。
④第一条指令源操作数为存储器,将BX的内容确定的相邻两个存储单元中的内容
传送到AX中;
第二条指令源操作数为寄存器,将BX的内容传送到AX中。
o
⑤第一条指令将DX的内容减去CX的内容,结果回送到DX中;
第二条指令只是将DX的内容和CX的内容相减作大小比较,不回送结果。
⑥第一条指令将CL的内容传送到堆栈段中由BP+SI确定的单元中;
第二条指令将CL的内容传送到数据段中由BP+SI确定的单元中。
3.10设堆栈指针SP的初值为2000H,AX=3000H,BX=5000H,试问:
.
①执行指令PUSHAX后,SP=?
案
②再执行PUSHBX及POPBX后,SP=?
AX=?
BX=?
画出堆栈变化示
意图。
答:
①SP=1FFEH
②SP=1FFEH,AX=3000H,BX=5000H
3.11已知当前SS=10A0H,SP=0040H,AX=FF00H,BX=8850H,请用图表示执行下列四条指令过程中,堆栈中的内容变化情况。
PUSHAX
PUSHBX.
POPAX
POPBX
答:
解题思路:
先求堆栈栈底单元的物理地址,然后逐条执行堆栈操作指令。
堆栈段中栈底的物理地址=SS×16+SP=10A0H16+0040=10A40H
指令执行的结果,实际上是将AX和BX的内容进行了交换。
3.12编写一程序段,实现下述要求。
①将存储器中1A00H单元中的一个字节数据传送到1B00H单元中;
②使AX寄存器的低四位清0,其余位不变;.
③使AL寄存器的低四位保持不变,高四位取反;
④使DH寄存器的低四位为1,高四位不变。
答:
解题思路:
根据每小题的要求,选择合适的指令编写相应的指令序列(不编制段定义结构)。
①MOVAL,[1A00H]a
MOV[1B00H],AL课
②ANDAX,0FFF0Hd
③XORAL,0F0H
④ORDH,0FHh
3.13若有两个四字节的无符号数相加,这两个数分别存放在2000H和3000H开始的存
储单元中,得到的和也为四字节,存放在2000H开始的单元中,编一段程序完成这两个数
答:
解题思路:
该题目属于两个多字节二进制数相加的过程,应选择的关键指令是ADC,
采用循环结构程序完成两数相加的过程,但要特别注意最低字节相加前要使CF=0。
根据题意编写的程序段如下:
CLC
MOVCX,4
MOVSI,2000H
MOVDI,3000H
AA:
MOVAL,[SI]
ADCAL,[DI]
MOV[SI],AL
INCSI
INCDI
LOOPAA
HLT
3.14若32位二进制数存放于DX和AX中,试利用移位与循环移位指令实现以下操作:
1)DX和AX中存放的是无符号数,将其分别乘以2和除以2;
2)DX和AX中存放的是有符号数,将其分别乘以2和除以2。
答:
解题思路:
给据题意不用乘法、除法指令,而利用左移指令完成乘以2,右移指令完成除以2。
一是要注意无符号数及有符号数移位指令的选择,二是要注意对第一个字数据移出来的进位标志位的处理。
①乘以2:
除以2:
SHLAX,1SHRDX,1
RCLDX,1RCRAX,1
SALAX,1SARDX,1
RCLDX,1RCRAX,1
3.15试编写出将内存2500H开始的256个字节单元清0的程序。
答:
解题思路:
建立地址指针指向内存首地址2500H,采用循环结构程序将256个单元依次清零。
根据题意编写的程序段如下:
MOVCX,256
MOVAL,0.
MOVBX,2500H
AA:
MOV[BX],AL
INCBX
LOOPAA
HLT
3.16设a,b,c分别为组合十进制数的百位、十位、个位数,试不用乘法指令完成(a×10+b)×10+c。
答:
解题思路:
由于每位十进制数均为组合BCD码,分别用四位二进制数表示,其每
位乘以10的过程可用左移指令将其连续左移四位实现。
根据题意编写的程序段如下:
MOVAL,a
MOVCL,4
SHLAL,CL
ADDAL,b
MOVAH,0
MOVCL,4
SHLAX,CL
ADDAX,c
HLT
3.17假设X和X+2单元的内容为双精度数p,Y和Y+2单元的内容为双精度数q,
(X和Y为低位字),试说明下列程序段做什么工作?
MOVDX,X+2
MOVAX,X
ADDAX,X
ADCDX,X+2
CMPDX,Y+2
JLL2
JGL1
CMPAX,Y
JBEL2
L1:
MOVAX,1
JMPSHORTEXIT
L2:
MOVAX,2
EXIT:
HLT
答:
本程序段完成的工作为:
①先将2p和q进行大小比较;
②当2p>q时,AX=1,暂停;
当2P≤Q时,AX=2,暂停。
3.18试编制一个程序段,完成图3.20中流程图所规定的功能。
答:
解题思路:
图中用两个条件区别三个分支,可采用两条比较指令完成大小比较,利用条件转移指令实现分支程序的执行。
根据图3.20编写的程序段如下:
CMPAX,-1
JLELOOP1
CMPAX,1
JLLOOP2
MOVAX,1
JMPLOOP3
LOOP1:
MOVAX,-1
JMPLOOP3
LOOP2:
MOVAX,0
L