您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 微机原理程序分析题汇总
1.设CPU各个标志位的初始状态均为0,执行指令:MOVAX,0DECAX后,请问AX=?,SF=?,CF=?(3分)AX=FFFFH或-1(1分),SF=1(1分),CF=0(1分)(DEC变量递减一。MOVAX,0;AX=0;DECAX;AX=AX-1=-1=FFFFH;SF(符号标志):SF用于反映本次运算结果是正还是负,若某次运算结果的最高位(第8位或第16位)为“1”,则SF=1,否则SF=0;CF(进位标志):保存加法的进位和减法的借位,有进位或借位时CF=1,否则CF=0;结果为-1,所以SF=1,而本题中的借位是溢出借位,故而CF=0)2.下面程序段的功能是从240H端口读取数据,测试其是否为20H,若不是则将241H端口清0,否则转向NEXT,请将程序补充完整。(5分)MOVDX,240H;端口号放入段寄存器INAL,DX;输入数据CMPAL,20H;测试是否为20HJZNEXT;如果不是转到NEXTMOVDX,241HMOVAL,0;将端口数据清零OUTDX,AL……NEXT:……1.定义变量DA1DB‘1+2=?’DA2DW2DUP(0)NUMEQU$-DA1分析以下指令执行后寄存器的内容,并填在指令后的横线上。(5分)SUBAX,AXMOVAL,DA1;AL=31H;DA1=3MOVBL,DA2-DA1;BL=05HMOVCX,NUM;CX=09HL1:RCLAL,1JNCL2INCAHL2:LOOPL1程序段执行完后AL=31H,AH=03H2.两个压缩BCD数相加,结果保存在内存的SUM单元,如有进位保存在AH中,将下面的程序段补充完整。(3分)X1DB36HX2DB78HSUMDB?,?MOVAL,X1MOVBL,X2ADDAL,BLDAA;将两个压缩BCD数相加后一定要用DAAJCL1MOVAH,0JMPL2L1:MOVAH,1L2:MOVSUM,ALMOV[SUM+1],AH1.设初值为AX=1234H,BX=5678H,DX=0ABCDH,则下面一段程序:MOVCL,4;CL=4SHLDX,CL;SHL逻辑左移;DX=0BCD0HMOVBL,AH;BX=5612HSHLAX,CL;AX=2340HSHRBL,CL;SHR逻辑右移;BL=01HORDL,BL;OR两者相或;DL=D0H,BL=01H;ORDL,BL;DL=D1H执行后,请问AX=?,BX=?,DX=?(3分)AX=2340H;BX=5601H;DX=0BCD1H2.下面程序段的功能是求5到50之和,并将结果存放到SUM单元中,请将程序补充完整。(5分)SUMDW0……MOVCX,46MOVBX,5MOVAX,0L1:ADDAX,BXINCBXLOOPL1MOVSUM,AX
本文标题:微机原理程序分析题汇总
链接地址:https://www.777doc.com/doc-2435685 .html