微机原理与汇编程序设计复习题.docx
《微机原理与汇编程序设计复习题.docx》由会员分享,可在线阅读,更多相关《微机原理与汇编程序设计复习题.docx(33页珍藏版)》请在冰豆网上搜索。
微机原理与汇编程序设计复习题
微机系统与汇编语言复习题
单项选择题10*2=20分
填空题10*2=20分
问答题:
5*5=25分
程序分析题4*5=20分
设计应用题1*15=15分
第一章微型计算机概述
1、微型计算机(MC,Microcomputer)是有哪些部件构成的?
答:
由MP、存储器、输入/输出接口电路和系统总线构成。
2、微型计算机系统(MCS,MicrocomputerSystem)是有哪些部分构成的?
答:
微型计算机系统是以微型计算机为主体,配上软件系统和外部设备而构成的。
第二章计算机中的数据表示
1.58的非压缩BCD和压缩BCD各如何表示?
写出存入DX的指令。
答:
58的非压缩BCD是0508H存入DX的指令:
MOVDX,0508H
58的压缩BCD和是58H存入DX的指令:
MOVDX,0058H
2、什么是ASCII码?
可表示哪些信息?
按其作用可分为哪些?
答:
ASCII码是美国信息交换标准代码的简称,用于给西文字符编码。
包括英文字母的大小写、数字、专用字符、控制字符等;
按其作用可分为:
34个控制字符;10个阿拉伯数字52个英文大小写字母;32个专用符号
第三章80X86微处理器及其体系结构
1、8086CPU信号线RESET的功能是什么?
8086复位后内部寄存器状态是怎样的?
8086CPU复位后从什么单元中取第一条指令执行。
答:
RESET—复位信号输入
8086复位后CS=FFFFH、DS=0000H、ES=0000H、SS=0000H、IP=0000H、FR=0000H
8086CPU复位后从CS*10H+IP=FFFFH*10H+0000H=FFFF0H地址单元中取第一条指令执行启动系统。
CS:
IP=FFFF:
0000H
2、已知一个SRAM芯片的容量为8K×8和64K×8,地址线、数据线各为多少?
答:
SRAM芯片的容量为8K×8:
地址线13条,数据线8条
SRAM芯片的容量为64K×8:
地址线16条、数据线8条
3、指令指针寄存器IP多少位?
有何功能?
答:
IP是一个16位的寄存器,存放EU要执行的下一条指令的偏移地址,用以控制程序中指令的执行顺序,实现对代码段指令的跟踪。
4、8086CPU用于地址锁存器输入允许的控制信号和用于数据收发器允许的控制信号各是什么信号?
答:
用于地址锁存器输入允许的控制信号是ALE,用于数据收发器允许的控制信号是DEN。
5、是什么引脚?
答:
等待测试引脚
6、INTA是什么引脚?
答:
中断响应引脚
7、M/IO是什么引脚?
答:
存储器访问/输入输出访问控制引脚
8、8086CPU最小、最大方式时用于总线请求、允许的信号线各是什么?
答:
最小:
HOLD---总线请求
HLDA---总线响应
最大:
RQ/GT0、RQ/GT1
9、8086CPU访问存贮器和访问I/O的地址分别各为什么?
可寻址的最大存贮器空间和最大I/O空间分别各为多少?
答:
8086CPU访问存贮器的地址是A19—A0,可寻址的最大存贮器空间是1MB.
8086CPU访问I/O的地址是A15—A0,可寻址的最大I/O空间是64KB.
10、什么是逻辑地址?
什么是物理地址?
它们各自如何表示?
如何转换?
答:
程序中使用的存储器地址称为逻辑地址,由16位“段基址”和16位“偏移地址”(段内地址)组成。
段基址表示一个段的起始地址的高16位。
偏移地址表示段内的一个单元距离段开始位置的距离。
访问存储器的实际地址称为物理地址,用20位二进制表示。
将两个16位二进制表示的逻辑地址错位相加,可以得到20位的物理地址:
物理地址=段基址×16+偏移地址
11、物理地址4ACD9H的逻辑地址可以是哪些?
答:
4A00:
0CD9、4500:
5CD9、4A88:
0459等
12、8086CPU输入输出指令的间址寄存器是什么?
答:
DX
13、8086CPU寄存器BX、BP、AX、各是什么功能的寄存器?
答:
BX、BP----基址寄存器AX---累加器
14、标志寄存器FR多少位?
有哪些标志?
答:
FR是一个16位的寄存器,共9个标志.
其中6个用作状态标志CF、PF、AF、ZF、SF、OF
3个用作控制标志DF、IF、TF.
(1)进位标志CF----反映运算结果向更高位是否有进/借位,加减运算后有进位/借位时CF=1,否则CF=0
CF标志的用途:
用于运算时的进/借位。
用于无符号数运算后判定是否有溢出。
用于移位操作时接收移出的信息位.
(2)奇偶校验标志PF:
反映运算结果低八位中“1”的个数为奇或者为偶,其值为1表示运算结果的低8位中1的个数为偶数,否则为奇数。
PF标志可用于数据传送后的奇偶校验。
(3)辅助进位标志AF----反映运算后的结果是否有半进位/借位,其值为1表示运算中低4位向高4位有进位或借位,否则无进位或借位。
AF在BCD码运算(8位)时可用作十进制调整的条件。
(4)零标志ZF-----反映运算结果是否为零,其值为1表示运算结果为0,否则非0。
ZF可用于判定二个数是否相等,相等的时候它们相减的结果为零。
ZF还可用作计数器的计数次数是否减为0,当减为0的时候表示计数到,例如:
循环次数计数
(5)符号标志SF:
反映运算结果是否为负,其值为1表示运算结果为负数,否则为正数。
SF在有符号数运算时才有意义。
SF也可在无符号数比较大小时判定两个数的大小,A、B两个数相减后结果SF=0,A>B,SF=1,A
SF还在有符号数比较大小时与OF标志一起判定两个数的大小。
(6)溢出标志OF:
反映有符号数运算后的结果是否有溢出,其值为1表示带符号数运算结果溢出,否则无溢出。
有符号数运算时:
正数加正数结果为正---无溢出;结果为负---有溢出
负数加负数结果为负---无溢出;结果为正---有溢出
正数加负数或负数加正数-------无溢出
OF⊕SF可以用于判有符号数比较大小
以上的6个状态标志在运算指令运算后由EU自动的设置在FR中(CF也可以直接用指令设置),常用作指令的转移或执行的控制条件,影响或控制后续指令的执行,特别是CF、ZF、OF、SF。
CPU的不同指令对状态标志的影响是不一样的,有的指令执行后全部影响6个标志,有的影响部分,不影响的保持原态,也有的一个都不影响,对不影响的指令执行后就不可以使用条件转移指令。
控制标志:
(1)方向标志DF:
用于串操作时设置串指针的修改方向,=0,串指针增量变化,=1,串指针减量变化
(2)中断允许标志IF:
设置是否允许CPU响应外部的可屏蔽中断请求INTR,,=0,关中断,=1,开中断
(3)陷阱标志TF:
用于设置CPU运行为单条执行指令的方式,=0,正常执行程序,=1,单步执行程序
第四章寻址方式与指令系统
1、下列指令的源操作数段基址各是什么段寄存器?
(1)MOVAX,[BP][SI]答:
SS
(2)MOVAX,CS:
8[DI]答:
CS
(3)MOVAX,[BX][DI]答:
DS
(4)MOVAX,ES:
10[BP][SI]答:
ES
2、8086允许段超越和禁止段超越操作各有哪些?
答:
允许段超越的有:
以BP为基址存取操作数取源串数据cs段数据访问等
禁止段超越的是:
取指令存目的串堆栈操作push/pop
3.已知DS=5000H,SS=2500H,BP=0200H,SI=1000H,传送指令MOVAX,[BP+SI]源操作数的寻址方式什么方式?
物理地址是多少?
答:
源操作数的寻址方式是:
基址变址
物理地址=26200H
4、若DS=4500H,DI=1000H,COUNT=A8H,
指令MOVAX,[DI+COUNT]中,源操作数的有效地址EA和物理地址各为多少?
答:
有效地址EA为10A8H
物理地址为460A8H
5、8086CPU有哪几种数据寻址方式,掌握数据各种寻址方式的寻址过程,要求会求指令的寻址方式?
会求有效地址EA=?
会求物理地址=?
答:
指令的物理地址=CS*10H+IP
堆栈栈顶物理地址=SS*10H+SP
源串物理地址=DS*10H+SI,
目的串物理地址=ES*10H+DI
数据直接寻址:
MOVAL,[1000H];EA=1000H,物理地址=DS*10H+1000H
寄存器间接寻址:
MOVAL,[BX]或[SI]或[DI];
EA=BX或SI或DI,物理地址=DS*10H+BX或SI或DI
基址寻址:
MOVAL,DISP[BX];EA=BX+DISP,物理地址=DS*10H+BX+DISP
MOVAL,DISP[BP];EA=BP+DISP,物理地址=SS*10H+BP+DISP
基址变址寻址:
MOVAL,[BX+SI或DI];
EA=BX+SI或DI,物理地址=DS*10H+BX+SI或DI
MOVAL,[BP+SI或DI];EA=BP+SI或DI,物理地址=SS*10H+BP+SI或DI
变址寻址:
MOVAL,DISP[SI];EA=SI+DISP,物理地址=DS*10H+SI+DISP
MOVAL,DISP[DI];EA=DI+DISP,物理地址=DS*10H+DI+DISP
相对基址变址寻址:
MOVAL,DISP[BX+SI或DI];
EA=BX+SI或DI+DISP,
物理地址=DS*10H+BX+SI或DI+DISP
MOVAL,DISP[BP+SI或DI];
EA=BP+SI或DI+DISP,
物理地址=SS*10H+BP+SI或DI+DISP
6、8086CPU有哪几种转移寻址方式,段内、段间转移有何不同?
掌握转移各种寻址方式的寻址过程。
答:
与转移地址有关的寻址方式:
段内相对寻址、段内间接寻址、段间直接寻址、段间间接寻址。
段内相对寻址:
段内短转(short)—转移偏移地址=IP+disp8
段内近转(near)—转移偏移地址=IP+disp16
段内间接寻址:
寄存器间接—转移的偏移地址=reg(reg为AX、BX、CX、DX、SP、BP、SI、DI)
存储器间接—转移的偏移地址=(EA)(EA为数据寻址方式寻址单元,为字单元)
例:
已知BX=3500H,DS=2000H.(23500H)=4500H,(23502H)=2000H
JMPBX;段内寄存器间接,IP=3500H
JMPWORDPTR[BX];段内存储器间接,
IP=(2000H*10H+3500H)=4500H
段间直接转:
JMPFARPTRL:
IP=转移指令的第2、3字节
CS=转移指令的第4、5字节
段间存储器间接转:
JMPDWORDPTR[BX]:
IP=(2000H*10H+3500H)=4500H
CS=(2000H*10H+3500H+2)=2000H
7、数据传送指令(MOV)使用有哪些规定?
答:
允许reg←reg例:
MOVAX,BX
允许reg←mem例:
MOVAX,[BX]
允许reg←data例:
MOVAX,2500H
允许reg←sreg例:
MOVAX,CS
允许mem←reg例:
MOV[BX],AX
允许mem←data例:
MOV[BX],2500H
允许mem←sreg例:
MOV[BX],CS
允许sre