您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微机原理期中试题答案
A卷12007—2008学年第一学期《微机原理及应用》课程期中测试试卷答案注意:1、本试卷共4页;2、考试时间120分钟3、姓名、学号必须写在指定地方阅卷负责人签名:题号一二三四五六七八总分得分一、填空题(30×1=30分)1、调用程序、子程序传送参数的方法通常有寄存器、内存和堆栈三种方法。2、下述机器数形式可表示的数值范围是(请用十进制形式写出):单字节无符号整数0~255;单字节有符号整数-128~+127。3、乘法指令MUL的指令格式只有一个源操作数,若源操作数的类型属性为字节,则乘积在AX中,若源操作数的类型属性为字,则乘积的高16位在DX中,低16位在AX中。4、请给出标志寄存器中标志位OF、IF、SF、ZF、PF、CF的说明:OF溢出、IF中断、SF符号、ZF零、PF奇偶、CF进位。5、寄存器间接相对寻址的有效地址是寄存器的内容与相对地址位移量代数和。6、指令XLAT通常用于查表操作,在使用该指令前,应把表首的偏移首地址送入BX,待转换的代码在表中的序号送AL。7、对于指令MOVAX,[BX]执行前(DS)=1000H,(BX)=11H,则源操作操作数的物理地址为10011H。设主存中的部分存储单元的物理地址及存储数据如下表所示,则前述指令执行后的AX中数据为0A7F。1000F100101001110012100133AH45H7FH0AHFCH8、8086/8088CPU共有20根地址线,I/O端口最大允许数是65536个。9、8086/8088的_____/MXMN引脚接高电平时,处于最小工作模式。10、为下述情况各举一例。⑴寄存器与存储单元内容相加送寄存器ADDAL,[BX]。⑵寄存器互送MOVAX,BX。⑶将标志寄存器进栈PUSHF。⑷立即数与寄存器内容相加送寄存器ADDAX,1234H。⑸用伪指令将48H、5AH存入字节数据区ARRAYBARRAYBDB48H,5AH。二、简答题(10+5+15=30分)1.指出下列指令所用到的寻址方式(10分)指令目的操作数寻址方式源操作数寻址方式MOVAX,1000H寄存器寻址立即寻址MOVAX,DS:[1000H]寄存器寻址直接寻址MOVAX,DX寄存器寻址寄存器寻址MOV[BX],AL寄存器间接寻址寄存器寻址MOV[BX+SI+5],AX基址变址相对寻址寄存器寻址MOV[BP],BX寄存器间接寻址寄存器寻址MOVAX,[DI+10]寄存器寻址寄存器间接相对寻址MOVAX,[SI]寄存器寻址寄存器间接寻址MOVAX,[BX+BP]寄存器寻址基址变址寻址LODSB隐含寻址隐含寻址2、阅读如下程序段,回答提出的问题。(5分)MOVAX,3456XCHGAX,BXMOVAX,3456SUBAX,BXJEDONEKK:ADDAX,BX...DONE:设“KK”标号所在指令在内存中物理地址为51010H;“DONE”标号所在指令在内存中的物理地址为512A0H,且(CS)=5000H,则该程序执行完“JEDONE”指令后,AX=(0000H),ZF=(1),IP=(12A0H)3、按要求编写程序段(只需要写出核心语句)1)写出两条使AL中内容为0的指令(2分)MOVAL,00HXORAL,AL2)使BL寄存器中高、低四位互换(3分)MOVCL,4ROLBL,CL或RORBL,CL3)统计AX中“1”的个数,结果放在BL中(用移位指令实现)。(5分)阅卷人得分阅卷人得分三峡大学试卷纸教学班号序号学号姓名命题教师审题教师…………………….………….……试题不要超过密封线………….………………………………A卷2答案一:MOVBL,00HLOOP1:SHLAX,1JNCNEXT;最高位不是1INCBL;BL的数据加1NEXT:JZDONE;;AX中数据为0,则结束JNZLOOP1DONE:HLT答案二:MOVBL,00HMOVCX,16;循环16次LOOP1:SHLAX,1JNCNEXT;最高位不是1INCBL;BL的数据加1NEXT:LOOPLOOP14)两个16位带符号数分别存放于X1和X2变量中,求X1/X2,商和余数分别放在Y1和Y2中;如果除数为0,则商和余数都置为0。(5分)答:MOVAX,X1CWD;位扩展MOVBX,X2IDIVBXMOVY1,AXMOVY2,DX三、程序设计题(15×2=30分)1.编写汇编程序完成以下功能:DEST和SOURCE是数据段中定义的长度为100个字节的两个变量。找出第一个不相同的字节,找到后(假设一定能找到),则将SOURCE中的这个数送AL中,并将这个数相对于SOURCE数据区第一个元素的位置记录在BL中。(只需要写出核心代码,推荐不使用串操作指令)答:MOVBL,00HLEASI,SOURCE;源数据区首地址送SILEADI,DEST;目的数据区首地址送DIMOVCX,100NEXT:MOVAL,[SI];取第一个数据于BL中CMPAL,[DI];比较两个数据JNZDONE;INCSIINCDIINCBLLOOPNEXTDONE:HLT2.试编制一程序,找出数据区DA中带符号数的最大数,并将结果保存于MAX变量中。要求写出所有代码,包括伪指令部分。(假定DA区数据为字节,且一共有500个数据)答:DATA1SEGMENTMAXDB?DADB-1,2,3,100,99,…DATA1ENDSSTACK1SEGMENTSTACKDB100DUP(?)STACK1ENDSCODE1SEGMENTASSUMECS:CODE1,DS:DATA1,SS:STACK1START:MOVAX,DATA1MOVDS,AXMOVAL,-255;AL中放置最小的整数LEABX,DA;设置初始地址指针MOVCX,500;循环次数LOOP1:CMPAL,[BX];比较两数大小JGENEXTMOVAL,[BX];将大数放于AL中NEXT:INCBX;地址指向下一个数LOOPLOOP1;循环MOVAL,Y;保存结果CODE1ENDSENDSTART阅卷人得分
本文标题:微机原理期中试题答案
链接地址:https://www.777doc.com/doc-2470013 .html