同济大学双控复试使用2007-2008(1)微机原理期中试题答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2007—2007学年第一学期同济大学微机原理与接口技术(A)期中试卷答案(本卷考试时间为100分钟)专业_________姓名_________学号_________1、将下列数字转换为16进制。(4分)(1)(10.3)8(2)(12.5)10(3)(100101.01111)2(4)(56.2)72、若两个8位二进制数X=-107,Y=74,则有[X]补=?,[Y]补=?,[X+Y]补=?,[X-Y]补=?。(8分)解:X=-107,因(107)10=(01101011)2,故有[X]补=(10010101)2Y=74,因(74)10=(01001010)2,故有[Y]补=(01001010)2[X+Y]补=[X]补+[Y]补=(10010101)2+(01001010)2=(11011111)2=(-33)10[X-Y]补=[X]补-[Y]补=(10010101)2-(01001010)2=(01001011)2=(75)10,计算结果溢出。3、若DS=2000H,SS=1500H,SI=00A0H,DI=0020H,BX=0100H,SP=0020H,DS:[0120H]=0AAH,DS:[0121H]=55H,数据DATA的偏移地址为0050H。试求。(10分)(1)执行指令LEAAX,DATA[BX+SI]后,AX的内容是什么?。(3分)(2)执行指令MOVWORDPTR[BX+DI],01H后,目的操作数值是什么?。(3分)(3)指令POP[DI+300H]的源操作数物理地址是什么?,目的操作数物理地址是什么?。(4分)解:a)指令LEA是将访问内存的有效地址EA送入到寄存器中,故有AX=DATA+BX+SI=0050H+0100H+00A0H=01F0H寄存器AX中内容为01F0H。b)因为目的操作数是WORD类型,故目的操作数中将存放0001H。c)源操作数物理地址为SS×16+SP=15020H。目的操作数物理地址为DS×16+DI+300H=20320H。4、给定一个堆栈区,其地址范围为1250H:0000H~1250H:0100H,SP=0052H,试问(8分)。(1)栈顶地址是什么?栈底地址是什么?(4分)(2)若存入数据2456H,数据在内存中如何存放,存放后SP的内容是什么?(4分)解:a)栈顶地址为1250H:0052H,即物理地址为12552H。栈底地址为1250H:0000H,即物理地址为12500H。b)在物理地址12551H处存放数据24H,在物理地址12550H处存放数据56H。存放完成后SP内容变为0050H。5、已知AX=14C6H,BX=80DCH,执行以下程序后,试问(8分)。CMPAX,BXJNOPROG1JNCPROG2JMPPROG3(1)分析标志位S,C,O,Z的取值情况(4分)(2)并指出程序将转向哪个标号?(4分)解:a)因为CMP指令执行的是减法操作,其结果只影响标志位。易知14C6H-80DCH=93EAH。可以看出,正数减去负数后,结果为负数,因此计算有溢出。有O=1。高位相减有借位,故C=1。计算结果为负数,有S=1。计算结果不为0,有Z=0。b)由于O=1,该程序片段中JNO的跳转条件不满足。而C=1,JNC跳转条件也不满足。故最终程序将执行到JMPPROG3。因此,程序将转向PROG3标号。6、若8086执行SUBAH,AL后,其结果是AH=85H,O=1,试问(14分)(1)指令执行前AH和AL中那个有符号数大?(5分)(2)AH以前的数是个正数还是负数?为什么?(5分)(3)指令执行完毕后,AH的结果是否正确?为什么?(4分)解:a)因为SUBAH,AL执行是减法操作,结果AH=85H,为负数,且O=1,有溢出。有符号数相减出现溢出,只有两种情况:正数减去负数,结果为负数负数减去正数,结果为正数。易知本题只能属于第一种情况,即正数减去负数后,其结果为负数而产生溢出。故在指令执行前,AH中的有符号数为正数,AL中的有符号数为负数,有AHAL。b)由上分析,易知AH中的有符号数为正数,AL中的有符号数为负数。c)因为产生了溢出,故AH中的结果不正确。7、写出能完成下述操作的指令(14分)。(1)将AX的高字节清零,低字节不变(3分)。(2)将CX的高字节变反,低字节不变(3分)。(3)将AX的第11-14位用BX的第0-3位依次替换(8分)。解:a)ANDAX,00FFHb)XORCX,0FF00Hc)程序片段如下:PUSHBX;将BX中的值保存在堆栈中SHLBX,11;将BX中第0-3位移到第11-14位ANDBX,07800H;取出BX中第11-14位,其余位均为0ANDAX,087FFH;将AX中第11-14位置0,其余位保持不变XORAX,BX;将BX与AX异或,易知AX第11-14位为0,;故BX中对应的第11-14位并入AX。;而BX中其它位均为0,对AX中其他位没有影响。POPBX;恢复BX的原始值8、若DATA段起始物理地址为01300H,请用图示说明变量VAR2的内存分配和数据预置情况(8分)。DATASEGMENTVAR2DW6AH,2045H,34,2DUP(0,10)DATAENDS解:内存分配和数据预置情况如下表所示。内存位置数据注释0130DH00HDUP(0,10)0130CH0AH0130BH00H0130AH00H01309H00HDUP(0,10)01308H0AH01307H00H01306H00H01305H00H3401304H22H01303H20H2045H01302H45H01301H00H6AH01300H6AH9、阅读下列一小段汇编代码。给出该段程序运行后,AX中的内容。(8分)TABDW6,5,4,3,2,1ENTRYEQU3MOVBX,OFFSETTABADDBX,ENTRYMOVAX,WORDPTR[BX]解:需要注意的是TAB是字型定义。设TAB起始地址为01300H,其内存分配情况如下表:内存位置数据0130BH00H0130AH01H01309H00H01308H02H01307H00H01306H03H01305H00H01304H04H01303H00H01302H05H01301H00H01300H06H程序运行后BX内容为01303H,指向的字型数据如表中阴影所示,故程序运行后AX内容为0400H。10、阅读下列汇编程序,回答有关问题。(10分)a)说明程序段功能,并对省略号之间的程序代码段添加注释。(6分)b)程序运行完成后,给出数据段STR字符串的内容。(4分)DATASEGMENTSTRDB'heLLo,eveRyboDY!','$'DATAENDSCODESEGMENTASSUMECS:CODEDS:DATAMOVAX,DATAMOVDS,AX……LEABX,STR;获取串STR的地址A1:MOVAL,[BX];将串中第一个字母放入ALCMPAL,'$';若为$,则转到DONE;否则进行下一步操作。JEDONECMPAL,'A';若字母比'A'小,转入NEXTJBNEXTCMPAL,'Z';若字母比'Z'大,转入NEXTJANEXTADDAL,20H;字母在'A'-'Z'之间,则转换为小写字母。MOV[BX],AL;将转换好的字母放入STR位置NEXT:INCBX;获取串中下一个字母JMPA1;跳转到A1进行处理DONE:……CODEENDSEND解:a)程序完成的功能是将指定字符串中大写字母转为小写字母,相关的注释见程序。b)程序运行完毕后,数据段字符串STR中的内容为'hello,everybody!$'11、汇编语言与高级语言相比有何优缺点?(8分)解:略。

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功