实验二  循环程序设计_第1页
实验二  循环程序设计_第2页
实验二  循环程序设计_第3页
实验二  循环程序设计_第4页
实验二  循环程序设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验二 循环程序设计 一、实验目的 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) 对源程序进行编译、连接、运行。 五、实验报告的要求 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),每个寄存器都有自己的名称,可独立存取。程序员可利用数据寄存器的 这种“可分可合”的特性,灵活地处理字/字节的信息。 寄存器 AX 和 AL 通常称为累加器(Accumulator),用累加器进行的操作可能需要更少 时间。累加器可用于乘、除、输入/输出等操作,它们的使用频率很高;寄存器 BX 称为基 地址寄存器(Base Register)。它可作为存储器指针来使用; 寄存器 CX 称为计数寄存器( Count Register)。在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移 多位时,要用 CL 来指明移位的位数;寄存器 DX 称为数据寄存器(Data Register)。在进 行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放 I/O 的端口地址。 在 16 位 CPU 中,AX、BX、CX 和 DX 不能作为基址和变址寄存器来存放存储单元的地址 ,但在 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 位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作 数和运算结果。它们可作一般的存储器指针使用。在字符串操作指令的执行过程中,对它 们有特定的要求,而且还具有特殊的功能。 3) 总结计数控制循环程序的设计方法。 1.计数控制型循环程序设计 这种程序设计方法直观,方便,但必须在循环次数已知的的条件下才能采用。 2.条件控制型循环程序设计 在实际工作中,有时循环次数无法事先确定,但循环次数与问题中的某些条件有关,这 时就应根据给定的条件满足与否来判断是否结束循环。 3.多重循环程序设计 在实际工作中,一个循环结构常常难以解决实际应用问题,所以人们引入了多重循环。 这些循环是一层套一层的,因此又称为循环的嵌套。 注意: (1)内层循环必须完全包含于外层循环内,不允许循环结构交叉。 (2)转移指令只能从循环结构内转出或可在同层循环内转移,而不能从一个循环结构外 转入该循环结构内。 4) 说明实验过程。 六、思考题 如果把清 0 改成置 FFH,程序又应如何修改? 如果单元以字为单位,程序又应如何修改? 附:DEBUG 调试程序 DEBUG.EXE 程序是专门为分析、研制和开发汇编语言程序而设计的一种调试工具,具有 跟踪程序执行、观察中间运行结果、显示和修改寄存器或存储单元内容等多种功能。它能 使程序设计人员或用户触及到机器内部,因此可以说它是 80X86CPU 的心灵窗口,也是我们 学习汇编语言必须掌握的调试工具。 1)DEBUG 程序使用 在 DOS 提示符下键入命令: CDEBUG 盘符:路径文件名.EXE参数 1参数 2 这时屏幕上出现 DEBUG 的提示符“-”,表示系统在 DEBUG 管理之下,此时可以用 DEBUG 进行程序调试。若所有选项省略,仅把 DEBUG 装入内存,可对当前内存中的内容进行调试, 或者再用 N 和 L 命令,从指定盘上装入要调试的程序;若命令行中有文件名,则 DOS 把 DEBUG 程序调入内存后,再由 DEBUG 将指定的文件名装入内存。 2)DEBUG 的常用命令 (1)汇编命令 A 格式:A起始地址 功能:将输入源程序的指令汇编成目标代码并从指定地址单元开始存放。若缺省起始 地址,则从当前 CS:100 地址开始存放。A 命令按行汇编,主要是用于小段程序的汇编或 对目标程序的修改。 (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=138E 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 个单元的内容,每行 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 按内容表的内容修改从起始地址开始的多个存储单元内容,即用内容表 指定的内容来代替存储单元当前内容。 例如: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“-”提示符。如果在修改过程中,将空格键换成按“-”键,则表示可以 修改前一个单元的内容。 (6)运行命令 G 格式:G=起始地址第一断点地址第二断点地址 功能:CPU 从指定起始地址开始执行,依次在第一、第二等断点处中断。若缺省起始 地址,则从当前 CS:IP 指示地址开始执行一条指令。最多可设置 10 个断点。 (7)跟踪命令 T 格式:T=起始地址正整数 功能:从指定地址开始执行正整数条指令,若缺省正整数,表示执行一条指 令,若两项都缺省,表示从当前 CS:IP 指示地址开始执行一条指令。 (8)指定文件命令 N 格式:N 功能:指定即将调入内存或从内存写入磁盘的文件名。该命令应该用在 L 命令和 W 命 令之前。 (9)装入命令 L 格式 1:L起始地址盘符号扇区号扇区数 格式 2:L起始地址 功能:格式 1 根据盘符号,将指定扇区的内容装入到指定起始地址的存储区中。 格式 2 将 N 命令指出的文件装入到指定起始地址的存储区中,若省略起始地址,则装 入到 CS:100 处或按原来文件定位约定装入到相应位置。 (10)写磁盘命令 W 格式 1:W驱动器号 格式 2:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论