微计算机原理(第2版)第四章课后习题答案潘名莲马争丁庆生编著.docx
《微计算机原理(第2版)第四章课后习题答案潘名莲马争丁庆生编著.docx》由会员分享,可在线阅读,更多相关《微计算机原理(第2版)第四章课后习题答案潘名莲马争丁庆生编著.docx(16页珍藏版)》请在三一文库上搜索。
1、第四章汇编语言程序设计4-1汇编语言程序设计的几个步骤是:解:编写汇编语言程序的过程根本上与编写高级语言程序的过程是相同的。(1)从实际问题抽象出数学模型;(2)确定解决该数学模型的方法,选择最正确算法;(3)画出流程图,根据算法把解决问题的思路和方法用图形表示出来;(4)分配内存工作单元和存放器;(5)根据流程图编制程序;(6)上机调试,检测和排错。4-2计算以下表达式的值(A1=5OH,B1=20,Gl=2)。(1) A1*JOO+B1(2)AlMODG1+B1(3)(Al+2)*Bl-24)B1/3MOD5(2) (5)(AI+3)*(BlMODGl)(6)AlGTGl(7)BlAND7
2、8)BlSHL2+G1SHR1解:(1)502020(3)1038(4)1(5)0(6)OFFFFH(7)04H(8)51H4-3数据段定义如下,设该段从03000H开始。DSEGSEGMENTARRAYlDB2DUP(0,I,?)ARRAY2DW100DUP(?)FHZEQU20HARRAY3DB10DUP(0,1,4DUP(2),5)DSEGENDS试用分析运算符OFFSET、SEGLENGTH.TYPE、SIZE求出ARRY1、ARRY2.ARRY3的段、偏移量和类型,以及它们的LENGTHSIZE解:变量名OFFSETSEGTYPELENGTHSIZEARRYl00300H122(2
3、1)ARRY206H0300H2100200(1002)ARRY3206=0CEH0300H1IO10(10l)4-4(略)4-5以下语句汇编后,变量CON1,CoN2和CoN3的内容分别是多少?Nl=IOCONl00CON2FF00CON3FFN2=5N3=3CONlDB(NIANDN2ORN3)GEOFHC0N2DW(N2ANDN1XORN3)LEOFHC0N3DB(NIMODN3)LT(N2SHR1)解:如下图4-6设有一个已定义的数据段如下:DATASEGMENTVARlDB99VAR2DB99,ADRDWVARI,VAR2DATAENDS假设要使ADR+2的字单元中存放内容为“002
4、2H”,上述空白处应填入什么语句?解:ORG0020H4-7下述程序段执行后,存放器CX,Sl的内容是多少?ARRYDW20DUP(5)XORAX,AXMOVCX,LENGTHARRYMOVSI,SIZEARRY-TYPE解:(CX)=14H(SI)=26H4-8试定义一个结构,它应包括一个学生的以下信息:姓名、学号、及3门课程的成绩。然后给出3条机构预置语句,将3个学生的情况送入3个结构变量中。解:STUDSTRUC;定义一个结构,结构名为STUDNAMElDB;姓名字段NUMDB?;学号字段SCORDB3DUP(?);三门课程成绩字段STUDENDSDATASEGMENT;在数据段中通过三
5、个结构变量引用,并赋值STUDlSTUD;结构变量名STUDlSTUD2STUD;结构变量名STUD2STUD3STUD;结构变量名STUD3DATAENDS4-9试定义一条宏指令,它可以实现任一数据块的传送假设无地址重叠),其源地址、目的地址和块长度作为参数处理。解:根据要求,子程序的入口参数有:源数据区和目的数据区的首址以及数据块的大小(包含的字节数)。假设参数传递采用固定内存单元传递方式。SADR源数据区首地址;DADR目的数据区首地址;SLENG一一数据块长度。程序如下:SMOVEMACROSADR,DADR,SLENGASSUMECS;CODELDSSLSADRLESDLDADRMO
6、VCX,SLENGCLDCMPSI,DIJAMOVESTDADDSLCXDECSIADDDI,CXDECDIMOVE:MOVSBLOOPMOVERETENDM4-10设VARl和VAR2为字变量,LAB为标号,试判断以下指令的正误,并改正:(I)ADDVARlVA2(2)JNZVARl(3)SUBAL,VARl(4)JMPNEARLAB(5)JMPLABSI(6)MOVAL,VAR2解:(1)错,ADD的两个操作数不能同时为存储单元。改:MOVAX,VARlADDAX,VAR2错,JCC后面应该是标号,不应该是变量改:JNZLAB错,两个操作数不匹配改:SUBAX,VARl(4)错,缺少PTR
7、运算符改:JMPNEARPTRLAB(5)错,LAB与SI不能相加改:JMPFARPTRLAB或者JMPWORDPTRSI(6)错,操作数类型不匹配改:MOVAX,VAR24-11数据定义如下,问LI和L298等于多少?BlDB1,2,3,123B2DBO1.lEQU$Bl1.2EQUB2Bl解:Ll=$B1=70=7,L2=B2-Bl=6-0=64-12对于以下数据定义,指出以下指令的错误。AlDB?A2DB10KlEQU1024(I)MOVKl,AX(2) MOVAl,AX(3) MOVBX,AlMOVBX,1000(4) CMPAl,A2(5) KlEQU2048解:(I)KI为名称,表
8、示一立即数,不能做为目的操作数。(2)Al为字节型,类型不匹配(3)类型不匹配(4)源和目的操作数不能同为存储器操作数(5)对己经被EQU定义的Kl,在本程序段不能二次定义4-13试编程计算Z=5X+3Y+10.X,丫均放在数据段,其值由编程者自定。结果Z仍放在数据段。解:DATASEGMENTXDB10YDB5ZDW?DATAENDSSTACKSEGMENTPARASTACKSTACKSTACKCODEDW20HDUP(0)ENDSSEGMENTASSUMECS:CODE,DS:DATA,SS:STACKMAINPROCFARPUSHDSMOVAX,0PUSHAXSTART:MOVAX,DA
9、TAMOVDS,AXMOVAL,XMOVBL,YMULBL;X*5MOVDX,AX;转存至DXMOVAL,YMOVBL,3MULBL;Y*3,积在AX中ADDAL,OAHADDAX,DXMOVZ,AX;结果仍放数据段RETMAINENDPCODEENDSENDSTART4-14(略)4-15用查表法将存放于数据段中一个有序的十六进制数串(范围:OFH)翻译成ASSil码表仍放于数据段中.解:DATASEGMENTTABDB30H,31H,32H,36H,37HDB38H,39H,41H,45H,46HHEXDB6ASCDB?DATAENDSSTACKlSEGMENTPARAtATACK,DW2
10、OHDUP(O)STACKlENDSCODESEGMENTASSUMECSiCODE,DSiDATA,SS:STACKlBEGIN:MOVAX,DATAMOVDS,AXMOVBX,OFFSETTAB;设置ASCll码表的基地址在BX中XORAX,AXMOVAL,HEX;要查找的一位十六进制数在AL中ADDBX,AX;基址+偏移置即可计算出该十六进制数ASCII码存放地址MOVAUBX;该地址单元的内容即为要查找的ASCn码MOVASC,AL;存放ASCn码至ASC字节单元MOVAH,4CHINT21HCODEENDSENDBEGIN4-16试编写一程序,把X和Y中的大者存入BIG单元。假设X=
11、Y,那么把其中之一存入BIG单元。解:DATASEGMENTXDW1028YDW1446BIGDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,XMOVBX,YCMPAX,BXJGESTORE;取字数据X至AX;取字数据Y至BX;比拟(AX)和;假设(AX);假设(AX)1HLOOPDISPMAINENDPCODEENDSENDSTART4-21在数据段中存放有一字符串80个字符),以回车符CR结束。编写一程序统计此字符串的长度,并将它存入数据区LENTH单元,也显示在屏幕上。解:DATASEGME
12、NTSTR1DB4PIeaseinputthecharofASCIIandtheCRtoendthestring,ODHLENGTHDW?DATAENDSSTACKSEGMENTPARASTACK,STACK,DW20HDUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATASTAR1T:MOVAX,DATA;设置STR1的地址指针为BX;用DL统计字符个数MOVDS,AXLEABX,STR1MOVDL,0NEXT1:MOVAL,BX;取字符INCBXCMPAL1ODHJZEXIT;为零,那么是回车符,转EXlTCMPAL,30HJGENEXT;非零,那么
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 原理 第四 课后 习题 答案 潘名莲马争丁 庆生 编著
