2022年2022年汇编实验三--分支循环程序设计 .pdf
《2022年2022年汇编实验三--分支循环程序设计 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年汇编实验三--分支循环程序设计 .pdf(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、福建农林大学金山学院实验报告系:专业:计算机科学与技术年级: 08 姓名:学号:实验课程:汇编语言实验室号: _ 实验设备号:实验时间:指导教师签字:成绩:实验三分支循环程序设计1实验目的和要求1、学习调试程序,查找逻辑错误;2、学习分支语句的编程和调试;3、学习循环语句的编程和调试。2实验环境实验的硬件环境是:IBMPC机及其兼容机实验的软件环境是:操 作 系 统 : DOS 2.0以 上 ; 调 试 程 序 : DEBUG.COM; 文 本编 程 程 序 :EDIT.EXE 、WPS.EXE;宏汇编程序: MASM.EXE(或 ASM .EXE);连接装配程序:LINK .EXE;交叉引用
2、程序: CREF.EXE (可有可无)。3实验内容及实验数据记录1.有 10 个数,统计正数的个数,存放在变量M 中中。经过汇编后,形成 EXE文件。在 DEBUG 中,先用 G 0 命令执行程序,用D命令查看 M单元的内容,会发现结果不正确。用单步执行命令T0,单步执行程序,查找程序中的逻辑错误,注意每一次循环中AL寄存器中值的变化是否正确。 (AL寄存器中存放正数的个数)DSEG SEGMENT MSG DB 4, -2, -6, 0, 5, 67, 8, -3, 5, 6 M DB ? DSEG ENDS CSEG SEGMENT 名师资料总结 - - -精品资料欢迎下载 - - - -
3、 - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 25 页 - - - - - - - - - ASSUME CS: CSEG, DS: DSEG START: MOV AX, DSEG MOV DS, AX MOV CX, 10 MOV AL, 0 LEA SI, MSG L1: MOV BL, SI CMP BL, 0 JBE NEXT INC AL NEXT: INC SI LOOP L1 MOV M, AL MOV AL, 0 MOV AH, 4CH INT 21H CSEG ENDS END START 2.数据段中是
4、一组无符号数,将最小数存放在M单元中。按上题方法查找一处逻辑错误。DSEG SEGMENT MSG DB 13, 15, 7, 25, 24 M DB ? DSEG ENDS CSEG SEGMENT ASSUME CS: CSEG, DS: DSEG START: MOV AX, DSEG MOV DS, AX MOV CX, 4 MOV AL, MSG MOV SI, OFFSET MSG+1 L1: CMP AL, SI 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,
5、共 25 页 - - - - - - - - - JB NEXT MOV AL, SI NEXT: LOOP L1 MOV M, AL MOV AL, 0 MOV AH, 4CH INT 21H CSEG ENDS END START 3.编程:在首地址为BUF开始的内存单元中存有10 个字节数,求其中 0 的个数,并将结果存于RESULT 中。4.编程:81iiiBAY,Ai ,Bi 为字节型无符号数,分别存于NUM1 和 NUM2 开始的连续存储单元中,结果存于REST 单元中。4算法描述及实验步骤1)编辑代码,编译连接均可通过,亦能正常运行。 DSEG SEGMENT MSG DB 4,
6、 -2, -6, 0, 5, 67, 8, -3, 5, 6 M DB ? DSEG ENDS CSEG SEGMENT ASSUME CS: CSEG, DS: DSEG START: MOV AX, DSEG MOV DS, AX MOV CX, 10 MOV AL, 0 LEA SI, MSG L1: MOV BL, SI CMP BL, 0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 25 页 - - - - - - - - - JBE NEXT INC AL
7、 NEXT: INC SI LOOP L1 MOV M, AL MOV AL, 0 MOV AH, 4CH INT 21H CSEG ENDS END START 查看 list文件得知 M单元偏移量为 000A,如图:g命令运行后, d 命令查看 (d1415:000A) 得知 M中值为 09即是正数有 9个,显然是不正确的如图 2 )同一编辑如下代码进行编译连接运行均正常; DSEG SEGMENT MSG DB 13, 15, 7, 25, 24 M DB ? DSEG ENDS CSEG SEGMENT ASSUME CS: CSEG, DS: DSEG START: MOV AX,
8、DSEG 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 25 页 - - - - - - - - - MOV DS, AX MOV CX, 4 MOV AL, MSG MOV SI, OFFSET MSG+1 L1: CMP AL, SI JB NEXT MOV AL, SI NEXT: LOOP L1 MOV M, AL MOV AL, 0 MOV AH, 4CH INT 21H CSEG ENDS END START 由指令 MSG DB 13, 15, 7, 25
9、, 24 M DB ? 可计算 0005 为 M的的偏移量。如图, g命令运行后, d命令查看 (d1415:0005) 知 M中值为 0DH=13 即最小的数是13,显然不正确。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 25 页 - - - - - - - - - 3)3.1 据题意有如下要求a 定义:首地址 BUF ,结果 RESULT b 数据: 10 个字节数c 实现:查找 0 的个数3.2 分析满足要求满足 a&b有: BUF DB 4, -2, -6,
10、0, 5, 0, 8, -3, 5, 0 RESULT DB ? 实现 c:MOV CX,10 ;控制循环次数MOV AL,0 ;AL用于存放临时个数,清零CMMP: CMP SI,0 ;比较 SI 所指与 0 JNE NEXT ;SI 所指不等 0 跳入 NEXT 标号所指指令INC AL ;SI 所指等于 0,AL加 1 NEXT: INC SI ;指针下一指向下一个即将比较的数LOOP CMMP ;循环比较直至 CX=0 ;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页
11、,共 25 页 - - - - - - - - - 3.3 流程图:3.4 最初程序代码DATA SEGMENT ; 数据段 DATA 开始BUF DB 4,-2,-6,0,5,0,8,-3,5,0;分配字节空间首地址BUF RESULT DB ? ; 存放结果MOV CX,10;CX-10 MOV AL,0;AL-0 CMP SI,0 ZF=0;SI!=0 INC AL;AL+1 JNE NEXT INC SI;SI+1 LOOP CMMP 开始结束Y N 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -
12、- - - - - 第 7 页,共 25 页 - - - - - - - - - DATA ENDS ; 数据段 DATA 结束CODE SEGMENT ; 代码段 CODE 开始ASSUME DS:DATA,CS:CODE ;DATA,CODE 对应挂钩 DS ,CS START: MOV AX,DATA ; 程序入口MOV DS,AX ; 数据段装入MOV CX,10 ; 初始循环次数MOV AL,0 ;AL 用于存放 0 的个数,初始为0 CMMP: CMP SI,0 ; 当前指针指向的数据与0 比较JNE NEXT ; 所指数据不等于 0 跳至 NEXT 标号处指令INC AL ; 相
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年汇编实验三-分支循环程序设计 2022 汇编 实验 分支 循环 程序设计
限制150内