北京理工汇编语言实验四实验报告.doc_第1页
北京理工汇编语言实验四实验报告.doc_第2页
北京理工汇编语言实验四实验报告.doc_第3页
北京理工汇编语言实验四实验报告.doc_第4页
北京理工汇编语言实验四实验报告.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

班级:05211102 学号:1120111306 姓名:庞珂 汇编语言实验四实验报告 分支和循环程序设计实验(设计性实验) 班级:05211102 姓名:庞珂 学号:1120111306 日期:2013.9.10早8:30:0011:30 分支和循环程序设计实验 (设计性实验)一、实验要求和目的1熟悉汇编语言程序设计结构;2熟悉汇编语言分支程序基本指令的使用方法;3掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法;4了解汇编语言循环程序设计的基本流程;5熟悉汇编语言循环基本指令的使用方法;6掌握利用汇编语言的循环指令完成循环程序设计方法。2、 软硬件环境1、硬件环境:计算机系统windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。3、 实验涉及的主要知识 在实际应用中,经常根据一些条件来选择一条分支执行。汇编语言的条件判断主要是通过状态寄存器中的状态位、无符号数相减或有符号相减而导致的结果来进行。1无条件转移指令JMP 无条件转移指令JMP 是使程序无条件转移至目标处,又分为段内转移、段间转移。2 条件转移指令JXX 条件转移指令可分为三大类:标志位 指令 转移条件 意义CF JC CF=1有进位/借位 JNC CF=0无进位/借位 ZF JE/JZ ZF=1相等/等于0 JNE/JNZ ZF=0不相等/不等于0 SF JS SF=1是负数 JNS SF=0是正数 OF JO OF=1有溢出 JNO OF=0无溢出 PF JP/JPE PF=1有偶数个1 JNP/JP0 PF=0有奇数个12)无符号数条件转移指令。假设在条件转移指令前使用比较指令,比较两个无符号数A,B,指令进行的的操作是A-B,其转移指令如下: 指令 转移条件 意义JA/JNBECF=0 AND ZF=0ABJAE/JNBCF=0 OR ZF=1A=BJB/JNAECF=1 AND ZF=0ABJBE/JNACF=1 OR ZF=1ABJGE/JNLSF=OF OR ZF=1A=BJL/JNGESF OF AND ZF=0ABJLE/JNGSF OF OR ZF=1A=B在汇编程序设计中,循环结构的组成及其设计方法的知识要点有:1、循环程序的基本结构通常由3 部分组成1) 初始化部分2) 循环体循环工作部分:完成程序功能的主要程序段,用于解决程序的实际任务;修改部分:对循环参数进行修改,并为下一次循环做准备;循环控制部分:判断循环结束条件是否满足。通常判断循环结束方法: 用计数控制循环;循环是否进行了预定的次数。 用条件控制循环。循环终止条件是否满足。3)结束处理处理部分2、循环控制指令:指令格式 执行操作 循环结束条件LOOP 标号 CX=CX-1; 若CX=0,则循环 CX=0LOOPNZ/LOOPNE 标号 CX=CX-1; 若CX=0 且ZF=0,则循环 CX=0 或ZF=0LOOPZ/LOOPE 标号 CX=CX-1; 若CX=0 且ZF=1,则循环 CX=0 或ZF=1JCXZ 标号 仅测试(CX)=0? 若等于0,则转移到目标地址,否则就顺序执行3、 循环控制可以分为:计数循环和条件循环。4、 实验内容与步骤实验一:1. 实验要求: 判断方程AX2+BX+C=0 是否有实根。若有实根,则将字节变量tag 置1,否则置0。假设A、B、C 均为字节变量,数据范围为-128127。2. 实验流程图: 开始输入A1,B1,C1数据,转化为十进制 求 B1*B1 4*A1*C1使用CMP,对B1*B1和4*A1*C1 做差比较使用 小于? N Y TAG=1 TAG=0 TAG=TAG+30H 输出TAG 结束3. 实验源程序代码:4. 实验结果:1)无根的情况:2) 有根的情况:实验二:1. 实验要求: 编写一个程序,判别键盘上输入的字符;若是1-9 字符,则显示之;若为A-Z 字符,显示“C”;若为a-z 字符,显示“c”;若是回车字符(其ASCII 码为0DH),则结束程序,若为其它字符则显示显示“R”。2. 实验流程图: 开始 输入字符 执行CMP,与0DH做差比较 =0 ? Y N执行CMP,与1做差比较 0? N Y执行CMP,与A做差比较 0? N 输出C 输出本身 Y执行CMP,与a做差比较 0? N输出c Y 输出R 结束3. 实验源程序代码:4. 实验结果:输入2,输出2输入E,输出C输入d,输出c输入空格,结束输入=,输出R实验三1. 实验要求: (大家再次编成实现实验一的题目,看是否可以优化程序?)分类统计字数组data 中正数、负数和零的个数,并分别存入内存字变量Positive、Negative 和Zero 中,数组元素个数保存在其第一个字中。使用Debug 查看Positive、Negative 和Zero 三个变量的数据。2. 实验流程图: 开始SI记录偏移地址CX记录数据个数 cx=0? Y 取一个元素 N 和0比较Positive+1SI+1 0? Y N Zero+1 SI+1判断=0? Y NNegative+1Si+1 结束3.实验源程序代码:4.实验结果:实验四1. 实验要求: 编写程序,在字符串变量STRING 中存有一个以$为结尾的ASCII 码字符串,要求计算字符串的长度,并把它存入LENGTH 单元中。(要求用条件控制循环方法,并且字符串分数据类型是字节和字两种情况)2. 实验流程图: 开始 分别定义字型STRING2和字节型STRING1 SI=0 取string1的元素和$比较 =0?SI+1 LENTH0+1 Y SI=0取string2的元素和$比较SI+2LENTH1+1 =0? Y 结束3. 实验源程序代码:4. 实验结果:字符型:有5个(SI)字型:有12个(SI)注意:涉及到初始数据的,同学们自行给出多组数据,反复加以验证各题程序。五实验心得这次实验主要学习了分支与循环控制,通过对各个题目的分析和理解,基本掌握了计数循环控制盒条件循环控制,以及对于不同情况下的分支描述。同时为了提高输出效果,在各个程序的编程过程中,均给出了相应的提示信息,从而熟练掌握了字符串的输出。在第一题中,同时练习了数字和ASCII码的相互转换。深刻体会运行结果是以字符形式输出的。这次实验,基本实现了简单程序的所有功能,包括了对数据的输入,信息的处理,以及对结果的输出

温馨提示

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

评论

0/150

提交评论