汇编语言课后习题答案 王爽主编

汇编语言课后习题答案 王爽主编

ID:19633907

大小:81.23 KB

页数:49页

时间:2018-10-04

汇编语言课后习题答案 王爽主编_第1页
汇编语言课后习题答案 王爽主编_第2页
汇编语言课后习题答案 王爽主编_第3页
汇编语言课后习题答案 王爽主编_第4页
汇编语言课后习题答案 王爽主编_第5页
资源描述:

《汇编语言课后习题答案 王爽主编》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、检测点9.2补全编程,利用jcxz指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。assumecs:codecodesegmentstart:movax,2000hmovds,axmovbx,0s:movch,0movcl,[bx]jcxzok;当cx=0时,CS:IP指向OKincbxjmpshortsok:movdx,bxmovax,4c00hint21hcodeendsendstart检测点9.3补全编程,利用loop指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。assumecs:codeco

2、desegmentstart:movax,2000hmovds,axmovbx,0s:movcl,[bx]movch,0inccxincbxloopsok:decbxmovdx,bxmovax,4c00hint21hcodeendsendstart书P101,执行loops时,首先要将(cx)减1。“loop标号”相当于deccxif((cx)≠0)jmpshort标号检测点10.1补全程序,实现从内存1000:0000处开始执行指令。assumecs:codestacksegmentdb16dup(0)stackendscodesegmentstart:movax,stackmov

3、ss,axmovsp,16movax,1000hpushaxmovax,0pushaxretfcodeendsendstart执行reft指令时,相当于进行:popippopcs根据栈先进后出原则,应先将段地址cs入栈,再将偏移地址ip入栈。检测点10.3下面的程序执行后,ax中的数值为多少?内存地址机器码汇编指令执行后情况1000:0b80000movax,0ax=0,ip指向1000:31000:39a09000010callfarptrspopcs,popip,ip指向1000:91000:840incax1000:958s:popaxax=8haddax,axax=10hpo

4、pbxbx=1000haddax,bxax=1010h用debug进行跟踪确认,“callfarptrs”是先将该指令后的第一个字节段地址cs=1000h入栈,再将偏移地址ip=8h入栈,最后转到标号处执行指令。出栈时,根据栈先进后出的原则,先出的为ip=8h,后出的为cs=1000h检测点10.4下面的程序执行后,ax中的数值为多少?内存地址机器码汇编指令执行后情况1000:0b80600movax,6ax=6,ip指向1000:31000:3ffd0callaxpopip,ip指向1000:61000:540incax1000:658movbp,spbp=sp=fffehadda

5、x,[bp]ax=[6+ds:(fffeh)]=6+5=0bh用debug进行跟踪确认,“callax(16位reg)”是先将该指令后的第一个字节偏移地址ip入栈,再转到偏移地址为ax(16位reg)处执行指令。检测点10.5(1)下面的程序执行后,ax中的数值为多少?assumecs:codestacksegmentdw8dup(0)stackendscodesegmentstart:movax,stackmovss,axmovsp,16movds,axmovax,0callwordptrds:[0eh]incaxincaxincaxmovax,4c00hint21hcodeend

6、sendstart推算:执行callwordptrds:[0eh]指令时,先cs入栈,再ip=11入栈,最后ip转移到(ds:[0eh])。(ds:[0eh])=11h,执行incax……最终ax=3题中特别关照别用debug跟踪,跟踪结果不一定正确,但还是忍不住去试试,看是什么结果。根据单步跟踪发现,执行callwordptrds:[0eh]指令时,显示ds:[0eh]=065D。ds:0000~ds:0010不是已设置成stack数据段了嘛,不是应该全都是0的嘛。于是进行了更详细的单步跟踪,发现初始数据段中数据确实为0,但执行完movss,ax;movsp,16这两条指令后,数据

7、段中数据发生改变。这是为什么呢?中断呗~~~~检测点10.5(2)下面的程序执行后,ax和bx中的数值为多少?assumecs:codesgstacksegmentdw8dup(0)stackendscodesgsegmentstart:movax,stackmovss,axmovsp,10hmovwordptrss:[0],offsets;(ss:[0])=1ahmovss:[2],cs;(ss:[2])=cscalldwordptrss:[0];cs入

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

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

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