微机原理与接口技术李珍香版课后习题4参考答案_第1页
微机原理与接口技术李珍香版课后习题4参考答案_第2页
微机原理与接口技术李珍香版课后习题4参考答案_第3页
微机原理与接口技术李珍香版课后习题4参考答案_第4页
微机原理与接口技术李珍香版课后习题4参考答案_第5页
免费预览已结束,剩余15页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理与接口技术李珍香版课后习题4参考答案微机原理与接口技术李珍香版课后习题4参考答案微机原理与接口技术李珍香版课后习题4参考答案xxx公司微机原理与接口技术李珍香版课后习题4参考答案文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度习题4参考答案简述汇编语言与机器语言及高级语言间的区别参考答案:要点:汇编语言与机器语言的区别:汇编语言采用符号表示,机器语言二进制表示。汇编语言与高级语言的区别:汇编语言属于低级语言,每条指令与对应的机器指令间是一一对应关系,而高级语言接近于自然语言。简述汇编语言程序的指令语句与伪指令语句在写法及功能上的不同参考答案:要点:写法上的不同主要表现在第一部分上,一条指令的第一部分“标号”若需要,则在标号后面一定有冒号“:”,而伪指令语句的第一部分在“名字”后没有冒号“:”。功能上的不同:每一条指令都有对应的机器指令,在程序运行过程中执行到每条指令时起作用;伪指令没有对应的机器指令,是在程序汇编时起作用。汇编语言程序的标号有何规定标号有哪三种属性参考答案:略汇编语言程序的变量如何定义变量有哪三种属性参考答案:略汇编语言程序中,算术表达式、逻辑表达式、关系表达式各有什么含义?参考答案:略简述汇编语言程序上机的基本步骤和每步所进行的主要操作参考答案:略设TABLE为数据段中0100H单元的符号名,其中存放的内容为FF00H,试分析以下两条指令分别执行后的结果,并指出它们之间的区别?

MOVAX,TABLEMOVAX,OFFSETTABLE参考答案:第一条指令传送的是TABLE所指单元的内容,AX结果为FF00H;第二条指令传送的是TABLE的偏移地址,AX结果为0100H。设有如下的变量定义:DATASEGMENTARRAYDW1000H,2000H,3000H,4000H,5000HBUFDWDATAENDS请分别完成以下操作(1)用一条指令完成将ARRAY的偏移地址送BX(2)用一条指令完成将ARRAY的第一字节单元内容送AL(3)用一条指令完成将ARRAY定义的数据个数送CX参考答案:(1)LEABX,ARRAY(2)MOVAL,BYTEPTRARRAY(3)MOVCX,(BUF-ARRAY)/2已知一数据段中的数据定义如下:DATASEGMENTSTR1DB1,2,3,4,5STR2DB‘12345CONTEQU20NUMBDB3DUP(6)NUMWDW20H,-80HTABLEDW0DATAENDS试根据以上数据段的定义,指出下列每小题指令中的错误或者用得不当的指令。(1)MOVAX,STR1;STR1定义为字节类型,不能当字变量使用(2)MOVBX,OFFSETNUMBMOV[BX],’+’;’+’为立即数,[BX]存储器操作数应明确类型(3)MOVDL,NUMW+2;NUMW为字类型,不能当字节变量使用(4)MOVBX,OFFSETSTR1MOVDH,BX+3;源操作数“BX+3”(5)INCCONT;INC中的操作数不能为立即数(6)MOVSTR1,STR2;MOV中的两个操作数不能同时为存储器操作数(7)MOVAX,NUMW+2MOVDX,0;此处不应用MOV指令,而应该用CWD指令DIVNUMW;此处不应用DIV指令,而应该用IDIV指令参考答案:分号“;”后面为答案编写一个汇编语言程序,将字符串“HelloWowld!”中的全部小写字母转换为大写字母,并存放回原地址处。参考程序:DATASEGMENTSTRINGDB"HelloWowld!"LENequ$-stringDATAENDScodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovbx,offsetstringmovcl,lennext:moval,[bx]cmpal,'a'jblopcmpal,'z'jalopsubal,20hmov[bx],allop:incbxdeccljnznextmovah,4chint21hcodeendsendstart编写一个带符号数四则运算的程序,完成(Z-(X*Y+200))/20的运算,商送V单元,余数送W单元。这里,X,Y,Z均为16位的带符号数,内容用户自己定义。参考程序:DATASEGMENTxDW2ydw-10zdw300vdwwdwDATAENDScodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovax,xmovbx,yimulbxmovcx,200movbx,0addax,cxadcdx,bxmovcx,zmovbx,0subcx,axsbbbx,dxxchgcx,axxchgbx,dxmovbx,20idivbxmovv,axmovw,dxmovah,4chint21hcodeendsendstart编写一个汇编语言程序,完成以下要求。从BUF单元处定义有10个带符号字数据:-1、3、24、94、62、72、55、0、-48、99,试找出它们中的最大值和平均值,并依次分别存放至该数据区的后2个单元中(假设这10个数的和值不超过16位)。参考程序:DATASEGMENTbufDW-1,3,24,94,62,72,55,0,-48,99nequ($-buf)/2maxdwavedb,DATAENDScodesegmentassumecs:code,ds:datastart:movax,datamovds,axleasi,bufclcxorax,axxordx,dxmovax,[si]movcx,nnext:adcdx,[si]cmpax,[si]jgegoonmovax,[si]goon:addsi,2loopnextmovmax,axmovbl,nmovax,dxidivblmovave,almovave+1,ahmovah,4chint21hcodeendsendstart编写一个统计分数段的子程序,要求将100分、90~99分、80~89分、70~79分、60~69分、60分以下的学生人数统计出来,并分别送往S10、S9、S8、S7、S6、S5各单元中。(学生人数和每人的成绩由用户自己定义)参考程序:DATASEGMENTgraddb77,68,82,90,54,69,72,86,91,100s10dbs9dbs8dbs7dbs6dbs5dbDATAENDScodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovcx,s10-gradcallcountmovah,4chint21hcountprocnearmovsi,0next:moval,grad[si]movah,0movbx,10divblcbwmovbx,axsubbx,10negbxincs10[bx]incsiloopnextretcountendpcodeendsendstart将AX寄存器中的16位数据分成4组(从高到低),每组4位,然后把这四组数作为数当中的低4位分别放在AL、BL、CL和DL中。参考程序:codesegmentassumecs:codestart:MOVBX,AXMOVDX,AXMOVCL,4SHRAH,CLMOVAL,AHMOVBL,BHANDBL,0FHMOVDH,DLSHRDH,CLMOVCL,DHmovah,4chint21hcodeendsendstart设有两个16位整数变量A和B,试编写完成下述操作的程序:(1)若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中。(2)若两个数均为奇数,则两数分别减1,并存回原变量中。(3)若两个数均为偶数,则两变量不变。参考程序:DATASEGMENTadwbdwDATAENDScodesegmentassumecs:code,ds:datastart:movax,datamovds,axlop:movax,amovbx,bxorax,bxtestax,0001Hjznexttestbx,0001Hjzexitxchgbx,amovb,bxjmpexitnext:testbx,0001hjzexitdecbdecaexit:movah,4chint21hcodeendsendstart设有一段英文,其字符变量名为ENG,并以$字符结束。试编写一程序,查找单词“is”在该文中的出现次数,并将次数显示出来。(英文内容由用户自己定义)参考程序:DATASEGMENTENGdb'thisisanprogramexample$'n1equ$-engstrdb'is'n2equ$-strDATAENDScodesegmentassumecs:code,ds:data,es:datastart:movax,datamovds,axmoves,axxordx,dxmovcl,n1xorch,chcmpcx,n2jbedispmoval,strleadi,engcldsearch:repnescasbjnedispmovbl,str+1cmpes:[di],bljeexistjcxzdisplop:jmpsearchexist:incdlcmpcx,1jzdispjmplopdisp:ordl,30hmovah,2int21hmovah,4chint21hcodeendsendstart请编写程序实现以下功能:设在A、B和C单元中分别存放着一个8位带符号数。试比较这3个数,若3个数都不是0,则求出3数之和并存放于D单元中;若其中有一个数为0,则把其它两个单元也清零。参考程序:DATASEGMENTaDb10bdb-10cdb30ddbDATAENDScodesegmentassumecs:code,ds:datastart:movax,datamovds,axxordx,dxcmpa,0jznextmovdl,acmpb,0jnzlop1next:movb,0movc,0mova,0jmpexitlop1:adddl,bcmpc,0jznextadddl,cmovd,dlexit:movah,4chint21hcodeendsendstart从键盘输入一系列字符(以回车符结束),并按字母、数字及其它字符分类计数,最后显示出这三类的计数结果。参考程序:datasegmentsdb;统计字符ddb;统计数字odb;统计其它字符

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论