微机原理期末考试总复习题.docx
第一章
1、微型计算机、微机系统各由哪些部件组成?。
答:P1
第一早
1、8086 CPU用于I/O指令的数据寄存器和间址寄存器、存放变址地址的寄存器、用于堆栈操作的寄存器、存放基址地址的寄存器各是什么?
答:8086 CPU用于I/O指令的数据寄存器和间址寄存器:AL(8位)或AX(16位),DX 8086 CPU用于变址地址的寄存器:SI、DI
8086 CPU用于堆栈操作的寄存器:SP (栈顶)、BP (堆栈段基址)
8086 CPU用于基址地址的寄存器:BX(数据段)、BP (堆栈段基址)
2、8086 CPU访问存贮器和访问I/O的地址分别各为什么?可寻址的最大存贮器空间和最大I/O空间分别各为多少?
答:8086 CPU访问存贮器的地址是A19—A0,可寻址的最大存贮器空间是1MB.
8086 CPU访问I/O的地址是A15—A0,可寻址的最大I/O空间是64KB.
3、掌握补码计算X+Y和X-Yo
例如:X=?45,Y=?34,用补码计算X+Y和X?Y。
解:X=-45=-0101101 [X]补=1101 0011
y=-34=-0100010 [Y]补=1101 1110 卜Y]补=0010 0010
求[X+Y]补:
[X]补=1101 0011
+「Y1 补=1101 1110 也
1011 0001 =-100 1111=-79
CF=1(有进位)ZF=0 (结果非0) SF=1(结果为负)OF=0(结果无溢出)
求[X?Y]补:
[X]补=1101 0011
+ _____________________
@ 1111 0101 =-000 1011=-11
CF=1(有借位)ZF=0 (结果非0) SF=1(结果为负)OF=0(结果无溢出)
4、掌握指令的有效地址,物理地址如何计算.
答:有效地址EA Ftl寻址方式决定
物理地址=段基址*10H+EA
5、8086 CPU允许、禁止段跨越的操作有哪些。举例。
答:取指令的指令地址=CS*10H+IP,禁止段超越堆栈栈顶地址=SS*10H+SP,禁止段超越
目的串地址=ES*10H+DI,禁止段超越
数据访问的数据地址=DS*10H+BX或SI或DI或直接偏移地址,允许段超越
=SS*10H+BP允许段超越
源串地址=DS*10H+SI,允许段超越
6、8086 M/IO、TEST、QS。,QS b信号线的功能各是什么?
答:M/IO—存储器/IO访问控制,=1 , CPU访问存储器,=0, CPU访问I/O
TEST:等待测试信号
QSo, QS1:指令队列状态指示信号
7、8086 CPU ALE信号线的功能是什么?8086 CPU DEN信号线的功能是什么?
答:ALE :地址锁存器输入允许信号
DEN :数据收发器允许信号
8、8086 CPU信号线READY的功能是什么?在何时何条件可插入TW ?
答:READY的功能是等待就绪信号,用于慢速的部件与CPU的速度协调,在慢速的部件不能在规定的时间內完成操作时可产生READY=0, CPU检测后可在T3与T4之间插入等待时钟TW
9、8086CPU最小、最大方式时用于总线请求、允许的信号线各是什么?
答:最小:HOLD…总线请求,HLDA…总线响应
最大RQ/GTO、RQ/GT1
10^ 8086 CPU信号线RESET的功能是什么?RESET有效后8086CPU有何状态?内部寄存器的值各为多少?8086CPU从什么单元中取第一条指令执行。
答:RESET—复位信号输入
RESET有效后内部寄存器的状态是:DS、SS、ES、FR、IP=0000H,CS=FFFFH,指令队列清空,复位后从CS* 1 OH+IP=FFFFH* 10H+0000H=FFFF0H地址单元屮取第一条指令执行启动系统。
11、8086 CPU的最大、最小方式用什么引脚如何设置?最大、最小系统构成时有何不同?
答:8086 CPU的最大、最小方式用MN/莎引脚设置。
最大、最小系统构成时有何不同?…P39
12、8086 CPU 一个基本的总线周期由哪儿个时钟周期组成?各时钟周期可完成哪些操作?总线传送一次数据分为哪二个阶段?
答:8086 CPU 一个基本的总线周期由Tl、T2、T3、T4共4个基本时钟周期组成。
总线传送一次数据分为传送地址和传送数据二个阶段,TI时刻:CPU输出地址信息,
T2—T4时刻:CPU传送数据信息,
第三章
1、8086 CPU有哪儿种数据寻址方式,掌握数据各种寻址方式的寻址过程,要求会求指令的寻址方式?会求有效地址EA=?会求物理地址=?
答:主要有:指令的物理地址=CS*10H+IP
堆栈栈顶物理地址=SS*10H+SP
源串物理地址=DS* 1OH+SI,
目的串物理地址灯5* 1OH+DI
数据直接寻址:MOV AL , [1000H]; EA=1000H,物理地址=DS* 10H+1000H
寄存器间接寻址:
MOV AL, [BX]或[SI]或[DI] ; EA=BX 或SI 或DI,物理地址=DS* 10H+ BX 或SI 或DI
基址寻址:
MOV AL , DISP[BX] ; EA=BX+DISP,物理地址=DS*10H+ BX+DISP
MOV AL , DISP[BP] ; EA=BP+DISP,物理地址=SS*1OH+ BP+DISP
基址变址寻址:
MOVAL, [BX+SI 或DI] ; EA=BX+ SI 或DI,物理地址=DS*10H+ BX+ SI 或DI
MOV AL, [BP SI 或DI] ; EA=BP+ SI 或DI,物理地址強也卅BP+ SI 或DI
变址寻址:
MOV AL , DISP[SI] ; EA=SI+DISP,物理地址=DS*10H+ SI+DISP
MOV AL , DISP[DI] ; EA=DI+DISP,物理地址=DS*10H+ DI+DISP
相对基址变址寻址:
MOV AL ,DISP [BX+SI 或DI] ; EA=BX+ SI 或DI+DISP,物理地址=DS*10H+ BX+ SI 或DI+DISP
MOV AL , DISP [BP SI 或DI] ; EA=BP+ SI 或DI+DISP,物理地址=SS*1OH+ BP4- SI 或DI+DISP
2、8086 CPU有哪儿种转移寻址方式,段内、段间转移有何不同?掌握转移各种寻址方式的寻址过程。
答:与转移地址有关的寻址方式:段内相对寻址、段内间接寻址、段间直接寻址、段间间接寻址。
段内相对寻址:段内短转一转移的偏移地址=IP+disp 8
段内进转一转移的偏移地址=IP+disp 8
段内间接寻址:寄存器间接一转移的偏移地址=reg (reg为AX、BX、CX、DX、SP、BP、SI、DI) 存储器间接一转移的偏移地址=(EA) (EA为数据寻址方式寻址单元,为字单元) 例:己知
BX=3500H,DS=2000H.(23500H)=4500H, (23502H)=2000H
JMP BX;段内寄存器间接,IP=3500H
JMP WORD PTR[BXJ;段内存储器间接,IP= (2000H*10H+3500H) =4500H
段间直接转:JMPL:IP=转移指令的第2、3字节,CS=转移指令的第4、5字节
段间存储器间接转:JMP DWORD [BX] :1P= (2000H*10H4-3500H) =4500H
CS= (2000H*10H+3500H+2) =2000H
3、掌握8086CPU以下指令:
MOV、PUSH/POP、LEA、ADD、ADC、SUB、SBB、INC、DEC、NEG、CMP、DAA、MUL、
DIV、AND、OR、NOT、XOR、SHL、SHR、SAL、SAR、ROL> ROR、RCL、RCR、MOVS、CMPS、STOS、LODS、SCAS、REP、条件转移类、LOOP、CALL、RET> CLD、STD 对给出的指令,耍求会分析指令是否正确。
4、掌握运算指令执行后产生标志状态CF、ZF、SF、OF的方法。
CF=D7C (加)CF=D7C (减)…求机器负数后的补码加
ZF= D7+D6+..…+D0
SF=最高位
OF =D7 Q)6...O?… Q
5、掌握可以实现清寄存器同时又清进位位、溢出标志的操作指令。
解:可以实现的指令有(设清累加器AX)
XOR AX,AX;AX=O,CF=O, OF=0
SUB AX , AX ;AX=O , CF=O, OF=0
AND AX,O; AX=O , CF=O, OF=0
MOV AX,0 ; AX=O , CF、OF 不确定
6、设AX=865AH, BX=CB75H,则指令“ADD AX, BX”执行后,产生的标志位是怎样的?:
解:1000 0110 0101 1010
+ 1100 1011 0111 0101
1 0101 0001 1100 1111
CF=1(有进位)SF=O (结果为正)ZF=0 (结果非零)OF=1(结果有溢出)
AF=0(无进借位)PF=0(奇数个1)
7、数据传送指令(MOV)使用有哪些规定?
答:允许rcg*-rcg 例:MOVAX,BX
允许regimem 例:MOVAX,[BX]
允许rcg<-data 例:MOV AX,2500H
允许rcg<-srcg 例:MOV AX.CS
允许mcm<-rcg 例:MOV [BX],AX
允许mem—data 例:MOV [BX],2500H
允许mem<-sreg 例:MOV [BX],CS
允许sreg<-reg(除CS 外)例:MOV DS,EX
不允许:mem—mem 例:MOV [SI],[BX]
不允许sreg—data 例:MOV DS,2500H
不允许sreg^sreg 例:MOV DS,CS
不允许CS做目的寄存器,例:MOV CS,BX
不允许类型不匹配,例:MOVAL,BX
8、REPZ、REPNZ指令,重复执行的终止条件是什么?
答:REPZ: CX=0 或ZF=0 REPNZ : CX=0 或ZF=1 9、标志状态CF、ZF、SF、OF在编程中各有和用途?
答:CF:用于反映加减运算后是否有进借位,CF=O无进借位,CF=1有进借位
可用于判定无符号数相加后是否产生溢;11, CF=O无溢出,CF=1有溢出
可用于判定无符号数比较大小
CF=O:无符号数A与B比较后说明A>B
CF=1:无符号数A与B比较后说明A
ZF:用于反映算逻运算后结果是否为0, ZF=0(结果非0), ZF=1(结果为0)
SF:用于反映算逻运算后结果的正负,SF=0(结果为正),SF=1(结果为负)
OF:用于反映带符号数算术运算后结果是否有溢出,OF=0(结果无溢出),OF=1(结果有溢出)用OF O F =0A>B ,OF SQ1A
10、如何实现两个16位寄存器的内容移位操作,移位可实现何种运算?。
例如:如何实现DX、AX中的无符号数乘2、除2操作。
解:乘2 SHL AX, 1
RCL DX, 1
除2 SHR DX, 1
RCR AX, 1
11、已知IP , CS,位移量,要求会求执行JMP指令后的转移地址?
例如:己知CS=5000H,IP=2500H,DISP8=F5H,求下指令执行后的转移地址。
JMP SHORT L ; IP= 2502H+FFF5H= 24F7H ,执行后的转移地址=5000H:24F7H
例如:己知CS=5000H,IP=2500H,DISP 16=0015H,求下指令执行后的转移地址。
JMP L;IP= 2503H+0018H= 251BH,执行后的转移地址=5000H:251BH
12、8086CPU转移指令的转移范围是多少?
条件转移:-128—+127
段内短转(2字节,8位的位移量):-128—+127
段内近转(3字节,16位的位移量):-32768—4-32767
段内间接:64KB范圉内
段间转移:1MB范围内
13、8086CPU串指令中对源串、目的串有何要求。
答:源串物理地ill:=DS*10H+SL
目的串物理地址=ES*10H+DI
执行前必需设置DS、SI, ES、DI, CX(重复次数),DF控制标志
14、要求会求数组最后一个字、字节的存储地址是多少。
答:数组最后一个字的地址=数组的首地址+ (数据个数J) *2
数组最后一个字节的地址=数组的首地址+ (数据个数?1)
15、掌握REP、REPE、REPNE有何功能?
16、已矢[IDS、SS、ES、CS、AX、BX、SI、DI、CX、DX、SP、BP、CF、DF、部分内存单元屮的内容, 写出指令SAR 、SHR、JMP 、PUSH、REP STOSB、REP MOVSB、CALL、RET、DAA 执行后的结果。
(1)例如:已知DS=5000H,BX=2500H,(52500H)=6800H, (52502H)=5600H,求下列指令执行后的转移地址。
指令1 :JMP WORD PTR [BX];
解:物理地址=DS*10H+BX=52500H, (52500H)=6800H,执行后IP=6800H,CS 不变
指令2: JMP DWORD PTR [BX];
解:物理地址=。$* 10H+BX=52500H, (52500H)=6800H , (52502H)=5600H
执行后IP=6800H,CS=5600H,程序转移到5600H:6800H执行。
⑵ 例如:已知DS=5000H,BX=2500H, DI=6000H (58500H)=B456H,CX=0004H,求下指令执行后的结果。指
令1: SAR [BX][DI], CL ;
解:物理地址=。$* 10H+BX+DI=58500H (58500H) = B456H , CL=4
执行后:(58500H) = FB45H
指令2: SHR [BX][DI],CL;
解:物理地址=。$* 10H+BX+DI=58500H (58500H) = B456H , CL=4
执行后:(58500H) = 0B45H
(3)例如:已知SS=3200H, SP=0500H,CX=5484H,求下指令执行后的结果。
PUSH CX ; SP-2=SP ,执行后SP=04FEH , (SS:SP)= (3200H: 04FEH) = 5484H
或(324FEH) =5484H
(4)已知ES=2000H,DI=0500H,CX=0004H,AL=56H
REP STOSB ;重复执行(ES:DI)—AL 共CX 次
执行后(20500H--20503H)=56H
(5)已知ES=2000H,DI=0500H,CX=0004H, DS=1000H,SI=0100H ,(10100H) =AAH、(10101H) =BBH、(10102H)=CCH、(10103H) =DDH
指令REP MOVSB ;重复执行(ES:D1)—(DS:SI)共CX 次
执行后(20500H …20503H)=AAH、BBH、CCH、DDH
17、作业:3.1、3.2、3.4、3.5、3.6、3.9、3.11
第四章:
1、掌握汇编语言程序的编程格式。P124
2、掌握汇编语言中常量、标识符、表达式。P125
3、掌握汇编语言中数据定义语句。P130
4、掌握汇编语言中变量的屈性和数据的类型。P137
5、掌握汇编语言中标号的属性。P137
6、掌握汇编语言屮属性运算符PTR。
答:用PTR可以说明和重新指定变量或标号的类型。
例如:INT [BX]—-类型不确定
正确的写法:INT BYTE PTR [BX]-■一字节类型
INT WORD PTR [BX]—-字类型
例如:XDW 1234H -------- 字属性
MOV AL , X-一一类型错误
正确的写法:MOV AL , BYTE PTR X ; AL=34H
7、如果从存储器的50000H地址开始分配段区,要求代码段占用2 K字节空间,数据段占1K字节空间、
堆栈段占用100个字节空间。按代码段、数据段和堆栈段的顺序连续分段,各段信息存储的偏移地址从0开始,写出CS、DS、SS各段寄存器内容是什么?
答:代码段范围50000H—507FFH ,CS=5000H
数据段范围50800H—50BFFH ,DS=5080H
堆栈段范围50C00H--50C63H ,SS=50C0H
8、掌握汇编语言屮的宏定义,给出宏定义,要求可写出宏调用后的宏展开的指令。
例如:AAA MACRO A,B,C
SHLA, 1
ADD B, C
ENDM
执行宏调用AAA AL,BX, 1234H
宏展开:SHL AL, 1
ADD BX, 1234H
9、可用于回送变量段地址、段内偏移地址、DUP定义的单元数量的伪指令有哪些。
答:回送变量段地址的伪指令是SEG
回送变量段内偏移地址的伪指令是OFFSET
回送DUP定义的数据元素数量的伪指令是LENGTH
10、调用程序与子程序之间参数传递的方法有哪些。
答:寄存器、堆栈、参数表
11、掌握汇编语言中的DOS功能调用的方法(单个字符输入输出、串字符输入输出)。
例:键入单个字符,判断是否为回车,是转EXIT,否则转L.
MOVAH , 1
INT21H
CMPAL,0DH
JE EXIT
JMP L
EXIT: ........
例:显示单个字符数字6
MOV DL. 36H
MOV AH , 2
INT21H
12、要求会分析程序段执行后的功能。(BCD码求和、移位乘、程序分支) 作业:3.4 (1) 3.5例:MOVAL,5 ;X=5
SHLAL, 1 :2X
MOV BL , AL ; BL=2X
SHLAL, 1 ;4X
ADD AL, BL ;AL=6X=30
13、掌握查表程序的编程。
例:已知TZB DB C0H,F9H……;0—F的七段LED显示码表
编程实现对定义在X单元屮的0—F查表产生显示码的程序。
MOV BX , OFFSET TZB
MOV AL, X
MOV AH, 0
ADD BX, AX
MOV AL ,[BX]
14、编程实现两位压缩BCD码转为ASCII并送屏幕显示
解:MOV AL , 45H
MOV BL,AL
;转换并显示高位
MOV CL ,4
SHLAL,CL
ADD AL ,30H
MOV DL,AL
MOV AH , 2
INT21H
;转换并显示低位
MOV AL ,BL
AND AL OFH
ADD AL ,30H
MOV DL,AL
MOV AH , 2
INT21H
15、编程实现从键盘输入产生十六进制数(0-F)存入X单元。
解:数字0—9 的ASCII: 30H—39H,字母A—F:41H—46H
L: MOV AH , 1
INT21H
CMPAL,30H
JB L
CMPAL,39H
JA LI
SUB AL, 30H
MOV X, AL
JMP L2
LI: CMPAL,41H
JB L
CMPAL,46H
JA L
SUB AL, 37H
MOV X, AL
L2: ...............
16、掌握分类统计程序的编程。
例:设BUF中定义了一批大小写字母,统计大小写字母的个数存入X、Y单元大写字母A-Z: 41H—5AH ,小写字母a—z: 61H—7AH
BUF DB 'uhwddlksfklfdSDKFDSF'
COUNT EQU $? BUF
X DB?
Y DB?
MOV BX , OFFSET MOV CX , COUNT MOV DX, 0
L2:M0VAL,[BX]
CMPAL,41H
JB L
CMP AL, 5 AH
JA LI
INC DL
JMPL
L1:CMPAL,61H
JB L
CMP AL, 7 AH
JA L
INC DH
L: INC BX
LOOPL2
17、编程实现A、B两个字节数组(带符号数)求和存入C,设数组长为20个字节
解:A DB ...................
B DB .................
C DB 20DUP(?)
MOV BX , OFFSET A
MOV SI, OFFSET B
MOV DI, OFFSET C
MOV CX, 20
CLC
L:MOVAL, [BX]
ADC AL, [SI]
MOV [DI], AL
INC BX
INC SI
INC DI
LOOPL
18、作业:4.1、4.2、4.3、4.9、4.10、4.11、4.12、4.14、4.18、4.20、4.21、4.23
第五章
1、系统地址总线的位数与寻址的存储空间有何关系?
答:设地址为n位,寻址的存储空间
例如:n=10可寻址1024个存储单元(IK) n=ll可寻址2048个存储单元(2K)
n=12可寻址4096个存储单元(4K)n=13可寻址8192个存储单元(8K)
n=14可寻址16384个存储单元(16K)n=15可寻址32768个存储单元(32K)
n=16可寻址65536个存储单元(64K)n=17可寻址128K
n=18 可寻址256K n=19可寻址512K
n=20 可寻址IM n=21 可寻址2M n=22可寻址4M n=23可寻址8M
n=24 可寻址16M n=25 可寻址32M n=26可寻址64M n=27可寻址128M n=28 可寻址256M n=29 可寻址512M
2、微机存储器系统常用哪儿种芯片?芯片有哪些引脚?与系统的链接是怎样的?答:系统常用存储芯片有:SRAM、EPROM
SRAM芯片的引脚:数据线I/O8—I/O1,接系统的D7—DO
地址线Am-—A0,接系统的Am-—AO, m—由芯片容量决定输出允许
OE:接MEMR
读写控制WE:接MEMW
片选线CE:接片选信号译码器的输出端
3、要求掌握存储器芯片与8088 CPU接口电路的设计方法。
解:见第五章课件
第六章
1、系统中数据传送的控制方式主要有哪几种方式?
2、外设接口与外设通过那些信息进行连接?