微机原理王忠民版课后答案.docx
- 文档编号:11820716
- 上传时间:2023-04-03
- 格式:DOCX
- 页数:18
- 大小:31.36KB
微机原理王忠民版课后答案.docx
《微机原理王忠民版课后答案.docx》由会员分享,可在线阅读,更多相关《微机原理王忠民版课后答案.docx(18页珍藏版)》请在冰豆网上搜索。
微机原理王忠民版课后答案微机原理王忠民版课后答案部分习题答案第二章计算机中的数值和编码1、将十进制数转换为二进制和十六进制
(1)129.7510000001.11B81.CH
(2)218.812511011010.1101BDA.DH(3)15.6251111.101BF.AH(4)47.15625101111.00101B2F.28H2、将下列二进制数转换为十进制和十六进制
(1)111010B=58=3AH
(2)10111100.111B=188.875=BC.EH(3)0.11011B=0.84375=0.D8H(4)11110.01B=30.25=1E.4H3、完成下列二进制数的加减法运算
(1)1001.11100.011110.00
(2)10.100101100001.001101110101.0110(3)00111101(4)01011101.0110101101.1011101111.10114、完成下列十六进制数的加减法运算
(1)745CH56DFHD14BH
(2)ABF.8HEF6.AH9C28.EH(3)12AB.F73CD.051678.FCH(4)6F01HEFD8H7F29H5、计算下列表达式的值
(1)128.8125.1011B1F.2H1.1010B
(2)287.68.11H8E.EH103.CEH(3)18.91010.1101B12.6H1011.100136.5256、选取字长n为8位和16位两种情况,求下列十进制数的补码。
(1)X33的补码:
11011111,1
(2)Y33的补码:
00100001,0000000000100001(3)Z128的补码:
10000000,1111111110000000(4)N127的补码:
01111111,0000000001111111(5)A65的补码:
10111111,1111111110111111(6)B65的补码:
01000001,0000000001000001(7)C96的补码:
10100000,1111111110100000(8)D96的补码:
01100000,00000000011000007、写出下列用补码表示的二进制数的真值
(1)X补1000000000000000HX1000000000000000H32768
(2)Y补0000000100000001HY0000000100000001H257(3)Z补1111111010100101HZ0000000101011011H347(4)A补0000001001010111HA0000001001010111H5998、设机器字长为8位,最高位为符号位,试对下列格式进行二进制补码运算,并判断结果是否溢出。
(1)43843补00101011B,8补00001000B43补8补00101011B00001000B00110011B33H00101011B00001000B00110011BCS0,CD0,OFCSCD000无溢出
(1)43833H(无溢出)
(2)527D3H(无溢出)(3)609096H(溢出)(4)72840H(无溢出)(5)33(37)0BAH(无溢出)(6)90(70)60H(溢出)(7)9(7)FEH(无溢出)(8)6090E2H(无溢出)9、设有变量xB,yB,z01110010B,v01011010B,试计算x+y?
,x+z?
,y+z?
,z+v?
,请问:
若为无符号数,计算结果是否正确?
若为带符号补码数,计算结果是否溢出?
x+y=BBB1B8H11101111B11001001B10111000B若为无符号数若为带符号补码数CF=1不正确CF=1,DF1OF0不溢出x+y=0B8Hx+z=61Hy+z=3BHz+v=0CCH不正确不正确不正确正确不溢出不溢出不溢出溢出第三章80X86微处理器1简述80868088CPU中BIU和EU的作用,并说明其并行工作过程。
答:
(1)BIU的作用:
计算20位的物理地址,并负责完成CPU与存储器或I/O端口之间的数据传送。
(2)EU的作用:
执行指令,并为BIU提供所需的有效地址。
(3)并行工作过程:
当EU从指令队列中取出指令执行时,BIU将从内存中取出指令补充到指令队列中。
这样就实现了取指和执行指令的并行工作。
280868088CPU内部有哪些寄存器?
其主要作用是什么?
答:
80868088CPU内部共有14个寄存器,可分为4类:
数据寄存器4个,地址寄存器4个,段寄存器4个和控制寄存器2个。
其主要作用是:
(1)数据寄存器:
一般用来存放数据,但它们各自都有自己的特定用途。
AX(Accumulator)称为累加器。
用该寄存器存放运算结果可使指令简化,提高指令的执行速度。
此外,所有的IO指令都使用该寄存器与外设端口交换信息。
BX(Base)称为基址寄存器。
用来存放操作数在内存中数据段内的偏移地址,CX(Counter)称为计数器。
在设计循环程序时使用该寄存器存放循环次数,可使程序指令简化,有利于提高程序的运行速度。
DX(Data)称为数据寄存器。
在寄存器间接寻址的IO指令中存放IO端口地址;在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数。
(2)地址寄存器:
一般用来存放段内的偏移地址。
SP(StackPointer)称为堆栈指针寄存器。
在使用堆栈操作指令(PUSH或POP)对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶。
BP(BasePointer)称为基址寄存器。
作为通用寄存器,它可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的偏移地址。
SI(SourceIndex)称为源变址寄存器。
SI存放源串在数据段内的偏移地址。
DI(DestinationIndex)称为目的变址寄存器。
DI存放目的串在附加数据段内的偏移地址。
(3)段寄存器:
用于存放段地址CS(CodeSegment)称为代码段寄存器,用来存储程序当前使用的代码段的段地址。
CS的内容左移4位再加上指令指针寄存器IP的内容就是下一条要读取的指令在存储器中的物理地址。
DS(DataSegment)称为数据段寄存器,用来存放程序当前使用的数据段的段地址。
DS的内容左移4位再加上按指令中存储器寻址方式给出的偏移地址即得到对数据段指定单元进行读写的物理地址。
SS(StackSegment)称为堆栈段寄存器,用来存放程序当前所使用的堆栈段的段地址。
堆栈是存储器中开辟的按“先进后出”原则组织的一个特殊存储区,主要用于调用子程序或执行中断服务程序时保护断点和现场。
ES(ExtraSegment)称为附加数据段寄存器,用来存放程序当前使用的附加数据段的段地址。
附加数据段用来存放字符串操作时的目的字符串。
(4)控制寄存器IP(InstmcdonPointer)称为指令指针寄存器,用来存放下一条要读取的指令在代码段内的偏移地址。
用户程序不能直接访问IP。
FLAGS称为标志寄存器,它是一个16位的寄存器,但只用了其中9位,这9位包括(个状态标志位和3个控制标志位。
它用来反映算术运算和逻辑运算结果的一些特征,或用来控制CPU的某种操作。
380868088CPU中有哪些寄存器可用来指示操作数在存储器中某段内的偏移地址?
答:
可用来指示段内偏移地址的寄存器共有6个:
IP、SP、BP、BX、SI、DI480868088CPU中标志寄存器FLAGS有哪些标志位?
它们的含义和作用如何?
答:
标志寄存器中的标志共有9个,分为两类:
状态标志6个和控制标志3个。
其作用是:
(1)状态标志:
用来反映算术和逻辑运算结果的一些特征。
CF(CarryFlag)进位标志位。
当进行加减运算时,若最高位发生进位或借位,则CF为1,否则为0。
该标志位通常用于判断无符号数运算结果是否超出了计算机所能表示的无符号数的范围。
PF(ParityFlag)奇偶标志位。
当指令执行结果的低8位中含有偶数个1时,PF为1,否则为0。
AF(AuxiliaryFlag)辅助进位标志位。
当执行一条加法或减法运算指令时,若结果的低字节的低4位向高4位有进位或借位,则AF为1,否则为0。
ZF(ZeroFlag)零标志位。
若当前的运算结果为0,则ZF为1,否则为00SF(SignFlag)符号标志位。
当运算结果的最高位为1时,SF=1,否则为00OF(OverflowFlag)溢出标志位。
当运算结果超出了带符号数所能表示的数值范围,即溢出时,OF=1,否则为0。
该标志位通常用来判断带符号数运算结果是否溢出o
(2)控制标志位:
用来控制CPU的操作,由程序设置或清除。
它们是:
TF(TrapFlag)跟踪(陷阱)标志位。
它是为测试程序的方便而设置的。
若将TF置1,80868088CPU处于单步工作方式,否则,将正常执行程序。
IP(InterruptFlag)中断允许标志位。
它是用来控制可屏蔽中断的控制标志位。
若用STI指令将IF置1,表示允许CPU接受外部从INTR引脚上发来的可屏蔽中断请求信号;若用CLI指令将IP清0,则禁止CPU接受可屏蔽中断请求信号。
IF的状态对非屏蔽中断及内部中断没有影响。
DF(DirectionFlag)方向标志位。
若用STD将DF置1,串操作按减地址方式进行,也就是说,从高地址开始,每操作一次地址自动递减;若用CLD将DF清0,则串操作按增地址方式进行,即每操作一次地址自动递增。
580868088CPU的地址总线有多少位?
其寻址范围是多少?
答:
8086/8088地址总线有20根,寻址范围1MB6什么叫指令队列?
80868088CPU中指令队列有什么作用?
其长度分别是多少?
答:
(1)指令队列:
采用“先进先出”原则,按顺序存放预执行指令的缓冲器称为指令队列。
(2)指令队列的作用:
存放EU将要执行的指令,使CPU的取指和执行指令能并行工作。
(3)指令队列的长度:
8086为6个字节,8088为4个字节。
7Intel8086与8088有何区别?
答:
8086与8088的区别有三处:
(1)外部数据总线位数不同(即地址数据分时复用引脚条数不同);8086为16位:
AD15AD0。
8088为8位:
AD7AD0。
(2)内部指令队列缓冲器长度不同;8086有6个字节。
当指令队列出现2个空字节时,BIU将取指补充。
8086有4个字节。
当指令队列出现1个空字节时,BIU将取指补充。
(3)外部某些控制总线定义不同。
8086的28号引脚定义为MIO(S2),8088定义为IOM(S2)8086的34号引脚定义为BHES7,8088定义为SS0(HIGH)8简述8086CPU使用地址锁存信号ALE将地址A15A0与数据D15D0分开的工作原理。
答:
在任何一个总线周期的T1状态,ALE均为高电平,以表示当前地址数据复用线上的输出的是地址信息,在ALE由高变低的下降沿时把地址装入地址锁存器,而在T2、T3和T4状态,ALE均为低电平,以表示当前地址数据复用线上的输出的是数据信息,此时通过数据收发器进行传送。
9什么是逻辑地址?
什么是物理地址?
若已知逻辑地址为BA00:
A800,试求物理地址。
答:
逻辑地址:
由段地址和偏移地址表示的存储单元地址称为逻辑地址。
物理地址:
CPU对存储器进行访问时实际所使用的20位地址称为物理地址。
若逻辑地址为BA00H:
A800H则物理地址BA00H10HA800HC4800H10简述堆栈指针寄存器SP的功能及堆栈的操作过程。
答:
(1)SP的功能:
指示进栈和出栈操作时的偏移地址。
(2)堆栈的操作过程:
进栈时,先将SP2,再将数据压入堆栈(即先移后入);出栈时,先将数据弹出堆栈,再将SP+2(即先出后移)。
第四章80X86指令系统1、指出源操作数的寻址方式MOVBX,2000H;立即数寻址MOVBX,2000H;直接寻址MOVBX,SI;寄存器间接寻址MOVBX,SI2000H;寄存器相对寻址MOVBXSI,AL;寄存器寻址ADDAX,BXDI80;基址变址相对寻址MULBL;寄存器寻址JMPBX;段内间接寻址INAL,DX;端口间接寻址INCWORDPTRBP+10H;寄存器相对寻址MOVCL,LENGTHVAR;立即数寻址MOVBL,OFFSETVAR1;立即数寻址2、指出下列指令是否正确
(1)MOVDS,0100H;错误。
源操作数是立即数时,目的操作数不能时段寄存器
(2)MOVBP,AL;错误。
操作数类型不一致(3)XCHGAH,AL;正确。
(4)OUT310H,AL;错误。
端口直接寻址的范围应在0FFH之间(5)MOVBX,BX;正确。
(6)MOVES:
BXDI,AX;正确。
(7)MOVAX,SIDI;错误。
存储器寻址中有效地址不能由两个变址寄存器组成(8)MOVSS:
BX+SI+100H,BX;正确。
(9)ANDAX,BL;错误。
操作数类型不一致(10)MOVDX,DS:
BP;正确。
(11)ADDSI,20H;错误。
用PTR说明类型(12)MOV30H,AL;错误。
目的操作数不能为立即数(13)PUSH2000H;错误。
堆栈指令的操作数不能是立即数(14)MOVSI,2000H;错误。
两个操作数不能同时为存储器操作数(15)MOVSI,AL;错误。
操作数类型不一致(16)ADD2000H,20H;错误。
用PTR说明类型(17)MOVCS,AX;错误。
目的操作数不能为代码段寄存器(18)INCDI;错误。
需用PTR说明类型(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)MOV5BX+DI,AL;(DS)10H(BX)(DI)5(4)ADDAL,ES:
BX;(ES)10H(BX)(5)SUBAX,1000H;(DS)10H1000H(6)ADCAX,BX+DI+2000H;(DS)10H(BX)(DI)2000H(7)MOVCX,BP+SI;(SS)10H(BP)(SI)(8)INCBYTEPTRDI;(DS)10H(DI)4、若(DS)3000H,(BX)2000H,(SI)0100H,(ES)4000H,计算下列存储器操作数的物理地址。
(1)(DS)10H(BX)3000H10H2000H32000H
(2)(DS)10H(BX)(SI)1000H3000H10H2000H0100H1000H33100H(3)(DS)10H(BX)(SI)3000H10H2000H0100H32100H(4)(ES)10H(BX)4000H10H2000H42000H5、若(CS)E000H,说明代码段可寻址物理存储空间的范围。
最小物理地址为:
(CS)10H0000HE0000H最大物理地址为:
(CS)10HFFFFHEFFFFH代码段可寻址物理存储空间的范围是:
E0000HEFFFFH6、设(SP)2000H,(AX)3000H,(BX)5000H,执行下列程序段后,(SP)?
,(AX)?
,(BX)?
PUSHAXPUSHBXPOPAX(SP)1FFEH,(AX)5000H,(BX)5000H7、试比较SUBAL,09H与CMPAL,09H这两条指令的异同。
若(AL)=08H,分别执行上述两条指令后,(AL)=?
,CF=?
,OF=0,ZF=?
(1)相同点:
两条指令都能完成(AL)09H的功能,并且都影响六个状态标志位;不同点:
SUB指令将运算结果回送到AL寄存器中,而CMP指令不回送。
(2)SUBAL,09H;(AL)=FFH,CF=1,OF=0,ZF=0CMPAL,09H;(AL)=08H,CF=1,OF=0,ZF=08、分别执行下列指令,试求AL的内容及各状态标志位的状态。
(1)MOVAL,19H;ADDAL,61H;(AL)=7AHOF=0SF=0ZF=0AF=0PF=0CF=0
(2)MOVAL,19H;SUBAL,61H;(AL)=B8HOF=0SF=1ZF=0AF=0PF=1CF=1(3)MOVAL,5DH;ADDAL,0C6H;(AL)=23HOF=0SF=0ZF=0AF=1PF=0CF=1(4)MOVAL,7EH;SUBAL,95H;(AL)=E9HOF=1SF=1ZF=0AF=0PF=0CF=19、用最少的指令,实现下述要求的功能。
(1)AH的高4位清零。
ANDAH,0FH
(2)AL的高4位去反。
XORAH,0F0H(3)AL的高4位移到低4位,高4位清0。
MOVCL,4SHRAL,CL(4)AL的低4位移到高4位,低4位清0。
MOVCL,4SHLAL,CL10、设(BX)6D16H,(AX)1100H,写出下列三条指令执行后,AX和BX寄存器中的内容。
MOVCL,06HROLAX,CLSHRBX,CL(AX)=4004H(BX)=01B4H11、设初值(AX)0119H,执行下列程序段后,(AX)?
MOVCH,AHADDAL,AHDAAXCHGAL,CHADCAL,34HDAAMOVAH,ALMOVAL,CH(AX)=3520H12、指出下列程序段的功能。
(1)MOVCX,10LEASI,FirstLEADI,SecondREPMOVSB将First串中前10个字符传送至Second中
(2)CLDLEADI,0404HMOVCX,0080HXORAX,AXREPSTOSW将起始地址为0404H开始的80H个单元置成013、设(BX)6F30H,(BP)0200H,(SI)0046H,(SS)2F00H,(2F246H)4154H,试求执行XCHGBX,BPSI后,(BX)?
,(2F246H)?
(BX)4154H(2F246H)6F30H14、设(BX)0400H,(DI)003CH,执行LEABX,BXDI0F62H后,(BX)?
(BX)139EH15、设(DS)C000H,(C0010H)0180H,(C0012H)2000H,执行LDSSI,10H后,(SI)?
(DS)?
(SI)0180H,(DS)2000H16、已知(DS)091DH,(SS)1E4AH,(AX)1234H,(BX)0024H,(CX)5678H,(BP)0024H,(SI)0012H,(DI)0032H,(09226H)00F6H,(09228H)1E40H,试求单独执行下列指令后的结果。
(1)MOVCL,20HBXSI;(CL)0F6H
(2)MOVBPDI,CX;(1E4F6H)5678H(3)LEABX,20HBXSI;(BX)=0056HMOVAX,2BX;(AX)=1E40H(4)LDSSI,BPDI;MOVSI,BX;(SI)=0024H(5)XCHGCX,32HBX;XCHG20HBXSI,AX;(AX)5678H,(09226H)1234H17、若CPU中各寄存器及RAM参数如图所示,试求独立执行如下指令后,CPU及RAM相应寄存器及存储单元的内容是多少?
CPURAM执行前执行后CS3000HFFFFHCX20506H06H不变DS2050H0004HBX20507H00H不变SS50A0H1000HSP20508H87H不变ES0FFFH17C6HDX20509H15H不变IP0000H8094HAX2050AH37H94HDI000AH1403HBP2050BHC5H不变SI0008H1CF2050CH2FH不变
(1)MOVDX,BX+2;(DX)=0006H,(BX)=0004H
(2)PUSHCX;(SP)=0FFEH(3)MOVCX,BX;(CX)=0004H,(BX)=0004H(4)TESTAX,01;(AX)=8094H,(CF)=0(5)MOVAL,SI;(AL)=87H(6)ADCAL,DI;(AL)=0CCH,(CF)=0DAA;(AL)=32H(7)INCSI;(SI)=0009H(8)DECDI;(DI)=0009H(9)MOVDI,AL;(DI)=94H(10)XCHGAX,DX;(AX)=17C6H,(DX)=8094H(11)XORAH,BL;(AH)=84H,(BL)=04H(12)JMPDX;(IP)=17C6H18、(DS)2000H,(BX)1256H,(SI)528FH,偏移量20A1H,(232F7H)3280H,(264E5H)2450H,试求执行下述指令后的结果。
(1)JMPBX;(IP)1256H
(2)JMPTABLEBX;(IP)3280H(3)JMPBXSI;(IP)2450H19、设(IP)3D8FH,(CS)4050H,(SP)0F17H,当执行CALL2000H:
0094H后,试指出(IP)、(CS)、(SP)、(SP)、(SP)1)、(SP)2)和(SP)3)的内容。
CALL指令是5字节指令,下一条指令地址为4050H:
3D94H所以执行后(IP)0094H,(CS)2000H、(SP)0F13H(SP)94H,(SP)1)00H,(SP)2)00H,(SP)3)20H第五章汇编语言程序设计2.PLENTH的值为0022,它表示当前已分配单元空间;3.L的值为6;5.(AX)=000AH;(BL)=0AH;(CL)=01H;10.MOVAX,4A82HMOVDL,AHANDDL,0F0HMOVCL,4SHRDL,CLPUSHAXANDAH,0FHMOVBH,AHANDAL,0F0HMOVBL,ALMOVCL,4SHRBL,CLMOVCL,BHPOPAXANDAL,0FH11.datasegmentstring1dbIamastudent.string2dbIamastudent.yesdbmatch,0dh,0ah,$nodbnomatch,0dh,0ah,$dataendscodesegmentassumecs:
code,ds:
data,es:
datastart:
pushdssubax,axpushaxmovax,datamovd
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 王忠民版 课后 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)