实验二 循环程序设计new.doc

上传人:marr****208 文档编号:146253037 上传时间:2020-09-28 格式:DOC 页数:10 大小:182KB
返回 下载 相关 举报
实验二 循环程序设计new.doc_第1页
第1页 / 共10页
实验二 循环程序设计new.doc_第2页
第2页 / 共10页
实验二 循环程序设计new.doc_第3页
第3页 / 共10页
实验二 循环程序设计new.doc_第4页
第4页 / 共10页
实验二 循环程序设计new.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《实验二 循环程序设计new.doc》由会员分享,可在线阅读,更多相关《实验二 循环程序设计new.doc(10页珍藏版)》请在金锄头文库上搜索。

1、实验二 循环程序设计一、实验目的 1) 加深对循环结构的理解。 2) 掌握循环程序的设计方法。 二、实验内容 将从3000H内存单元开始的100个字节存储单元全部清0。 要求:先在在DEBUG调试状态下进行,然后在dos下进行masm和link进行。过程包括汇编程序、运行程序、检查结果。 三、实验设备 PC机一台四、实验步骤 1) 输入源程序并检查无误。 2) 对内存单元3000H开始的100个存储单元用E命令输入任意数。 3) 程序用DEBUG的T命令单步跟踪执行。4) 程序用DEBUG的G命令执行。5) 用D命令检查执行结果。 6) 用宏汇编格式写源程序。7) 对源程序进行编译、连接、运行

2、。五、实验报告的要求 1) 列出源程序。 2) 对程序中用到的寄存器说明其功能。1、数据寄存器数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。对低16位数据的存取,不会影响高16位的数据。这些低16位寄存器分别命名为:AX、BX、CX和DX,它和先前的CPU中的寄存器相一致。4个16位寄存器又可分割成8个独立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每个寄存器都有自己的名称,可独立存取。程序员可利用数据寄存器的这种“可分可合”的特性,

3、灵活地处理字/字节的信息。寄存器AX和AL通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。累加器可用于乘、除、输入/输出等操作,它们的使用频率很高;寄存器BX称为基地址寄存器(Base Register)。它可作为存储器指针来使用; 寄存器CX称为计数寄存器(Count Register)。在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用CL来指明移位的位数;寄存器DX称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。在16位CPU中,AX、BX、CX和DX不能作为

4、基址和变址寄存器来存放存储单元的地址,但在32位CPU中,其32位寄存器EAX、EBX、ECX和EDX不仅可传送数据、暂存数据保存算术逻辑运算结果,而且也可作为指针寄存器,所以,这些32位寄存器更具有通用性。2、变址寄存32位CPU有2个32位通用寄存器ESI和EDI。其低16位对应先前CPU中的SI和DI,对低16位数据的存取,不影响高16位的数据。寄存器ESI、EDI、SI和DI称为变址寄存器(Index Register),它们主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。变址寄存器不可分割成8位寄存器。作为通用寄存器

5、,也可存储算术逻辑运算的操作数和运算结果。它们可作一般的存储器指针使用。在字符串操作指令的执行过程中,对它们有特定的要求,而且还具有特殊的功能。3) 总结计数控制循环程序的设计方法。 1.计数控制型循环程序设计这种程序设计方法直观,方便,但必须在循环次数已知的的条件下才能采用。2.条件控制型循环程序设计在实际工作中,有时循环次数无法事先确定,但循环次数与问题中的某些条件有关,这时就应根据给定的条件满足与否来判断是否结束循环。3.多重循环程序设计 在实际工作中,一个循环结构常常难以解决实际应用问题,所以人们引入了多重循环。这些循环是一层套一层的,因此又称为循环的嵌套。注意:(1)内层循环必须完全

6、包含于外层循环内,不允许循环结构交叉。(2)转移指令只能从循环结构内转出或可在同层循环内转移,而不能从一个循环结构外转入该循环结构内。4) 说明实验过程。六、思考题如果把清0改成置FFH,程序又应如何修改?如果单元以字为单位,程序又应如何修改?附:DEBUG调试程序 DEBUG.EXE程序是专门为分析、研制和开发汇编语言程序而设计的一种调试工具,具有跟踪程序执行、观察中间运行结果、显示和修改寄存器或存储单元内容等多种功能。它能使程序设计人员或用户触及到机器内部,因此可以说它是80X86CPU的心灵窗口,也是我们学习汇编语言必须掌握的调试工具。 1)DEBUG程序使用在DOS提示符下键入命令:

7、CDEBUG 盘符:路径文件名.EXE参数1参数2 这时屏幕上出现DEBUG的提示符“-”,表示系统在DEBUG管理之下,此时可以用DEBUG进行程序调试。若所有选项省略,仅把DEBUG装入内存,可对当前内存中的内容进行调试,或者再用N和L命令,从指定盘上装入要调试的程序;若命令行中有文件名,则DOS把DEBUG程序调入内存后,再由DEBUG将指定的文件名装入内存。2)DEBUG的常用命令(1)汇编命令 A格式:A起始地址功能:将输入源程序的指令汇编成目标代码并从指定地址单元开始存放。若缺省起始地址,则从当前CS:100地址开始存放。A命令按行汇编,主要是用于小段程序的汇编或对目标程序的修改。

8、 (2)反汇编命令 U 格式1:U=起始地址 格式2:U=起始地址结束地址|字节数 功能:格式1从指定起始地址处开始将32个字节的目标代码转换成汇编指令形式,缺省起始地址,则从当前地址CS:IP开始。 格式2将指定范围的内存单元中的目标代码转换成汇编指令。(3)显示、修改寄存器命令 R格式:R寄存器名功能:若给出寄存器名,则显示该寄存器的内容并可进行修改。缺省寄存器名,则按以下格式显示所有寄存器的内容及当前值(不能修改)。 AX=0000 BX=0004 CX=0020 DX=0000 SP=0080 BP=0000 SI=0000 DI=0000 DS=3000 ES=23A0 CS=138

9、E IP=0000 NV UP DI PL NZ NA PO NC 138E:0000 MOV AX,1234 -R AX ;输入命令 AX 0014 ;显示AX的内容 : ;供修改,不修改按回车。 若对标志寄存器进行修改,输入:-RF 屏幕显示如下信息,分别表示OF、DF、IF、SF、ZF、AF、PF、CF的状态。 NV UP DI PL NZ NA PO NC不修改按回车键。要修改需个别输入一个或多个此标志的相反值,再按回车键。R命令只能显示、修改16位寄存器。(4)显示存储单元命令 D格式1:D起始地址 格式2:D起始地址结束地址|字节数 功能:格式1从起始地址开始按十六进制显示80H个

10、单元的内容,每行16个单元,共8行,每行右边显示16个单元的ASCII码,不可显示的ASCII码则显示“”。格式2显示指定范围内存储单元的内容,其他显示方式与格式1一样。如果缺省起始地址或地址范围,则从当前的地址开始按格式1显示。例如:-D 200;表示从DS:0200H开始显示128个单元内容-D 100 120;表示显示DS:0100-DS:0120单元的内容 说明:在DEBUG中,地址表示方式有如下形式: 段寄存器名:相对地址,如:DS:100段基值:偏移地址(相对地址),如:23A0:1500(5)修改存储单元命令 E格式1:E起始地址 内容表 格式2:E地址 功能:格式1按内容表的内

11、容修改从起始地址开始的多个存储单元内容,即用内容表指定的内容来代替存储单元当前内容。例如:E DS:0100 VAR 12 34表示从DS:0100 为起始单元的连续五个字节单元内容依次被修改为V、A、R、12H、34H。格式2是逐个修改指定地址单元的当前内容。如:E DS:0010 156F:0010 41.5F其中156F:0010单元原来的值是41H,5FH为输入的修改值。若只修改一个单元的内容,这时按回车键即可;若还想继续修改下一个单元内容,此时应按空格键,就显示下一个单元的内容,需修改就键入新的内容,不修改再按空格跳过,如此重复直到修改完毕,按回车键返回DEBUG“-”提示符。如果在

12、修改过程中,将空格键换成按“-”键,则表示可以修改前一个单元的内容。(6)运行命令 G格式:G=起始地址第一断点地址第二断点地址功能:CPU从指定起始地址开始执行,依次在第一、第二等断点处中断。若缺省起始地址,则从当前CS:IP指示地址开始执行一条指令。最多可设置10个断点。(7)跟踪命令 T格式:T=起始地址正整数功能:从指定地址开始执行正整数条指令,若缺省正整数,表示执行一条指令,若两项都缺省,表示从当前CS:IP指示地址开始执行一条指令。(8)指定文件命令 N 格式:N功能:指定即将调入内存或从内存写入磁盘的文件名。该命令应该用在L命令和W命令之前。(9)装入命令 L 格式1:L起始地址

13、盘符号扇区号扇区数 格式2:L起始地址 功能:格式1根据盘符号,将指定扇区的内容装入到指定起始地址的存储区中。格式2将N命令指出的文件装入到指定起始地址的存储区中,若省略起始地址,则装入到CS:100处或按原来文件定位约定装入到相应位置。(10)写磁盘命令 W格式1:W驱动器号格式2:W起始地址 功能:格式1把指定地址开始的内容数据写到磁盘上指定的扇区中。格式2将起始地址的BX10000H+CX个字节内容存放到由N命令指定的文件中。在格式2的W命令之前,除用N命令指定存盘的文件名外,还必须将要写的字节数用R命令送入BX和CX中。(11)退出命令 Q 格式:Q 功能:退出DEBUG,返回到操作系统。 以上介绍的是DEBUG常用命令,其他命令请参考有关书籍。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号