最新微机计算机原理课后习题答案王忠民版资料Word格式.docx
- 文档编号:5737610
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:13
- 大小:22.27KB
最新微机计算机原理课后习题答案王忠民版资料Word格式.docx
《最新微机计算机原理课后习题答案王忠民版资料Word格式.docx》由会员分享,可在线阅读,更多相关《最新微机计算机原理课后习题答案王忠民版资料Word格式.docx(13页珍藏版)》请在冰点文库上搜索。
无符号数:
27+23=136
原码:
-0001000=-8
反码:
-1110111=-119
补码:
-1111000=-120
8421BCD码:
88
2)00101001B
25+23+20=41
41
29
3)11001001B
27+26+23+20=201
-1001001=-73
-0110110=-54
-0110111=-55
非8421BCD码
(4)10010011B
27+24+21+20=147
-0010011=-19
-1101100=-108
-1101101=-109
93
微机计算机原理课后习题答案《二》
2009-08-1614:
44
第三章80X86微处理器
1.简述8086/8088CPU中BIU和EU的作用,并说明其并行工作过程。
答:
(1)BIU的作用:
计算20位的物理地址,并负责完成CPU与存储器或I/O端口之间的数据传送。
(2)EU的作用:
执行指令,并为BIU提供所需的有效地址。
(3)并行工作过程:
当EU从指令队列中取出指令执行时,BIU将从内存中取出指令补充到指令队列中。
这样就实现了取指和执行指令的并行工作。
2.8086/8088CPU内部有哪些寄存器?
其主要作用是什么?
答:
8086/8088CPU内部共有14个寄存器,可分为4类:
数据寄存器4个,地址寄存器4个,段寄存器4个和控制寄存器2个。
其主要作用是:
(1)数据寄存器:
一般用来存放数据,但它们各自都有自己的特定用途。
AX,BX,CX,DX
(2)地址寄存器:
一般用来存放段内的偏移地址。
SP,BP,SI,DI
(3)段寄存器:
用于存放段地址.CS,DS,ES,SS
(4)控制寄存器,FLAGS,IP
具体寄存器略。
3.8086/8088CPU中有哪些寄存器可用来指示操作数在存储器中某段内的偏移地址?
可用来指示段内偏移地址的寄存器共有6个:
IP、SP、BP、BX、SI、DI.
4.8086/8088CPU中标志寄存器FLAGS有哪些标志位?
它们的含义和作用如何?
标志寄存器中的标志共有9个,分为两类:
状态标志6个和控制标志3个。
其作用是:
(1)状态标志:
用来反映算术和逻辑运算结果的一些特征。
CF,AF,PF,ZF,SF,ZF
(2)控制标志位:
用来控制CPU的操作,由程序设置或清除。
DF,IF,TF.
具体寄存器位介绍略。
5.8086/8088CPU的地址总线有多少位?
其寻址范围是多少?
8086/8088地址总线有20根,可寻址1MB空间,范围:
00000H~0FFFFFH.
6.什么叫指令队列?
8086/8088CPU中指令队列有什么作用?
其长度分别是多少?
(1)指令队列:
采用“先进先出”原则,按顺序存放预执行指令的缓冲器称为指令队列。
(2)指令队列的作用:
存放EU将要执行的指令,使CPU的取指和执行指令能并行工作。
(3)指令队列的长度:
8086为6个字节,8088为4个字节。
7.Intel8086与8088有何区别?
8086与8088的区别有三处:
(1)外部数据总线位数不同(即地址/数据分时复用引脚条数不同);
8086为16位:
AD15~AD0。
8088为8位:
AD7~AD0。
(2)内部指令队列缓冲器长度不同;
8086有6个字节。
当指令队列出现2个空字节时,BIU将取指补充。
8088有4个字节。
当指令队列出现1个空字节时,BIU将取指补充。
(3)外部某些控制总线定义不同。
①8086的28号引脚定义为M/IO(S2),8088定义为IO/M(S2)
②8086的34号引脚定义为BHE/S7,8088定义为SS0/(HIGH)
微机计算机原理课后习题答案《四》
46
第4章作业
1、指出源操作数的寻址方式
⑴MOVBX,2000H;
立即数寻址
⑵MOVBX,[2000H];
直接寻址
⑶MOVBX,[SI];
寄存器间接寻址
⑷MOVBX,[SI+2000H];
寄存器相对寻址
⑸MOV[BX+SI],AL;
寄存器寻址
⑹ADDAX,[BX+DI+80];
基址变址相对寻址
⑺MULBL;
⑻JMPBX;
段内间接寻址
⑻SUBAX,BX;
寄存器寻址
⑼INAL,DX;
端口间接寻址
⑽INCWORDPTR[BP+10H];
⑾MOVCL,LENGTHVAR;
⑿MOVBL,OFFSETVAR1;
立即数寻址
2、指出下列指令是否正确
(1)MOVDS,0100H;
错误。
源操作数是立即数时,目的操作数不能是段寄存器
(2)MOVBP,AL;
操作数类型不一致
(3)XCHGAH,AL;
正确。
(4)OUT310H,AL;
端口直接寻址的范围应在0~FFH之间
(5)MOVBX,[BX];
(6)MOVES:
[BX+DI],AX;
(7)MOVAX,[SI+DI];
存储器寻址中有效地址不能由两个变址寄存器组成
(8)MOVSS:
[BX+SI+100H],BX;
(9)ANDAX,BL;
(10)MOVDX,DS:
[BP];
正确
(11)ADD[SI],20H;
错误,目的操作数类型不明确。
(12)MOV30H,AL;
错误,目的操作数不能为立即数
(13)PUSH2000H;
堆栈指令的操作数不能是立即数
(14)MOV[SI],[2000H];
两个操作数不能同时为存储器操作数
(15)MOVSI,AL;
(16)ADD[2000H],20H;
错误,目的操作数类型不明确
(17)MOVCS,AX;
错误,目的操作数不能为代码段寄存器
(18)INC[DI];
错误,目的操作数类型不明确
(19)OUTBX,AL;
端口间接寻址的寄存器只能是DX寄存器
(20)SHLBX,3;
移位次数大于1时应该用CL寄存器
(21)XCHGCX,DS;
交换指令中不能出现段寄存器
(22)POPAL;
堆栈指令的操作数只能是字操作数(即16位操作数)
3.写出下列指令中存储器操作数物理地址的计算表达式:
1)MOVAL,[DI](DS)×
10H+(DI)
(2)MOVAX,[BX+SI](DS)×
10H+(BX)+(SI)
(3)MOV5[BX+DI],AL(DS)×
10H+(BX)+(DI)+5
(4)ADDAL,ES:
[BX](ES)×
10H+(BX)
5)SUBAX,[1000H](DS)×
10H+1000H
(6)ADCAX,[BX+DI+2000H(DS)×
10H+(BX)+(DI)+2000H
(7)MOVCX,[BP+SI](SS)×
10H+(BP)+(SI)
(8)INCBYTEPTR[DI](DS)×
4.若(DS)=3000H,(BX)=2000H,(SI)=0100H,
(ES)=4000H,计算下列各指令中存储器操作数的物理地址。
1)MOV[BX],AL
(DS)×
10H+(BX)=32000H
(2)ADDAL,[BX+SI+1000H]
10H+(BX)+(SI)+1000H=33100H
(3)MOVAL,[BX+SI]
10H+(BX)+(SI)=32100H
(4)SUBAL,ES:
[BX]
(ES)×
10H+(BX)=42000H
5.若(CS)=E000H,说明代码段可寻址物理存储空间的范围。
代码段物理地址为:
(CS):
(IP)
所以可寻址物理地址范围为:
(CS)×
10H+(IP),其中IP的为16位寄存器,取值范围为:
0000H~0FFFFH
所以有寻址范围为:
0E0000H~0EFFFFH
6.设(SP)=2000H,(AX)=3000H,(BX)=5000H,问执行下面程序段后:
PUSHAX
PUSHBX
POPAX
(SP)=1FFEH,(AX)=5000H,(BX)=5000H
7、试比较SUBAL,09H与CMPAL,09H这两条指令的异同。
若(AL)=08H,分别执行上述两条指令后,(AL)=?
,CF=?
,OF=0,ZF=?
(1)相同点:
两条指令都能完成(AL)-09H的功能,并且都影响六个状态标志位;
不同点:
SUB指令将运算结果回送到AL寄存器中,而CMP指令不回送。
(2)①(AL)=FFH,②(AL)=08H,CF=1,OF=0,ZF=0
8、分别执行下列指令,试求AL的内容及各状态标志位的状态。
(1)MOVAL,19H;
ADDAL,61H;
(AL)=7AH
OF=0SF=0ZF=0AF=0PF=0CF=0
(2)MOVAL,19H;
SUBAL,61;
(AL)=0DCH
OF=0SF=1ZF=0AF=1PF=0CF=1
MOVAL,19H;
SUBAL,61H;
(AL)=0B8H
OF=0SF=1ZF=0AF=0PF=1CF=1
(3)MOVAL,5DH;
ADDAL,0C6H;
(AL)=23H
OF=0SF=0ZF=0AF=1PF=0CF=1
(4)MOVAL,7EH;
SUBAL,95H;
(AL)=0E9H
OF=1SF=1ZF=0AF=0PF=0CF=1
9.选用最少的指令,实现下述要求的功能。
1)AH的高4位清0
ANDAH,0FH
(2)AL的高4位取反
XORAL,0F0H
(3)AL的高4位移到低4位,高4位清0
MOVCL,4
SHRAL,CL
(4)AH的低4位移到高4位,低4位清0
SHLAL,CL
11.设初值(AX)=0119H,执行下列程序段后(AX)=?
MOVCH,AH
ADDAL,AH(AX)=011AH
DAA(AX)=0120H压缩型BCD码调整
XCHGAL,CH(AL)=01H
ADCAL,34H(AX)=0135H
DAA(AX)=0135H
MOVAH,AL(AH)=35H
MOVAL,CH(AL)=20H
结果:
(AX)=3520H
12.指出下列程序段的功能
1)
MOVCX,10
CLD
LEASI,First
LEADI,Second
REPMOVSB
功能:
将First开始的10个字节数据复制到Second开始的内存中
2)
LEADI,[0404H]
MOVCX,0080H
XORAX,AX
REPSTOSW
将0404H开始的80H个字(100H个字节)的内存填充0
16.已知(DS)=091DH,(SS)=1E4AH,(AX)=1234H,
(BX)=0024H,(CX)=5678H,(BP)=0024H,
(SI)=0012H,(DI)=0032H,(09226H)=00F6H,(09228H)=1E40H,(1EAF6H)=091DH,试求单独执行下列指令后的结果。
1)MOVCL,20H[BX][SI];
(CL)=0F6H
(2)MOV[BP][DI],CX;
(1E4F6H)=56F6H
(3)LEABX,20H[BX][SI];
(BX)=0056H
MOVAX,2[BX];
(AX)=1E40H
(4)LDSSI,[BX][DI];
MOV[SI],BX;
((SI))=0024H
(5)XCHGCX,32H[BX]
XCHG20H[BX][SI],AX;
(AX)=5678H;
(09226H)=1234H
20.设(IP)=3D8FH,(CS)=4050H,(SP)=0F17CH,
当执行:
CALL2000:
0094H
后,试指出(IP)、(CS)、(SP)、((SP))、
((SP)+1)、((SP)+2)和((SP)+3)的内容。
(IP)=0094H
(CS)=2000H
(SP)=0F178H压4个字节进栈,-4H
((SP))=8FH
((SP)+1)=3DH
((SP)+2)=50H
((SP)+3)=40H
The鎺фhoop鍌ㄥ瓨鍖?
微机计算机原理课后习题答案《五》
The鐩putsthe偦鍏ChongChen2009-08-1614:
55
第五章
The鏈夊warship鑰楁崯2.PLENTH=16H,以上3个变量所占的存储器的字节数。
鍫嗗瀿3.L=6
4.假设程序中的数据定义如下:
LNAMEDB1,2,3,‘123’
ADDRESSDB30DUP(?
)
CTTYDB15DUP(?
CODE_LISTDB1,7,8,3,2
The鐢plank瓧鍨嬫墭鐩?
1)用一条MOV指令将LNAME的偏移地址放入BX
(2)用一条指令将CODE_LIST的头两个字节的内容放入SI
(3)写一条伪指令定义符使CODE_LENGTH的值等于CODE_LIST域的实际长度。
答案
(1)MOVBX,OFFSETLNAME
(2)MOVSI,WORDPTRCODE_LIST
(3)CODE_LENGTHEQU$-CODE_LIST
5.对于下面的数据定义,试说明三条MOV指令的执行结果。
TABLEADW10DUP(?
TABLEBDB10DUP(?
TABLECDB‘123’
MOVAX,LENGTHTABLEA;
(AX)=10
MOVBL,LENGTHTABLEB;
(BL)=10
MOVCL,LENGTHTABLEC;
(CL)=1
6.(AX)=1,(AX)=2,(CX)=20,(DX)=40,(CX)=1
The闆嗚Gengplait繍Cha?
11.试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同,则显示“MATCH”,若不相同则显示“NOMATCH”。
DATASEGMENT
TheMa愬姏鍒嗘瀽STRING1DB'
ABCDEFGHIJKLMNO'
STRING2DB'
ABCDEFDDDDDD'
MSG1DB'
MATCH'
'
$'
MSG2DB'
NOMATCH'
TheChanч噺鍦companion潰鍌ㄥ瓨DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEASI,STRING1
LEADI,STRING2
MOVCX,15
CLD
REPECMPSB
JZMATCH;
相等
LEADX,MSG2
JMPDISPLAY
MATCH:
LEADX,MSG1
DISPLAY:
MOVAH,09H
INT21H
MOVAX,4C00H
CODEENDS
ENDSTART
16.数据段中已定义了一个有n个字数据的数组M,试编写程序求出M中绝对值最大的数,把它放在数据段的M+2n单元中,并将该数的偏移地址存放在M+2(n+1)单元中。
nEQU6
MDW-66,33,55,-89,28,311
DW?
DB?
DATAENDS
LEABX,M
MOVCX,n
MOVSI,0
XORAX,AX
MOV[BX][2*n],AX
NEXT:
MOVAX,[BX][SI]
ORAX,AX
JNSL1
NEGAX
L1:
CMP[BX][2*n],AX
JGL2
MOV[BX][2*(n+1)],SI
L2:
INCSI
DECCX
JNZNEXT
18.已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。
试编制一程序,把既在A中又在B中出现的整数存放于数组C中。
ADW11,-22,33,88,-55,-67,306,39,55,-90
DW28,311,65,887,911
BDW18,25,31,88,-55,-65,188,30,-15,77
DW252,54,102,201,87,-94,-22,-33,911,306
CDW15DUP(0)
鎼繍DATAENDS
LEASI,A
LEABX,C
LEADI,B
CLD
MOVCX,20
MOVAX,[SI]
REPNESCASW
JNZNOTFOND
MOV[BX],AX
INCBX
NOTFOND:
CMPSI,30
JLNEXT
23.编写程序,将字节变量BVAR中的无符号二进制数(0~FFH)转换为BCD数,在屏幕上显示结果。
BVARDB165
BCDDB3DUP(0);
转换后以3位ASCII码保存
DB'
DATAENDS
MOVAL,BVAR
LEABX,BCD
MOVDI,2
MOVCL,10
MOVAH,0
DIVCL
ORAH,30H;
余数转换为ASCII码
MOV[BX+DI],AH
DECDI
CMPAL,0
JGNEXT
LEADX,BCD
INT21H;
显示结果
Doesthe鐗╄祫QianspoilChen?
第六章
2.64片10片4片,128片11片4片,16片11片4片,2片14片2片
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 微机 计算机 原理 课后 习题 答案 王忠民版 资料