您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《微机原理》参考答案
第一章到第四章作业答案第一章(Page19)10(3)解二进制=10010.10111100十六进制=12.BC12解(1)BC.DH=10111100.1101B=274.64D=188.8125O(2)20.BH=00100000.1011B=40.54D=32.6875O(3)6C.6H=01101100.0110B=154.3D=108.375O16.解[48]原、反、补=00110000[-98]原=11100010[-98]反=10011101[-98]补=1001111019.解[3728]压缩BCD=0011011100101000[3728]非压缩BCD=00000011000001110000001000001000[315]压缩BCD=001100010101[315]非压缩BCD=000000110000000100000101[1124]压缩BCD=0001000100100100[1124]非压缩BCD=0000000100000001000000100000010020.解(1)31H=49=3439H(ASCII码)(2)A4H=164=313634H(ASCII码)(3)3DH=61=3631H(ASCII码)(4)OK=4F4BH(ASCII码)第二章(P44)6答:CF、PF、AF、ZF、SF、OFCF(CarryFlag)——进位标志位。当执行一个加法(或减法)运算,使最高位产生进位(或借位)时,CF为1;否则为0。PF(ParityFlag)——奇偶标志位。该标志位反映运算结果中1的个数是偶数还是奇数。当指令执行结果的低8位中含有偶数个1时,PF=1;否则PF=0。AF(AuxiliarycarryFlag)——辅助进位标志位。当执行一个加法(或减法)运算,使结果的低4位向高4位有进位(或借位)时,AF=1;否则AF=0。ZF(ZeroFlag)——零标志位。若当前的运算结果为零,ZF=1;否则ZF=0。SF(SignFlag)——符号标志位。它和运算结果的最高位相同。OF(OverflowFlag)——溢出标志位。当补码运算有溢出时,OF=1;否则OF=0。7答:580AH+3456HCF=0,PF=0,AF=1,ZF=0,SF=1,OF=110答:64K,20000H~2FFFFH11答:D00CH*16+2000H=D20C0H15答:时钟周期1/5M=0.2US,RESET至少需要4个时钟=0.8US插入2个TW后时间=6个时钟=1.2US第三章(P89)6、解:3)MOVCX,3579h0011010101111001SUBCX,4EC1H-0100111011000001CF=1,OF=0,sf=1,zf=0111100110101110007、解:已知:堆栈段起始地址:2000:0000,堆栈的大小100H,(SP)=200H(4)存入2233H、4455H后,SP=200H-4=1FCHMovax,2233hPushax8、解用逻辑指令完成:(1)将AX的高4位清0:ANDAX,0FFFH(2)将BX的低4位置1:ORBX,000FH(3)将DX:AX中的32位数左移1位:SHLAX,1RCLDX,1(4)实现AL中的无符号数乘以20MOVAH,0;将AL的8位数扩展到16位MOVBX,AX;备份MOVCL,4SHLAX,CL;乘以16MOVCL,2SHLBX,CL;乘以4ADDax,bx(或利用算术指令:MOVBL,20MULBL)9解:(1)将AX中间8位做高8位,BX低4位和DX高4位作低4位拼成一个新字MOVCL,4SHLAX,CLANDAX,0FF00HANDBX,000FHMovcl,4Shlbl,clMOVCL,12SHRDX,CLORBX,DXORAX,BX(2)将数据段中以BX为偏移地址的连续3单元中的无符号数求和XORAX,AXMOVAL,[BX]ADDAL,[BX+1]ADCAH.,0ADDAL,[BX+2]ADCah,0(3)将数据段中以BX为偏移地址的连续4单元内容颠倒过来方法1:;1和4单元交换MOVAL,[BX]XCHGAL,[BX+3]MOV[BX],AL;2和3单元交换MOVAL,[BX+1]XCHGAL,[BX+2]MOV[BX+1],AL(4)将bx中的4位压缩bcd用非压缩bcd数形式按高低顺序存放在AL,BL,CL,DL中MOVSI,bxANDBH,0F0HMOVCL,4SHRBH,CLMOVAL,BHMOVBX,SIANDBH,0FHMOVBL,BHPushAXPUSHBXMOVBX,SIANDBL,0F0HMOVCL,4SHRBL,CLMOVCL,BLMOVBX,SIANDBH,0FHMOVDL,BLPOPBXPOPAX10、解把unpacked开始的16位非组合BCD码转换成组合BCD,并把结果存放在packed开始的单元里解:(假设非压缩BCD的高4位=0)MOVDX,8LEASI,UNPACKEDLEADI,PACKEDLOP:MOVAL,[SI]MOVCL,4SHLAL,CLADDAL,[SI+1]MOV[DI],ALINCDIINCSIINCSIDECDXDJNZLOPHLT11、解在不改变AL值得同时,检测AL中1的个数,将结果放在BL中MOVBL,0MOVAH,ALNEXT:CMPAH,0JZEXITJNSSHIFTINCBLSHIFT:SHLAH,1JMPNEXTEXIT:HLT第四章(Page132)4.解(1)BUFF1DB200DUP(?)(2)BUFF1DB200DUP(0)(3)BUFF3DB‘abc’,’123’5.解AL=24H,BX=1234HCX=没有答案DI=5678HDX=4524HPLEN=26,表示从PNUM开始定义的缓冲区的字节容量大小9解(1)WRONG(2)RIGHT(3)RIGHT(4)WRONG(5)WRONG11解答:显示字符串12解:sum=2+4+6+8+…+4020解:DATASEGMENTSTRINGDB?......COUNTEQU$-STRING…DATAENDS00HS1:01H02H03H04H05HS2:32H31H33H34H35HS3:02H02H02H02H02H02H02H02H02H02HCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1,ES:DATASTART:MOVAX,DATAMOVDS,AXLEABX,STRING;设串的地址指针MOVDL,0;DL计数初值0MOVCX,COUNT;串长度AGAIN:CMP[BX],20HJZA1INCDL;串长度加1A1:INCBXLOOPAGAINCALLDISPMOVAH,4CHINT21H;显示DL中的16进制数子程序DISPPROCNEARMOVAL,DL;暂时保存在ALANDAL,0F0H;取该数的高4位;MOVCL,4SHRAL,CLCALLCHANGE;调用子程序计算高4位ASCII码并显示MOVAL,DL;重新取该字节数据ANDAL,0FH;取该数的低4位;CALLCHANGE;计算低4位的ASCII码并显示RETDISPENDP//得到16进制数的ASCII码CHANGEPROCCMPAL,10JLADD_0ADDAL,7ADD_0:ADDAL,30HMOVDL,ALMOVAH,2INT21HRETCHANGEENDPCODEENDENDSTART
本文标题:《微机原理》参考答案
链接地址:https://www.777doc.com/doc-2845475 .html