




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验二 循环程序设计一实验目的:(1)掌握循环程序设计方法。(2)掌握循环程序的结构及循环程序的设计,调试方法。(3)学习逻辑运算指令的用法。二实验内容:(1)编程计算1-100的和(初始化为100的循环);(2)编程计算S=1*2+2*3+3*4+N*(N+1)直到N200为止,并将结果由屏幕上显示出来;(3) 编程一程序求级数1*1+2*2+3*3+的前5项和及刚好大于1000的项数N。 1、编译: c:masm .asm2、链接: c:link .obj3、调试: c:debug .exe4、运行: c: .exe(1)1、编译: C:masm 2-1.asmC:UsersAdministratorcd C:masmC:masmmasm 2-1Microsoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.Object filename 2-1.OBJ:Source listing NUL.LST:Cross-reference NUL.CRF: 50390 + 415114 Bytes symbol space free 0 Warning Errors 0 Severe ErrorsC:masm2、链接: c:link 2-1.objC:masmlink 2-1Microsoft (R) Overlay Linker Version 3.65Copyright (C) Microsoft Corp 1983-1988. All rights reserved.Run File 2-1.EXE:List File NUL.MAP:Libraries .LIB:LINK : warning L4021: no stack segmentC:masm3、调试: c:debug 2-1.exe1)、先用命令U反汇编整个程序,查看每条指令的物理地址,其显示内容的含义为:内存地址 指令代码 反汇编的程序代码C:masmdebug 2-1.exe-u142F:0000 B82E14 MOV AX,142E 数据段的首地址是:142E代码段的首地址是:142F142F:0003 8ED8 MOV DS,AX142F:0005 B80000 MOV AX,0000142F:0008 B96400 MOV CX,0064142F:000B 03C1 ADD AX,CX142F:000D E2FC LOOP 000B142F:000F A30000 MOV 0000,AX142F:0012 B44C MOV AH,4C142F:0014 CD21 INT 21142F:0016 06 PUSH ES142F:0017 3E DS:142F:0018 8B16083E MOV DX,3E08142F:001C 26 ES:142F:001D 894706 MOV BX+06,AX2)、从上一步结果中找到数据段的首地址142E,查看里面存储的数据,数据段从首地址142E中没有存储:-d 142E:0000142E:0000 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .142E:0010 B8 2E 14 8E D8 B8 00 00-B9 64 00 03 C1 E2 FC A3 .d.142E:0020 00 00 B4 4C CD 21 06 3E-8B 16 08 3E 26 89 47 06 .L.!.&.G.142E:0030 26 89 57 08 B8 FF FF 5E-8B E5 5D C3 55 8B EC 83 &.W.U.142E:0040 EC 02 57 56 8B 76 04 8A-04 2A E4 8B F8 03 FE 80 .WV.v.*.142E:0050 7E 06 40 72 11 80 7D FF-80 72 0B 8A 5D FF 2A FF .r.r.*.142E:0060 38 A7 BA 42 75 1D 8A 05-38 46 06 74 26 EB 2D 90 8.Bu.8F.t&.-.142E:0070 46 80 7C FF 80 72 0D 46-8A 5C FF 2A FF 38 BF BA F.|.r.F.*.8.3)、从反汇编地址中找到把数据段的首地址142E传给寄存器AX的指令地址:0005,用G命令执行到地址0005-g0005AX=142E BX=0000 CX=0026 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=0005 NV UP EI PL NZ NA PO NC142F:0005 B80000 MOV AX,0000然后用T命令单步执行,看寄存器AX,DS,ES的内容的变化-tAX=0000 BX=0000 CX=0026 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=0008 NV UP EI PL NZ NA PO NC142F:0008 B96400 MOV CX,0064-tAX=0000 BX=0000 CX=0064 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=000B NV UP EI PL NZ NA PO NC142F:000B 03C1 ADD AX,CX-tAX=0064 BX=0000 CX=0064 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=000D NV UP EI PL NZ NA PO NC142F:000D E2FC LOOP 000B-tAX=0064 BX=0000 CX=0063 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=000B NV UP EI PL NZ NA PO NC142F:000B 03C1 ADD AX,CXAX=00C7 BX=0000 CX=0063 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=000D NV UP EI PL NZ NA PO NC142F:000D E2FC LOOP 000B-tAX=00C7 BX=0000 CX=0062 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=000B NV UP EI PL NZ NA PO NC142F:000B 03C1 ADD AX,CX4)然后直接G命令运行完毕。-gProgram terminated normally4、运行 2-1.exe,完全执行程序,最后再查看数据段最后的结果:-d 142E:0,f142E:0000 BA 13 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .-Q(2)1、编译: C:masm 2-2.asmC:masmmasm 2-2Microsoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.Object filename 2-2.OBJ:Source listing NUL.LST:Cross-reference NUL.CRF: 50390 + 415114 Bytes symbol space free 0 Warning Errors 0 Severe ErrorsC:masm2、链接: c:link 2-2.objC:masmlink 2-2Microsoft (R) Overlay Linker Version 3.65Copyright (C) Microsoft Corp 1983-1988. All rights reserved.Run File 2-2.EXE:List File NUL.MAP:Libraries .LIB:LINK : warning L4021: no stack segmentC:masm3、调试: c:debug 2-2.exe1)、先用命令U反汇编整个程序,查看每条指令的物理地址,其显示内容的含义为:内存地址 指令代码 反汇编的程序代码C:masmdebug 2-2.exe-u142F:0000 B82E14 MOV AX,142E数据段的首地:142E代码段的首地址:142F142F:0003 8ED8 MOV DS,AX142F:0005 B80000 MOV AX,0000142F:0008 C70600000100 MOV WORD PTR 0000,0001142F:000E C70602000000 MOV WORD PTR 0002,0000142F:0014 813E0000C800 CMP WORD PTR 0000,00C8142F:001A 7715 JA 0031142F:001C A10000 MOV AX,0000142F:001F 8BD8 MOV BX,AX2)、从上一步结果中找到数据段的首地址142E,查看里面存储的数据,数据段从首地址142E开始没有存储-d 142E:0000142E:0000 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .142E:0010 B8 2E 14 8E D8 B8 00 00-C7 06 00 00 01 00 C7 06 .142E:0020 02 00 00 00 81 3E 00 00-C8 00 77 15 A1 00 00 8B .w.142E:0030 D8 05 01 00 F7 E3 01 06-02 00 83 06 00 00 01 EB .142E:0040 E3 8D 16 02 00 B4 02 CD-21 B4 4C CD 21 03 FE 80 .!.L.!.142E:0050 7E 06 40 72 11 80 7D FF-80 72 0B 8A 5D FF 2A FF .r.r.*.142E:0060 38 A7 BA 42 75 1D 8A 05-38 46 06 74 26 EB 2D 90 8.Bu.8F.t&.-.142E:0070 46 80 7C FF 80 72 0D 46-8A 5C FF 2A FF 38 BF BA F.|.r.F.*.8. 3)、从反汇编地址中找到把数据段的首地址142E传给寄存器AX的指令地址:0005,用G命令执行到地址0005-g005AX=142E BX=0000 CX=004D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=0005 NV UP EI PL NZ NA PO NC142F:0005 B80000 MOV AX,0000用T命令单步执行,看寄存器AX,DS,ES的内容的变化-tAX=0000 BX=0000 CX=004D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=0008 NV UP EI PL NZ NA PO NC142F:0008 C70600000100 MOV WORD PTR 0000,0001 DS:0000=0000-tAX=0000 BX=0000 CX=004D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=000E NV UP EI PL NZ NA PO NC142F:000E C70602000000 MOV WORD PTR 0002,0000 DS:0002=0000-tAX=0000 BX=0000 CX=004D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=0014 NV UP EI PL NZ NA PO NC142F:0014 813E0000C800 CMP WORD PTR 0000,00C8 DS:0000=0001-tAX=0000 BX=0000 CX=004D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=001A NV UP EI NG NZ AC PE CY142F:001A 7715 JA 0031-tAX=0000 BX=0000 CX=004D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=001C NV UP EI NG NZ AC PE CY142F:001C A10000 MOV AX,0000 DS:0000=00014)然后直接G命令运行完毕-gpProgram terminated normall-r;用R命令查看一下各个寄存器的内容:-rAX=0000 BX=0000 CX=004D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=001C NV UP EI NG NZ AC PE CY142F:001C A10000 MOV AX,0000 DS:0000=00C9 4、运行 2-2.exe,完全执行程序,最后再查看数据段最后的结果:-d 142E:0,f142E:0000 C9 00 70 4D 00 00 00 00-00 00 00 00 00 00 00 00 .pM.-Q(3)1、编译:C:masm 2-3.asmC:masmmasm 2-3Microsoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.Object filename 2-3.OBJ:Source listing NUL.LST:Cross-reference NUL.CRF: 50390 + 415114 Bytes symbol space free 0 Warning Errors 0 Severe ErrorsC:masm 2、链接: c:link 2-3.objC:masmlink 2-3Microsoft (R) Overlay Linker Version 3.65Copyright (C) Microsoft Corp 1983-1988. All rights reserved.Run File 2-3.EXE:List File NUL.MAP:Libraries .LIB:LINK : warning L4021: no stack segment 3、调试: c:debug 2-3.exe1)、先用命令U反汇编整个程序,查看每条指令的物理地址,其显示内容的含义为:内存地址 指令代码 反汇编的程序代码C:masmdebug 2-3.exe-u142F:0000 B82E14 MOV AX,142E数据段的首地:142E代码段的首地址:142F142F:0003 8ED8 MOV DS,AX142F:0005 C70602000000 MOV WORD PTR 0002,0000142F:000B C70600000000 MOV WORD PTR 0000,0000142F:0011 B90100 MOV CX,0001142F:0014 BB0000 MOV BX,0000142F:0017 8BC1 MOV AX,CX142F:0019 F7E1 MUL CX142F:001B 03D8 ADD BX,AX142F:001D FF060000 INC WORD PTR 0000-2)、从上一步结果中找到数据段的首地址142E,查看里面存储的数据,数据段从首地址142E开始没有存储:-d 142E:0000142E:0000 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .142E:0010 B8 2E 14 8E D8 C7 06 02-00 00 00 C7 06 00 00 00 .142E:0020 00 B9 01 00 BB 00 00 8B-C1 F7 E1 03 D8 FF 06 00 .142E:0030 00 83 3E 00 00 05 74 0B-81 FB E8 03 77 0B 83 C1 .t.w.142E:0040 01 EB E4 89 1E 02 00 EB-DE 89 0E 00 00 B4 4C CD .L.142E:0050 21 06 40 72 11 80 7D FF-80 72 0B 8A 5D FF 2A FF !.r.r.*.142E:0060 38 A7 BA 42 75 1D 8A 05-38 46 06 74 26 EB 2D 90 8.Bu.8F.t&.-.142E:0070 46 80 7C FF 80 72 0D 46-8A 5C FF 2A FF 38 BF BA F.|.r.F.*.8.3)、从反汇编地址中找到把数据段的首地址142E传给寄存器AX的指令地址:0005,用G命令执行到地址0005 -g0005AX=142E BX=0000 CX=0051 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=0005 NV UP EI PL NZ NA PO NC142F:0005 C70602000000 MOV WORD PTR 0002,0000 DS:0002=0000然后用T命令单步执行,看寄存器AX,DS,ES的内容的变化-tAX=142E BX=0000 CX=0051 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=000B NV UP EI PL NZ NA PO NC142F:000B C70600000000 MOV WORD PTR 0000,0000 DS:0000=0000-tAX=142E BX=0000 CX=0051 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=0011 NV UP EI PL NZ NA PO NC142F:0011 B90100 MOV CX,0001-tAX=142E BX=0000 CX=0001 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=0014 NV UP EI PL NZ NA PO NC142F:0014 BB0000 MOV BX,0000-tAX=142E BX=0000 CX=0001 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=0017 NV UP EI PL NZ NA PO NC142F:0017 8BC1 MOV AX,CX-tAX=0001 BX=0000 CX=0001 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=0019 NV UP EI PL NZ NA PO NC142F:0019 F7E1 MUL CX-tAX=0001 BX=0000 CX=0001 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=142E ES=141E SS=142E CS=142F IP=001B NV UP EI PL NZ NA PO NC142F:001B 03D8 ADD BX,AX4)然后直接G命令运行完毕-gProgram term
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州省计量测试院参加第十三届贵州人才博览会引才4人考前自测高频考点模拟试题及参考答案详解
- 2025年中国地质调查局西安矿产资源调查中心招聘(26人)模拟试卷及答案详解(历年真题)
- 2025河南明珠集团招聘8人考前自测高频考点模拟试题及答案详解(名师系列)
- 2025第十三届贵州人才博览会贵阳幼儿师范高等专科学校引进高层次及急需紧缺人才考前自测高频考点模拟试题及答案详解(各地真题)
- 2025辽宁锦州市教育局所属学校赴高校招聘教师24人模拟试卷及答案详解参考
- 2025年西安经开第七小学招聘数学教师考前自测高频考点模拟试题附答案详解(完整版)
- 2025年福建省福州市鼓楼区总医院成员单位招聘18人考前自测高频考点模拟试题及参考答案详解
- 2025年东风公司全球博士招募笔试题库历年考点版附带答案详解
- 2025年安庆市第二人民医院招聘2人考前自测高频考点模拟试题及答案详解(名校卷)
- 2025安徽六安市人民医院招聘69人考前自测高频考点模拟试题有答案详解
- 2025年“国学小名士”知识线上竞答题库500题(含答案)
- 脏腑手法调理培训课件
- 2025年度宁波法院面向全市基层法院公开遴选员额法官5人考试参考题库及答案解析
- 酒店消防安全培训课件
- 2025年人工智能市场渠道拓展策略方案
- 气血两虚日常护理常规
- Unit 6 A Day in the Life 大单元整体教学分析教案-2025-2026人教版七年级英语上册
- GJB827B--2020军事设施建设费用定额
- GB/T 20716.1-2025道路车辆牵引车和挂车之间的电连接器(7芯)第1部分:24 V标称电压车辆的制动系统和行走系的连接
- 2025年第十七届广东省中学生天文知识竞赛试题(含答案)
- 小学生新能源汽车
评论
0/150
提交评论