微机原理与接口技术习题答案1-2微型计算机系统的硬件由哪几部分构成?简述他们的主要功能。【答】:P41-4【答】:(1)01011100B=92D(2)0.10110011B=10110011B/256=179/256=0.69921875(3)135D=10000111B(4)99.4375D=1100011.0111B(5)10110010B=262O=B2H(6)308.DH=1100001000.1101B=1410.64O1-7【答】:(1)X=+1101001原码:01101001反码:01101001补码:01101001(2)X=+1111000原码:01111000反码:11111000补码:11111000(3)X=-1000110原码:11000110反码:10111001补码:10111010(4)X=-1101011原码:11101011反码:10010100补码:100101011-8【答】:[X]补=00010010[Y]补=11110111[-Y]补=00001001X=18Y=-9[X+Y]补=[X]补+[Y]补=00001001=9的补码[X-Y]补=[X]补+[-Y]补=00011011=27的补码1-10【答】:254组合型BCD:0010010101002B非组合型BCD:0000001000000101000001003B2-7什么是逻辑地址?什么是物理地址?在实地址方式下,如何求存储器的物理地址?设一个16字的数据区,它的起始地址为70A0H:DDF6(段基址:偏移地址).写出这个数据区的首字单元和末字单元的物理地址.解:1).实模式下,逻辑地址由段基址和偏移地址组成.物理地址是真正的存储单元的地址.2).物理地址=段基址*16+偏移地址3).首字单元地址:70A0H*16+DDF6H=70A00H+DDF6H=7E7F6H末字单元地址:7E7F6H+(16-1)*2=7E7F6H+1EH=7E814H注意:相邻两个存储单元可构成一个字长为16位的字,在对准字时,用偶地址表示字的地址.0H12H10HEHCHAH8H6H4H2H20H1EH1CH1AH18H16H14H116151413121110987654323-132位微机有哪几种数据类型?【答】:共有7种数据类型:1、无符号二进制数字节(8位):0~255(0~0FFH),占用一字节存储单元;字(16位):0~65535(0~0FFFFH),占用连续的两字节存储单元,低地址存储单元存放低8位数据,高地址存储单元存放高8位数据,低字节地址为该字的地址;双字(32位):0~4294967299(0~0FFFFFFFFH),占用连续的四字节存储单元,最低地址存储单元存放最低8位数据,最高地址存储单元存放最高8位数据,最低字节地址为该双字的地址。2、带符号二进制数字节(8位):-128~+127(80H~FFH,00H~7FH)字(16位):-32768~+32767(8000H~FFFFH,00000H~7FFFH)双字(32位):-2147483650~+2147483649(80000000H~FFFFFFFFH,000000000H~7FFFFFFFH)带符号二进制数以补码形式存储,地址单元分配与无符号数类似。3、浮点数(实数)单精度数(32位):1位符号,8位阶码,24位有效数(显式23位,外加1位隐含的整数“1.”。)双精度数(64位):1位符号,11位阶码,53位有效数(显式52位,外加1位隐含的整数“1.”。)扩展精度数(80位):1位符号,15位阶码,64位有效数(内含1位整数1,小数点是隐含的。)4、BCD码压缩BCD码:1字节存放两个BCD码;非压缩BCD码:1字节存放一个BCD码(低4位)。5、串数据位串:从任何字节的任何位开始的相邻位序列,最长可达232-1位;字节/字/双字串:是字节、字、双字的相邻序列,最长可达232-1字节。6、ASCII码数据ASCII码字符串:如‘ABC123’ASCII码数:如30H~39H(0~9),41H~46H(A~F)7、指针数据类近指针(32位):是一个32位的段内偏移地址,段内寻址时使用。远指针(48位):是一个由16位选择符和32位偏移量组成,段间寻址时使用。3-2什么叫寻址方式?32位微机有多少种寻址方式?各种寻址方式的特点是什么?【答】:寻址方式:寻找指令中所需的操作数或操作数地址的方式。共9种寻址方式。1、立即寻址:指定的操作数紧跟在操作码之后,直接存放在代码段中;2、寄存器寻址:操作数在CPU的寄存器中,而寄存器的名由指令指出;3、直接寻址:操作数有效地址(16位或32位)直接包含在指令中;4、寄存器间接寻址:操作数的偏移地址存放在寄存器中,而操作数存放在存储器中;5、相对寄存器间接寻址:寄存器内容与位移量之和形成操作数的有效地址;EA=[寄存器]+位移量(合并了“基址寻址”和“变址寻址”)6、基址加变址寻址:基址寄存器内容与变址寄存器内容之和形成操作数的偏移地址;EA=[基址寄存器]+[变址寄存器]7、相对基址加变址寻址:基址寄存器内容与变址寄存器内容再加偏移量之和形成操作数的有效地址;EA=[基址寄存器]+[变址寄存器]+偏移量8、比例变址寻址(32位寻址):变址寄存器内容乘以比例因子再加位移量之和形成操作数的32位有效地址。EA=[变址寄存器]*比例因子+位移量9、比例变址加基址寻址(32位寻址):变址寄存器内容乘以比例因子再加上基址寄存器的内容,形成操作数的32位有效地址。即:EA=[变址寄存器]*比例因子+[基址寄存器]10、带位移的基址加比例变址寻址:EA=[变址寄存器]*比例因子+[基址寄存器]+位移量3-3简述立即寻址和直接寻址、寄存器寻址和寄存器间接寻址的区别。3-4微机的指令一般由哪几个字段组成?各字段的主要作用是什么?【答】:通常由6个字段组成:1、前缀字段:用于修改指令的某些属性;2、操作码字段:规定指令的操作属性;3、4、寻址方式字段:为寻址方式说明字段;5、位移量字段:6、立即数字段:3-532位微机的指令系统分为几种类型?【答】:32位微机的指令系统分为:1、整数指令数据传送类指令算术运算类指令逻辑运算类指令串操作类指令控制转移类指令处理器控制类指令高级和保护控制类指令2、浮点数指令3、操作系统型指令3-6分别指出下列指令中源操作数和目标操作数的寻址方式。若是存储器寻址,用表达式表示EA。【答】:(1)ANDAX,00FFH立即数寻址(2)ADDBX,[00FFH]直接寻址(3)MOVAX,[BX+10H]相对寄存器间接寻址(基址寻址)EA=(BX)+10H(4)ADDAX,[ESI*8]比例间址寻址EA=(ESI)*8(5)SUB[BP][SI],AX基址加间址寻址EA=(BP)+(SI)SS为段寄存器(6)MOVAX,[BX+DI+20H]相对基址加间址寻址EA=(BX)+(DI)+20HDS为段寄存器(7)CMP[SI],AX寄存器间接寻址(8)ORAX,DX寄存器寻址(9)MOVEAX,[ESI][EDI*2]基址加比例间址寻址EA=(ESI)+(EDI)*2(10)PUSHDS寄存器寻址3-7【答】:(1)MOVAX,[1234H]直接寻址方式EA=1234HPA=(DS)*16+EA=11234H(2)MOVAX,TABLE直接寻址方式EA=0100HPA=(DS)*16+EA=10100H(3)MOVAX,[BX+100H]相对寄存器间接寻址(基址寻址)EA=(BX)+100H=0140HPA=(DS)*16+EA=10140H(4)MOVAX,TABLE[BP][SI]相对基址加间址寻址EA=(BP)+(SI)+TABLE=0016H+007FH+0100H=0195HPA=(SS)*16+EA=20195H3-8【答】:(1)MOVDS,100立即数不能直接传送到段寄存器改:MOVAX,100MOVDX,AX(2)MOV1020H,DX立即数只能出现在源操作数位置改:MOVDX,1020H(3)SUB[1000H],[SI]源操作数和目的操作数不能同时为存储单元改:SUBAX,[SI](4)PUSHALPUSH指令中的操作数必须是16位寄存器或存储单元改:PUSHAX(5)INAL,[80H][80H]不是端口地址改:INAL,80H(6)MOVDS,ES两个段寄存器之间不能直接传递数据改:MOVAX,ESMOVDS,AX(7)JMPBX没有错(8)SHRDX,4移位次数大于1时,将数送入CL改:MOVCL,4MOVDX,CL(9)OUT380H,AX端口地址大于255,要用DX装端口地址改:MOVDX,380HOUTDX,AX(10)ADDAL,BX目标操作数和源操作数不能一个为字节一个为字改:ADDAX,BX或ADDAL,BL(11)POPCSCS不能作目标操作数改:POPAX(12)MOVCL,3300H目标操作数和源操作数不能一个为字节一个为字改:MOVCX,3300H3-9【答】:(1)(CL)=[09226H]=00F6H(2)[1E4F6H]=5678H(3)(BX)=0056H(AX)=[09228H]=1E40H(4)[SI]=[09226H]=(BX)=0024H(5)(AX)=5678H[09226H]=1234H3-10【答】:(1)(AL)=40HSF=0PF=0ZF=0(2)(AL)=0DEHSF=1PF=1ZF=0(3)(AL)=9EHSF=1PF=0ZF=0(4)[DATA]=0A50H(5)(AL)=04HSF=0PF=0ZF=0(6)(AL)=0C5HSF=1PF=1ZF=0(7)(AL)=3BHSF=0PF=0ZF=0(8)(AL)=0C4HSF=1PF=0ZF=03-11【答】:(IP)=009AH(CS)=2000H(SP)=0F178H[SP]=F8H[SP+1]=3DH[SP+2]=05H[SP+3]=04H3-12【答】:(1)OF=0SF=0ZF=1AF=1PF=1CF=1(2)OF=0SF=0ZF=0AF=0PF=0CF=0(3)OF=1SF=0ZF=0AF=0PF=0CF=0(4)OF=1SF=0ZF=0AF=0PF=0CF=14-4【答】:变量用来定义存放在存储单元中的数据。有三重属性:段属性、偏移地址属性、类型属性。4-6【答】:标号是指指令语句所在地址的符号表示。有三重属性:段属性、偏移地址属性、距离属性。4-15【答】:DATASEGMENTMBUFDB12H,34H,56H,78H,90HCOUNTEQU$-MBUFORG0020HNBUFDBCOUNTDUP(0)DATAENDSSTACK1SEGMENTSTACKDW20DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1START:MOVAX,DATAMOVDS,AXMOVBX,OFFSETMBUFADDBX,COUNT-1MOVSI,OFFSETNBUFMOVCX,COUNTSAVE:MOVAL,[BX]MOV[SI],ALDECBXINCSIDECCXJNZSAVEMOVAH,4CHINT21HCODEENDSENDSTART4-16【答】:DATASEGMENTXXDB2,0,-2COUNTEQU$-XXORG0020HYYDB?,?,?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;MOVBX,OFFSETXXLEABX,XXMOVSI,OFFSETYYMOVCX,COUNTACUL:MOVAL,[BX]CMPAL,1JGEBIGRCMPAL,-1JLELOWERMOVAL,0JMPSAVEBIGR:MOVAL,1JMPSAVELOWER:MOVAL,-1SAVE:MOV[S