胡乾斌教材部分习题解答.doc

胡乾斌教材部分习题解答.doc

ID:54727179

大小:83.50 KB

页数:11页

时间:2020-04-20

胡乾斌教材部分习题解答.doc_第1页
胡乾斌教材部分习题解答.doc_第2页
胡乾斌教材部分习题解答.doc_第3页
胡乾斌教材部分习题解答.doc_第4页
胡乾斌教材部分习题解答.doc_第5页
资源描述:

《胡乾斌教材部分习题解答.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第一章1.5129=10000001B=81H;253=11111101B=FDH;21.125=10101.001B=15.2H18.6=10010.1001,1001,1001……B=12.999……H(无限循环小数,根据精度确定需要的位数)1.12由题得三者均为正数,所以原码、反码、补码相同,故x1=x2=x3=0101,0111B=57H=871.13该题与上题不同在均是负数,故原码、反码、补码相同的情况下,原数并不相同。第二章2.6最后一问:如果CPU使用两组寄存器,一般使用第0与第1

2、组,那么剩下的寄存器组对应的地址单元可作一般缓冲用,第0与第1组已用掉地址:00H—0FH,故而堆栈SP的初值可设定在0FH或以上。第三章3.6(1)A=57H,Cy=1(在符号位产生进位,进位标志位Cy=1),进位的1是丢掉,累加器只能存8位信息。有同学写成A=157H,Cy=0.(2)A=3BH,Cy=03.8SP=2FH,DPH=01H,DPL=23H,A=20H注意SP在每次的POP减一,故最终SP=2FH.(30H单元的前一单元不是29H)3.9堆栈(0AH)=34H,(0BH)=12

3、H,SP=0BH有的同学仅写DPTR的内容,是不够的,这里是将DPTR的内容压入栈中,但DPTR本身不代表堆栈。3.24Loop循环完成的是24位的加法,每步将带进位位Cy相加,同时影响进位位。故经过loop循环后R0指向22H单元,结果送原R0指向的地址单元。原来:(22H)=A0H(27H)=76H(21H)=90H(26H)=6FH(20H)=80H(25H)=A0HLoop循环:(22H)=17HCy=1(21H)=00HCy=1(20H)=20HCy=1之后,R0=23H,R1=28H

4、。因Cy=1,故(23H)=01H。所有地址单元只可存八位数,不可(21H)=160H.3.25A=10001100=8CH,执行乘以10的功能,因为A*2+A*2*2*2=A*10有的同学没有写出是乘以10的功能。3.26实现的如下逻辑运算[(P1.0∨P1.1)∧P1.2]∧(P1.3∨),其中以用户标志位F0来存储[(P1.0∨P1.1)∧P1.2]的结果。第四章4.5略有的同学有这样的指令:MOVR0,#2100H.R0只能存八位,故只能指向低位的地址区。有的同学逻辑搞反,不为零应该继续

5、循环,故:DJNZR2,LOOP就可以了,不需要太复杂。还有的同学传送方向搞反了,程序写成:MOVXA,@DPTRMOV@R0,A计数器初始值应该为21H.补充习题,有的同学忘做,可以简单回答:LJMP与LCALL的主要区别是未发生保护现场、恢复现场操作。4.8采用一种子程序的形式实现:ORG1000HMOVDPTR,#3001HMOVXA,@DPTRMOVB,A;也可用其它内部存储单元临时存放3001H的内容。MOVDPTR,#3000HMOVXA,@DPTRACALLSQRSUMCJNEA,

6、#10,EXE1SJMPSAVEDATAEXE1:JCADD10SUBBA,#10SJMPSAVEDATAADD10:ADDA,#10SAVEDATA:MOVDPTR,#3002HMOVX@DPTR,ADONE:SJMPDONESQRSUM:ADDA,B;该子程序以寄存器A与B传送参数值MOVB,AMULABRETEND该程序没有考虑若a+b>255,以及(a+b)2>255的情况下,实际的角度应该就这两方面进行放弃操作。但本题未说明出现这种情况如何情况,为简化程序中未写入这些情况的处理。4.9

7、循环加判断实现ORG1000HMOVDPTR,#1000HMOVR2,#99;本程序循环的地址指针已经从1001H单元开始,故循环次数减1MOVXA,@DPTRMOV30H,A;将当前值存入临时的30H单元LOOP:INCDPTRMOVXA,@DPTRSUBBA,30HJBACC.7,NEXTADDA,30H;恢复A中的值,因为最新的值刚才进行了减操作。MOV30H,ANEXT:DJNZR2,LOOPMOVA,30HMOVDPTR,#1100HMOVX@DPTR,AEND4.10ORG1000H

8、MOVDPTR,#2100HMOVR3,#100;总计数器MOVR0,#00;0计数器MOVR1,#00;正数计数器MOVR2,#00;负数计数器LOOP:MOVXA,@DPTRJZCOUNT0;以下是两次分支程序实现多分支程序JBACC.7,CTNEG;转入负数统计程序段CTPOS:INCR1SJMPDONECTNEG:INCR2SJMPDONECOUNT0:INCR0DONE:INCDPTRDJNZR3,LOOPEND该程序与4.2.7有些类似。4.12LOOP:MOVR0,#30HMOVR

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。