2008—2009学年第一学期同济大学微机原理与接口技术(A)期中试卷(本卷考试时间为100分钟)专业_________姓名_________学号_________1、将下列数字转换为16进制。(8分)(a)(10.3)8(b)(12.5)10(c)(100101.01111)2(d)(41.2)5解:(a)(8.6)16(b)(C.8)16(c)(25.78)16(d)(19.6666….)16(无限循环)2、写出下列十进制数的16位二进制补码。(8分)。(a)-128(b)10(c)-64(d)0解:(a)(FF80)16(b)(000A)16(c)(FFC0)16(d)(0000)163、已知AX=14C6H,BX=80DCH,执行以下程序后,试问。(14分)ADDAX,BXJNOPROG1JNCPROG2JNSPROG3JMPPROG4(1)分析标志位S,C,O,Z的取值情况。(2)指出程序将转向哪个标号?解:(1)S=1,C=0,O=0,Z=0。(2)PROG14、若DS=2000H,SS=1B00H,DI=0020H,BX=0100H,SP=5120H,DS:[0120H]=0AAH,DS:[0121H]=55H,寄存器AX的内容为3A0FH。(15分)(1)给出DS所指数据段的起始物理地址和结束物理地址。(2)执行指令MOVAL,[BX+DI]后,AX的内容是什么?访问的内存物理地址是什么?(3)执行POPAX后,AX的内容是什么?SP的内容是什么?解:(1)20000H,2FFFFH。(2)3AAAH,20120H和20121H(3)55AAH,5122H5、写出能完成下述操作的指令序列。(15分)(1)将AX的第6-9位清零,其他位不变。(2)将BL清零(BL=0)的四种指令。(3)将BL的高四位和低四位互换。解:(1)ANDAX,0FC3FH。(2)XORBL,BLMOVBL,0ANDBL,0SHLBL,8SUBBL,BL(3)RORBL,4ROLBL,46、如下,若DATA段起始物理地址为01300H。(15分)DATASEGMENTVAR1DB’Exam1’VAR2DW6AH,2DUP(206FH,10)DATAENDS(1)请用图示说明变量VAR2的内存分配和数据预置情况(用十六进制表示)。(2)若执行下列代码,AX的内容是什么?ENTRYEQU3MOVBX,OFFSETVAR2ADDBX,ENTRYMOVAX,WORDPTR[BX]解:(1)内存分配和数据预置情况如下表所示。内存位置数据注释0130EH00HDUP(206FH,10)0130DH0AH0130CH20H0130BH6FH0130AH00HDUP(206FH,10)01309H0AH01308H20H01307H6FH01306H00H6AH01305H6AH(2)0A20H7、阅读下列汇编程序,回答有关问题。(20分)(1)说明程序段功能,并对程序代码段添加注释。(2)程序运行完成后,给出程序相关堆栈段的内容。DATASEGMENT;定义数据段DATA1DW101H;定义数据段的DATA1变量,类型为字型,值;为101HDATAENDS;数据段定义结束CODESEGMENT;代码段定义开始ASSUMECS:CODEDS:DATA;绑定代码段和数据段到CS和DS寄存器VAR2MOVAX,DATA;取数据段地址到AXMOVDS,AX;置DS寄存器为数据段地址MOVAX,DATA1;将变量DATA1的内容取到AX中MOVBX,10;置BX为十进制的基(10),作为数据转换的;除数A1:MOVDX,0;被除数为DX-AX,将高位DX置0DIVBX;进行除法操作ADDDL,30H;余数在DX中,因为不超过10,故对DL操作。;将其转换为ASCII码表示,故加上30HPUSHDX;将转换后的余数压栈ORAX,AX;判断商是否为0JNZA1;如果不为零,则继续进行除法操作MOVAX,4C00H;设置21中断的4C功能,退出程序INT21H;调用21中断CODEENDS;代码段定义结束END;汇编程序定义结束解:(1)该程序功能是将十六进制的数据转换为十进制的数据,相关的代码注释见程序代码。(2)相关堆栈段的内容如下。设程序运行前的SS=1000H,SP=1000H,则堆栈图示如下。内存位置数据注释10FFFH00H个位10FFEH37H10FFDH00H十位10FFCH35H10FFBH00H百位10FFAH32H8、汇编语言与高级语言相比有何优缺点?(5分)解:略。SP=0FFAH