ImageVerifierCode 换一换
格式:DOC , 页数:6 ,大小:54KB ,
资源ID:6758481      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-6758481.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(32位汇编语言程序设计第6、7章习题答案.doc)为本站会员(jmydc)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

32位汇编语言程序设计第6、7章习题答案.doc

1、习 题 62指出下面转移指令的类型(相对近转移,相对短转移,间接转移) 。.DATAaddrStore DWORD ?.CODEagain:(3 instructions)jmp again; 短转移(200 instructions)jmp again ;近转移jmp addrStore; 段内间接转移jmp eax ; 段内间接转移jmp edi ; 段内或段间间接转移3代码段有以下指令:ADD EAX, EBXJNO L1JNC L2SUB EAX, EBXJNO L3JNC L4JMP SHORT L5如果 EAX 和 EBX 的内容如下:(1)EAX=0102147BH,EBX=12

2、0180DCH ;L1(2)EAX=12348756H,EBX=800080DCH ;L1(3)EAX=D0230000H,EBX=9FD0000H ;L3(4)EAX=94B70000H,EBX=B568000H ; L1指令执行完后,程序怎样转移?4假设 EAX 和 EBX 的内容是无符号数, ECX 和 EDX 的内容是有符号数,请用比较指令实现以下判断:(1)如果 EDX 的内容大于 ECX 的内容,则转去执行 L1;cmp edx, ecxjg L1(2)如果 EAX 的内容大于 EBX 的内容,则转去执行 L2;cmp eax, ebxja L2(3)如果 ECX=0,则转去执行

3、L3;cmp ecx, 0jz L3或jecxz L3(4)EAX EBX 是否会发生溢出,如果发生溢出则转去执行 L4;sub eax, ebxjo L4(5)如果 EBX 的内容小于 EAX 的内容,则转去执行 L5;cmp ebx, eaxjb L5(6)如果 ECX 的内容小于 EDX 的内容,则转去执行 L6。cmp ecx, edxjl L65已知 EAX=0000004FH,VALUE= FFFFFF38H。请指出下面每一个语句是否会引起转移?(a) cmp eax, valuejl dest; N(b) cmp eax, valuejb dest; Y(c) cmp eax,

4、04fhje dest ; Y(d) cmp eax, 79jne dest; N(e) cmp value,0jbe dest; N(f) cmp value,-200jge dest ;Y(g) cmp eax, 200js dest; y(h) add value,200jz dest; N6编写程序测试 STATUS 中的状态:如果 STATUS=0,则转去执行 L0;如果D0,D 3,D 5 位为 1 则转去执行 L1;如果 D31,D 29 为 0 则转去执行 L2;如果D15,D 14,D 13 为 1,则转去执行 L3。test status, FFFFHjz L0test s

5、tatus , 29H jne L1test status, C0000000Hjz L2test status, 00e00000Hjne L37指出下面每一个循环的循环次数:(a) mov ecx,10again: loop again10(b) mov ecx,1again: loop again1(c) mov ecx,0again: loop again4294967296(c) mov ecx,-1again: loop again4294967295习 题 71子 程 序 定 义 的 一 般 格 式 是 怎 样 的 ? 子 程 序 入 口 为 什 么 常 有 PUSH 指 令 、

6、 出 口 为什 么 有 POP 指 令 ? 下 面 的 程 序 段 有 什 么 不 妥 吗 ? 若 有 , 请 改 正 。crazy PROCpush ax ;删去xor ax,axxor dx,dxagain: add ax,bxadc dx,0inc bxinc bxloop again;增加 pop axretendp crazy ;crazy endp答:name proc;保存寄存器;指令;恢复寄存器retname endppush 指令和 pop 指令通常用于保护和恢复寄存器3下面的指令执行后的结果是什么?(3)ESP=0000F83AH,EAX=12345678HPUSH EAX

7、PUSHW 30POP BXPOP ECXECX=? ESP=? EAX=? BX=?答:esp=000083Ah-4-2+2+4=000083AH, bx=30, ecx=12345678H, eax 不变pushw 和 pushd 助记符强制汇编器生成 16 位或 32 位代码4假设主程序中有子程序调用语句:CALL Myproc。如果这条 call 指令所在地址是00402000h,esp=00406000h,这条 call 指令执行后,堆栈中保存的返回地址是多少?ESP=?答:返回地址:00402005hesp=00405ffchcall 的时候要把当前指令的下一个指令的 EIP 压栈

8、,以便执行完能返回接着下面的执行。然后把 EIP 设置成要调用的函数的地址。也就是说,call 之后,首先将下一条指令的地址保存在栈顶,然后设置 EIP 指向被调用程序代码开始处。5子程序返回值为 EAX,在程序的入口和返回处是否可以用 PUSHAD 和 POPAD 来保存和恢复寄存器?答:不可以9请按如下子程序说明编写子程序。;子程序功能:把用 ASCII 码表示的两位十进制数转换为对应二进制数;入口参数:DH=十位数的 ASCII 码,DL=个位数的 ASCII 码;出口参数:AL=对应的二进制数答:decTobin procpush cxand dh,0fh ;先转换十位数shl dh,

9、1 ;十位数乘以10(采用移位指令)mov ch,dhshl dh,1shl dh,1add dh,chand dl,0fh ;转换个位数add dh,dl ;十位数加个位数mov al,dh ;设置出口参数pop cxretdecTobin endp10写一个子程序,根据入口参数 AL=0/1/2,分别实现对大写字母转换成小写、小写转换成大写或大小写字母互换。欲转换的字符串在 string 中,用 0 表示结束。答:convert procmov ebx, 1cmp al, 0jne next;大写变小写A1: mov bl, stringebxinc ebxcmp bl, 41hjb A1

10、cmp bl, 5ahja A1xor bl, 20hmov stringebx,blcmp bl, 20hjz endprojmp A1next: cmp al, 1jne next1;小写变大写A2: mov bl, stringebxinc ebxcmp bl, 61hjb A2cmp bl, 7ahja A2xor bl, 20hmov stringebx,blcmp bl, 20hjz endprojmp A2next1:cmp al, 2jne endpro;大小写互换A3: mov bl, stringebxinc ebxcmp bl, 41hjb A3cmp bl, 5ahjb

11、e c1cmp bl, 61hjb A3cmp bl, 7ahja A3C1: xor bl, 20hmov stringebx,blcmp bl, 20hjz endprojmp A2endpro:retconvert endp18编写子程序判断一个字符串是不是十进制字符串。如果是,EAX=0;如果不是,EAX=1。答:isDecDigit proc uses edx,char:byte;判断是否为十进制字符;入口参数 char=输入字符的 ASCII 码;出口参数 eax=0 是十进制字符,eax=1 不是十进制字符xor eax, eaxmov edx, charcmp edx,0jb L1cmp edx,9jbe L2L1:mov eax, 1L2:retisDecDigit endp

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报