微机原理复习Word文件下载.docx
- 文档编号:12991863
- 上传时间:2022-10-01
- 格式:DOCX
- 页数:17
- 大小:146.09KB
微机原理复习Word文件下载.docx
《微机原理复习Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理复习Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
偏移地址。
段地址存放在4个段寄存器中,偏移地址可以存放在6个寄存器(IP、SP、BP、SI、DI、BX)中,在形成物理地址时应该使用哪个寄存器是总线接口单元根据操作的要求来确定的。
堆栈
堆栈由存储区和一个指示器组成。
堆栈的存储区一端封闭、一端开口,数据的存取(进出)只能在开口端进行,存(进)取(出)原则为“先进后出”。
8086/8088允许建立的堆栈段最大可达64K字节,堆栈只能作字操作而不能作字节操作。
由于堆栈也是存储器的一个区域,所以不对堆栈区域的存储器进行栈操作就没有“先进后出”和字操作的限制。
堆栈存储区的位置由堆栈段寄存器SS给定,并自动使用SP作指示器。
堆栈指示器SP所指的单元称为栈顶,执行栈操作存取数据均在栈顶进行。
1.写出下列十进制数的原码和补码,用二位或四位或八位十六进制数填入表中:
十进制数
原码
补码
18
12h
92h
0EEH
30
1EH
9EH
0E2H
347
15BH
815BH
0FEA5H
解:
求补码的计算如下:
18=16+2=12H
18=EEH(对12H求补)
30=322=20H2H=1EH
30=1EH=E2H(对1EH求补)
347=40053=190H35H=15BH
347=FEA5H(对15BH求补)
2.用十进制数写出下列补码表示的机器数的真值:
1BH,71H,80H,F8H,
解:
正数的真值,将十六进制数转换为十进制数即可。
负数的真值,首先将该数求补,前面加一负号,再将求补后的十六进制数转换为十进制数。
1BH=16+11=27
71H=80H15=12815=113
80H=80H=128
F8H=08H=8
3.用补码运算完成下列算式,并指出运算结果是否产生了溢出:
(1)33H+5AH
(2)-29H-5DH
(3)65H-3EH(4)4CH-68H
(1)33H+5AH=8DH
Cy=0,Cs=1,OF=1,溢出;
二进制算式如下:
(2)29H=D7H,5DH=A3H;
29H5DH=D7H+A3H=7AH
Cy=1,Cs=0,O=1,溢出
(3)3EH=C2H;
65H3EH=65H+C2H=27H
Cy=1,Cs=1,O=1,无溢出
(4)68H=98H;
4CH68H=4CH+98H=E4H
Cy=0,Cs=0,O=0,无溢出
4.将表中的十进制数按表中要求转换后用十六进制数填入表中:
压缩BCD数
非压缩BCD数
ASCII码
38
38H
0308H
3338H
97
97H
0907H
3937H
105
105H
010005H
313035H
填表如下:
5.假设用户程序装入内存后SS=095BH、SP=40H,试问该用户程序的可用栈底部物理地址是多少?
用户程序堆栈的栈区的首地址和末地址是095BH:
0000H~095BH:
003FH,所以栈底物理地址是095B0H+003FH=095EFH。
6.有一数据段装入内存后,若DS=095FH时,某单元的物理地址是11820H。
当这个数据段装入内存后DS=2F5FH时,该单元的物理地址变为多少?
11820H095F0H=8230H
2F5F0H+8230H=37820H
所以当段地址DS=2F5FH时,物理地址变为37820H。
7.设SP=0040H,如果用进栈指令存入5个数据,则SP=,若又用出栈指令取出2个数据,则SP=。
存入5个数据需要占用10个字节,SP-10,所以SP=0040H-0AH=0036H。
取出2个数据,让出4个字节,SP+4,所以SP=0036H+04H=003AH。
所以,如果用进栈指令存入5个数据,则SP=0036H,若又用出栈指令取出2个数据,则SP=003AH。
8.分别指出下列指令中源操作数和目的操作数的寻址方式:
(1)MOVAX,1000H
(2)MOVAX,ES:
1000H
(3)MOV[BX],AL(4)MOVDI,[SI]
(5)ADDAX,[BX+4](6)SUBAX,[BX+DI+5]
(7)MOV[DI+2],AX(8)ADDAX,[BP+DI7]
(1)立即寻址和寄存器寻址,即源操作数为立即寻址,目的操作数为寄存器寻址。
(2)直接寻址和寄存器寻址。
(3)寄存器寻址和间接寻址。
(4)间接寻址和寄存器寻址。
(5)基址寻址和寄存器寻址。
(6)基址变址寻址和寄存器寻址。
(7)寄存器寻址和变址寻址。
(8)基址变址寻址和寄存器寻址。
9.指出下列指令是否合法:
(1)MOVAX,DL
(2)MOV[BX],5
(3)ADDAX,5(4)MOVDS,1000H
(5)PUSHCH(6)POPCS
(7)ADDES,AX(8)MOVSS,CS
(9)DECBX(10)INC[BX]
(1)类型不一致。
(2)两个操作数的类型都不明确。
(4)立即数不能直接送段寄存器。
(5)栈操作是字操作,不能进行字节操作。
(6)POP指令的操作数不能是CS。
(7)段寄存器仅能作MOV指令和栈操作指令的操作数,不能作累加器。
(8)段寄存器间不能传送。
(10)类型不明确,不知是字加1还是字节增1。
(3)和(9)两条指令是正确的。
10.试给出X86CPU执行完下列指令后OF,SF,ZF,CF4个可测试标志位的状态:
(1)MOVAX,2345H
(2)MOVBX,5439H
ADDAX,3219HADDBX,456AH
(3)MOVCX,3579H(4)MOVDX,9D82H
SUBCX,4EC1HSUBDX,4B5FH
(1)S=0,Z=0,C=0,O=0
(2)S=1,Z=0,C=0,O=1
(3)S=1,Z=0,C=1,O=0
(4)S=0,Z=0,C=0,O=1
11.一数据段定义为:
DATASEGMENT
S1DB0,1,2,3,4,5
S2DB12345
COUNTEQU$S1
NBDB3DUP
(2)
NWDW120,256
PDW1
DATAENDS
(1)画出该数据段中数据的存储形式。
(2)在下表中填写各变量的偏移地址和各变量的值。
变量名
偏移地址
变量的值
S1
S2
NB
NW
P
(3)填写表中程序段各指令执行后,目的寄存器的值,并指出源操作数所使用的寻址方式:
程序段
目的寄存器的值
源操作数的寻址方式
MOVBX,OFFSETS1+3
MOVSI,OFFSETS2
MOVCL,COUNT
MOVBP,NW+2
MOVDX,WORDPTRNB
MOVAL,[SI+3]
MOVAH,[SI+BX+1]
MOVCH,BYTEPTRNW+3
(1)数据的存储形式如图2-2所示。
图2-2习题2.10的内存映象图
(2)各变量的偏移地址和各变量的值如下表:
偏移地址(H)
变量的值(H)
0000
00
0006
31
000B
02
000E
0078
0012
FFFF
(3)目的寄存器的值,源操作数所使用的寻址方式如下表:
0003
立即寻址
0B
FF00
直接寻址
0202
34
变址寻址
35
基址变址寻址
FF
12.编写程序实现下列BCD数运算(式中字节变量B,字变量W为压缩BCD数):
(1)B1+B2(B3B4)B5
stacksegmentstackstack
dw32dup(0)
stackends
datasegment
B1DB19H
B2DB20H
B3DB29H
B4DB25H
B5DB0
dataends
codesegment
beginprocfar
assumess:
stack,cs:
code,ds:
data
pushds
subax,ax
pushax
movax,data
movds,ax
MOVAL,B1
ADDAL,B2
DAA
SUBAL,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 复习