09软件期末复习题汇编语言Word下载.docx
- 文档编号:3978447
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:23
- 大小:76.09KB
09软件期末复习题汇编语言Word下载.docx
《09软件期末复习题汇编语言Word下载.docx》由会员分享,可在线阅读,更多相关《09软件期末复习题汇编语言Word下载.docx(23页珍藏版)》请在冰点文库上搜索。
2.执行单元EU(ExcutionUnit)负责指令的译码和执行
●标志位寄存器标志位的分类及定义?
标志位寄存器中的9个标志分两组,一为条件标志(SF符号标志,ZF零标志,OF溢出标志,CF进位标志,AF辅助进位标志,PF奇偶标志,)另一组为控制标志(DF方向标志,IF中断允许标志,TF跟踪标志)
8086/8088CPU中设有一个16位标志寄存器FR,用来记录程序执行时的状态。
FR中共有9个标志位。
0CF:
进位标志位有进位(或借位)时,CF=1;
否则置0
2PF:
奇偶标志位低8位中含“1”的个数为偶数时,PF=1;
4AF:
辅助进位标志位低字节中低4位有进位(或借位)时,AF=1;
6ZF:
零值标志位结果各位全为“0”时,ZF=1
7SF:
符号标志位结果最高位为1时,SF=1,否则置0
8TF:
单步标志位设置TF=1时,CPU进入单步执行指令工作方式
9
IF:
中断标志位设置IF=1时,允许CPU响应可屏蔽中断请求。
10DF:
方向标志位DF=0时,执行串操作指令,SI或DI内容自动递增,否则递减。
11OF:
溢出标志位运算结果超出补码表示数的范围OF=1。
●什么是逻辑地址?
物理地址?
它们如何进行转换计算?
物理地址=10H*段地址+段内偏移地址(BX,SI,DI对应的是DS[数据段],BP对应SS[堆栈段])P17
●在8086/8088系统中,存储器物理地址是分段组织的。
代码段的段地址存放在哪个寄存器中?
偏移地址在什么存器中?
堆栈段的段地址在什么存器中?
DSBX,DI,SI
SSSP,BP
●二进制16位或20位共有多少个编码组合?
如果一位对应微处理器一个地址信号,16或20位地址信号功能寻址多大容量主存空间?
●各串操作指令的功能?
REP/REPZ/REPNZ作用?
●单机系统中总线分哪三类?
(DBABCB)
●8086、8088微处理器执行指令IN/OUT/MOV时,在其引脚上将产生什么总线操作?
●8086、8088微处理器基本的读写信号RD、WR、M/IO作用?
●8086、8088微处理器工作模式(最大、最小)及引脚信号?
●总线周期、时钟周期、指令周期概念及关系?
指令周期:
(p.85.)指令周期是指从取指令、分析指令到执行完该指令所需的时间。
不同的指令,其指令周期的长短也可以不同。
时钟周期:
(p.86.)将一个机器周期划分为若干相等的时间段,每个时间段内完成一步基本操作。
这个时间段用一个电平信号宽度对应,称为节拍或时钟周期。
一个机器周期由若干个节拍组成,不同的机器周期,或不同指令中的同一机器周期,包含的节拍数可能不同。
时钟脉冲:
(p.86.)在时序系统中由时钟发生器产生时钟脉冲信号,作为时序系统的基本定时信号。
一、时钟周期:
由计算机的主频决定(主频的倒数),用T表示,又称T状态。
二、总线周期:
8086/8088通过总线从存储器或I/O接口读写一个字节(或字)所用的时间称为一个总线周期。
三、指令周期:
CPU执行一条指令所用的时间,它可以包含若干个总线周期。
四、一个总线周期至少包括4个时钟周期。
●8086系统访问存储器时访问一个字节要用1个总线周期,若要进行字操作则也可只用1个总线周期。
●8088系统访问存储器时访问一个字节要用1个总线周期,若要进行字操作用2个总线周期。
●在微型计算机系统中采用DMA方式传送数据时的过程?
DMAC的功能?
●通常外设接口中,往往有哪些端口才能满足和协调外设工作要求?
●什么是I/O独立编址和统一编址,各自有什么特点?
(1)外围设备单独编址:
为每台设备分配一个设备码。
或为I/O接口中的有关寄存器分配I/O端口地址,。
(2)外围设备统一编址:
将I/O接口中的有关寄存器与主存单元统一编址,为它们分配统一的总线地址
●指出指令中操作数的寻址方式,根据操作数寻址方式计算其物理地址。
3.1假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据段中变量名VAL的偏移地址为0050H,试指出下列源操作数字段的寻址方式是什么?
其物理地址值是多少?
(1)MOVAX,0ABH
(2)MOVAX,BX
(3)MOVAX,[100H](4)MOVAX,VAL
(5)MOVAX,[BX](6)MOVAX,ES:
[BX]
(7)MOVAX,[BP](8)MOVAX,[SI]
(9)MOVAX,[BX+10](10)MOVAX,VAL[BX]
(11)MOVAX,[BX][SI](12)MOVAX,VAL[BX][SI]
(1)立即方式;
操作数在本条指令中
(2)寄存器寻址方式;
操作数为(BX)=0100H
(3)直接寻址方式;
PA=20100H
(4)直接寻址方式;
PA=20050H
(5)BX寄存器间接寻址方式;
PA=20100H
(6)附加段BX寄存器间接寻址方式;
PA=21100H
(7)BP寄存器间接寻址方式;
PA=15010H
(8)SI寄存器间接寻址方式;
PA=200A0H
(9)BX寄存器相对寻址方式;
PA=20110H
(10)BX寄存器相对寻址方式;
PA=20150H
(11)BX和SI寄存器基址变址寻址方式;
PA=201A0H
(12)BX和SI寄存器相对基址变址寻址方式;
PA=201F0H
15、假设(DS)=091DH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H,(CX)=5678H,(BP)=0024H,(SI)=0012H,(DI)=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。
试给出下列各指令或程序段的分别执行的结果。
(1)
MOVCL,20H[BX][SI]
有效地址EA=20H+[BX]+[SI]=20H+0024H+0012H=0056H
逻辑地址DS:
0056H
物理地址=091D0H+0056H=09226H(逻辑地址左移1为加有效地址)
CL=[09226H]=00F6H
(2)
MOV[BP][DI],CX
有效地址EA=[BP]+[DI]=0024H+0032H=0056H
逻辑地址SS:
物理地址=1E4A0H+0056H=1E4F6H
[1E4F6H]=CX=5678H
(3)
LEABX,20H[BX][SI]
MOVAX,2[BX]
BX=0056H
有效地址EA=2H+[BX]=2H+0056H=0058H
0058H
物理地址=091D0H+0058H=09228H
AX=[09228H]=1E40H
(4)
LDSSI,[BX][DI]
MOV[SI],BX
有效地址EA=[BX]+[DI]=0024H+0032H=0056H
物理地址=091D0H+0056H=09226H
SI=[09226H]=00F6H
DS=[09226H+2H]=[09228H]=1E40H
有效地址EA=[SI]=00F6H
00F6H
物理地址=1E400H+00F6H=1E4F6H
[1E4F6H]=BX=0024H
(5)
XCHGCX,32H[BX]
XCHG20H[BX][SI],AX
有效地址EA=32H+[BX]=32H+0024H=0056H
CX=[09226H]=00F6H
[09226H]=5678H
[09226H]=1234H
AX=00F6H
●判断指令是否正确?
指出下列指令的错误:
(1)MOVAH,BX;
寄存器类型不匹配
(2)MOV[BX],[SI];
不能都是存储器操作数
(3)MOVAX,[SI][DI];
[SI]和[DI]不能一起使用
(4)MOVMYDAT[BX][SI],ES:
AX;
AX寄存器不能使用段超越
(5)MOVBYTEPTR[BX],1000;
1000超过了一个字节的范围
(6)MOVBX,OFFSETMYDAT[SI];
MYDAT[SI]已经是偏移地址,不能再使用OFFSET
(7)MOVCS,AX;
CS不能用作目的寄存器
(8)MOVECX,AX;
两个操作数的数据类型不同
下面哪些指令是非法的?
(假设OP1,OP2是已经用DB定义的变量)
(1)CMP15,BX;
错,立即数不能作为目的操作数
(2)CMPOP1,25
(3)CMPOP1,OP2;
错,不能都是存储器操作数
(4)CMPAX,OP1;
错,类型不匹配,应为CMPax,wordptrop1
假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列哪些指令是非法的?
它们的错误是什么?
(1)MOVBP,AL;
错,寄存器类型不匹配
(2)MOVWORD_OP[BX+4*3][DI],SP
(3)MOVWORD_OP1,WORD_OP2;
(4)MOVAX,WORD_OP1[DX];
错,DX不能用于存储器寻址
(5)MOVSAVE_WORD,DS
(6)MOVSP,SS:
DATA_WORD[BX][SI]
(7)MOV[BX][SI],2;
错,[BX][SI]未指出数据类型
(8)MOVAX,WORD_OP1+WORD_OP2
(9)MOVAX,WORD_OP1-WORD_OP2+100
(10)MOVWORD_OP1,WORD_OP1-WORD_OP2
假设VAR1和VAR2为字变量,LAB为标号,试指出下列指令的错误之处:
(1)ADDVAR1,VAR2;
(2)SUBAL,VAR1;
数据类型不匹配
(3)JMPLAB[SI];
LAB是标号而不是变量名,后面不能加[SI]
(4)JNZVAR1;
VAR1是变量而不是标号
(5)JMPNEARLAB;
应使用NEARPTR
(1)MOVAL,0F5H正确
(2)ADD[BX][BP],BX错误,不能同时使用[BX][BP]进行寻址
(3)CMPAL,100H错误,AL为8位,100H大于8位,类型不匹配。
(4)TEST[BP],DL正确
(5)ADC15,CL错误,目的操作数不能是立即数
(6)SUB[DI],DA_WORD错误,两个操作数不能同时是存储器操作数。
(7)ORCH,CL正确
(8)MOVAL,1000H错误,AL为8位,1000H为16位,类型不匹配。
(9)SAR10H[DI],2错误,AL为8位,移位多次必须CL中。
(10)NOTAL,BL错误,逻辑非操作是单操作指令。
(11)DECCX,1错误,逻辑非操作是单操作指令。
(12)LEAES,TAB[BX]错误,目的寄存器只能是通用寄存器。
●指令隐含使用的寄存器,DOS系统功能调用使用的相关寄存器?
●PUSH(sp-1)/POP(sp+1)指令对SP及堆栈空间的影响?
例题1设(SP)=40H,(BX)=1234H,(DS)=5678H,如现有两条压栈指令:
PUSHBXPUSHDS
试问两条指令执行后,图4-46中各单元的数据是多少?
(SP)等于多少?
主存
00000H
(SP)783CH
563DH
343EH
123FH
40H
FFFFFH
各单元的数据如上图所示,(SP)等于40H-2H-2H=3CH
例题2说明下列指令的操作
(1)PUSHAX;
将(AX)压入堆栈
(2)POPESI;
将堆栈中的双字弹出到ESI寄存器中
(3)PUSH[BX];
将((BX))对应存储单元中的字压入堆栈
(4)POPDS;
将堆栈中的字弹出到DS寄存器中
(5)PUSH4;
将立即数4以字的方式压入堆栈
●主机与外设进行数据I/O的几种常用方式?
●8086/8088微机中各类中断的优先级如何划分?
●中断响应过程?
●简述存储系统的层次结构及各层存储部件特点?
●简述CPU与外设之间的数据传送方式p247
微机与外设间的数据传送,实际上是CPU与I/O接口间的数据传送。
CPU与外设间的数据传送通常包括无条件传送、查询传送、中断传送、以及DMA方式。
无条件传送:
:
无条件传送一般适合于数据传送不太频繁的情况,如对开关、数码显示器等一些简单外设的操作。
所谓无条件,就是假设外设已处于就绪状态,数据传送时,程序就不必再去查询外设的状态,而直接执行I/O指令进行数据传输。
查询传送:
程序控制下的查询传送方式,又称异步传送方式,它在执行输入输出操作之前,需通过测试程序对外部设备的状态进行检查。
当所选定的外设已准备“就绪”后,才开始进行输入输出操作。
中断传送:
为了进一步提高CPU的效率和使系统有实时性能,可以采用中断传送方式。
在中断传送方式下,当外设准备好时,主动向CPU发出中断请求,请求CPU进行数据的输入输出。
DMA方式:
DMA(DirectMemoryAccess):
是存储器与外设或存储器之间进行大量数据传送的方法,是在DMA控制器(DMAC)的控制下进行的。
●掌握常用汇编指令(70条左右)。
●会编写四则运算程序。
(主要是加减)
3.2写出执行以下计算的指令序列,其中X、Y、Z、R、W均为存放16位带符号数单元的地址。
以下程序都未考虑带符号数的溢出
(1)Z←W+(Z-X)
(2)Z←W-(X+6)-(R+9)
(3)Z←(W*X)/(Y+6),R←余数(4)Z←((W-X)/5*Y)*2
(1)MOVAX,Z;
SUBAX,X
ADDAX,W
MOVZ,AX
(2)MOVBX,X
ADDBX,6
MOVCX,R
ADDCR,9
MOVAX,W
SUBAX,BX
SUBAX,CX
(3)ADDY,6
IMULX
IDIVY
MOVR,DX
(4)MOVAX,W
CWD
MOVBX,5
IDIVBX
IMULY
SHLAX,1;
((DX),(AX))*2
RCLDX,1
●会编写大小写字母转换程序(小写字母-大写字母=20H)
●会编写数字值与ASCII码转换(’0—9’+30H;
’A—F’+37H)
●会分析伪指令功能,会编写伪指令数据段。
⏹例如:
数据定义语句为变量分配多少字节?
AD2DW10DUP(?
),10
XEQU($-AD2)/2
AD3DD100DUP(?
)
根据要求定义数据段,
定义数据段DATA_SEG,数据段中的数据按下列要求依次存储:
(1)第一个字是整数0E85H;
(2)变量BKK,大小为20个字节,初值均为10;
(3)变量ARY,类型为字,初值为8912H,6556H,7854H,0A66H;
28、试按下列要求分别编制程序段:
把标志寄存器中符号位SF置“1”(P.138.)
MOVAH,10000000B
SAHF
寄存器AL中高低4位互换
MOVCL,04H
ROLAL,CL
假设有3个字存储单元A,B,C在不使用ADD和ADC指令的情况下,实现(A)+(B)=>
C
MOVAX,A
NEGB
SUBAX,B
MOVC,AX
(4)把DX,AX中的32位无符号数右移2位
SHRDX,1
RCRAX,1
用一条指令把CX中的整数转变为奇数
ORCX,0001H
(6)
将AX中第1,3位变反,其余各位保持不变
XORAL,00001010B
(7)
根据AX中有0的位对BX中对应位变反,其余各位保持不变。
NOTAX(AX中内容变反)
XORBX,AX
4.1请设置一个数据段DATASG,其中定义以下字符变量或数据变量。
(1)FLD1B为字符串变量:
‘personalcomputer’;
(2)FLD2B为十进制数字节变量:
32;
(3)FLD3B为十六进制数字节变量:
20;
(4)FLD4B为二进制数字节变量:
01011001;
(5)FLD5B为数字的ASCII字符字节变量:
32654;
(6)FLD6B为10个零的字节变量;
(7)FLD7B为零件名(ASCII码)及其数量(十进制数)的表格:
PART120
PART250
PART314
(8)FLD1W为十六进制数字变量:
FFF0;
(9)FLD2W为二进制数的字变量:
(10)FLD3W为(7)零件表的地址变量;
(11)FLD4W为包括5个十进制数的字变量:
5,6,7,8,9;
(12)FLD5W为5个零的字变量;
(13)FLD6W为本段中字数据变量和字节数据变量之间的地址差。
DATASGSEGMENT
FLD1BDB‘personalcomputer’
FLD2BDB32
FLD3BDB20H
FLD4BDB01011001B
FLD5BDB‘32654’
FLD6BDB10DUP(0)
FLD7BDB‘PART1’,20
DB‘PART2’,50
DB‘PART3’,14
FLD1WDW0FFF0H
FLD2WDW01011001B
FLD3WDWFLD7B
FLD4WDW5,6,7,8,9
FLD5WDW5DUP(0)
FLD6WDWFLD1W-FLD1B
DATASGENDS
●分析内存储器的芯片组连接,地址范围。
上课讲过例题
例1。
图为存储器芯片同8088的连接图,请回答:
(1)6264芯片的单片存储容量为多少?
(2分)
(2)分析图中4个6264芯片各自的地址范围。
(8分)
附:
例2.设有若干片256K×
8位的SRAM芯片,问:
(1)如何构成2048K×
32位的存储器?
(2)需要多少片RAM芯片?
(3)该存储器需要多少字节地址位?
**(4)如何与cpu连接?
(**画图**)
例3.分析芯片地址范围。
例1设有32片256K×
1位的SRAM芯片
(1)采用位扩展方法可构成多大容量的存储器?
(2)该存储器需要多少字节地址位?
解:
256K*1位SRAM芯片包含18根地址线
(1)32片256K×
1位的SRAM芯片可构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 09 软件 期末 复习题 汇编语言