电子科大教材-第五章作业解答

电子科大教材-第五章作业解答

ID:41464403

大小:64.92 KB

页数:6页

时间:2019-08-25

电子科大教材-第五章作业解答_第1页
电子科大教材-第五章作业解答_第2页
电子科大教材-第五章作业解答_第3页
电子科大教材-第五章作业解答_第4页
电子科大教材-第五章作业解答_第5页
资源描述:

《电子科大教材-第五章作业解答》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、3.程序如下:(但不是唯一答案)答案一:MOVBL,ALMOVCL,4ROLBL,CLANDBL,OFHMOVDL,AHMOVCL,4ROLDL,CLANDDL,OFHMOVCL,AHANDCL,OFHANDAL,OFH答案二:MOVDL,AHANDDL,OFOHMOVCL,4SHRDL,CLMOVBL,ALANDBL,OFOHMOVCL,4SHRBL,CLANDAL,OFHMOVCL,AHANDCL,OFH5.答:段内无条件转移指令针对的目标地址和JMP指令本身在同一个代码段内,跳转时仅修改IP寄存器,把目标地址的偏移量送到IP保存;段间无

2、条件转移指令针对的目标地址可以和JMP指令本身不在同一个代码段内,跳转时修改CS、IP两个寄存器,把FI标地址的段基值送CS保存,把目标地址的偏移量送IP保存。只用JMP指令无法实现分支,因为JMP指令会无条件的修改程序的执行流程,执行JMP指令后CPU下一条将要执行的指令地址是固定不变的,不会根据任何条件判断來决定是否转移。因此,仅使用JMP指令是无法实现分支结构的。如果要在程序中实现分支结构,必须使用条件转移指令。7.注意分析程序,首先注意到:TESTAL,OAAH这条指令用于实现第一个分支结构的判断条件。这条指令的含义是测试(AL)的第

3、1、3、6、7位屮有没有为“1”的数据位1)如果没有,即ZF=1,执行:ANDAL,OAAH这条指令把(AL)的第2、4、6、8位清0,由于1、3、5、7位本身就为0,所以这样处理后(AL)=0o然后,程序流程会转向分支的出口END1,保存结果。得出这个分支的结论:如果VAR的第1,3,5,7位中没有为“1”的数据位,那么(RES)=0o2)如果有,即ZF=O,程序流程转到NEXT入口这里有一条指令:JNSPLUS由这条指令实现第二个分支,其含义是判断(AL)最高位是否为11)如果为1,即SF=1,那么程序顺序执行:DECAL然后程序流程转向

4、分支出口END1,保存结果。得出这个分支的结论:如果VAR的第1,3,5,7位中有为“1”的数据位,并且第7位是“1”,那么(RES)=(AL)-12)如果为0,即SF=1,那么程序流程转移到PLUS入口:INCAL然后程序流程转向分支出口END1,保存结果得出这个分支的结论:如果VAR的第1,3,5,7位中有为“1”的数据位,并且第7位不是“1”,那么(RES)=(AL)+19.完整程序如下:(不是唯一正确答案,仅供参考)DATASEGMENTADW?BDW?CDW?BIGDW?ADRDW?DATAENDSSTACK1SEGMENTSTAC

5、KDW30HDUP(0)STACK1ENDSCODESEGMENTASSUMEDS:DATA,SS:STACK1,CS:CODEBEGIN:MOVAX,DATAMOVDS,AXMOVAX,ALEABX,AMOVCX,2MOVSI,2LOP1:CMPAX,A[SI]JG(G1MOVAX,AJSI]LEABX,A[SI]G1:ADDSI,2LOOPLOP1MOVBIG,AXMOVADR,BXMOVAH,4CHINT21HCODEENDSENDBEGIN11.完整程序如下:(不是唯一答案,仅作参考)DATASEGMENTDAB1DB?DAB2DB?

6、DATAENDSSTACK1DWSTACK1SEGMENTSTACK30HDUP(0)ENDSDS:DATA,SS:STACK1,CS:CODECODESEGMENTBEGIN:MOVAX,DATAMOVDS,AXLEASI,DAB1MOVCX,2LOP1:TEST[SI],1JNZNO1ADD[SI],1NO1:INCSILOOPLOP1MOVAH,4CHINT21HASSUMECODEENDSENDBEGIN15.解:首先读懂程序,仿佛这个程序模拟了一个十进制进位调整,其实不然,这种题目只能按照程序流程每步把它算好。累加十次,累加的数据按

7、顺序为:1,3,5,7,1,3,5,7,1,3按照顺序给出各次循环的处理:1)(AX)=0001H2)(AX)=0004H3)(AX)=0009H4)(AX)=OOOOH5)(AX)=0001H己经进入重复状态了6)(AX)=0004H7)(AX)=0009H8)(AX)=OOOOH9)(AX)=0001H10)(AX)=0004H程序段执行完毕后(AX)=04H如果把LOOP指令替换为LOOPNE指令,那么在第一次循环时就会退出循环,(AX)=0001H,(CX)=917.程序如下:(不是唯一答案)DATASEGMENTARYW10DUP(

8、?)DATAENDSSTACK1SEGMENTSTACKDW30HDUP(0)STACK1ENDS;AL中存放最大数,AH中存放最小数CODESEGMENTASSU

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

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

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