实 验 报 告
学号: 姓名:专业:计算机科学技术 班级: 第X周
课程名称
汇编语言程序设计课程设计(第四次)
实验课时
30课时
实验项目
分支循环结构程序设计
实验时间
6课时
实验目
1. 掌握分支循环结构程序设计方法重点掌握结合程序流程图设计分支循环结构入出口方法
2. 掌握DEBUG调试分支循环结构方法
实验环境
masm编译器中写代码debug进行调试记录相关数xp操作系统
实验容(算法程序步骤方法)
1 实验报告中说明类转移指令循环指令相关原理题目求出设计程序流程图源程序清单程序执行结果予解释说明观察执行结果调试方法
2 定字节型数组长度10字节:VARB DB 14256617783346967180编写完整源程序统计数组中奇数偶数数统计结果分保存ODDNUMEVENNUM单元中
3 算法设计:①实验采取循环分支结构进行程序设计数组元素数送入CX中表示循环次数②补码具保奇偶性步判断元素否负数负数现先取反判断奇偶性③奇偶性判判断低位否00偶数否奇数判断低位0方法该数01H相结果0时低位0
4 实验步骤:①实验前设计算法编写出程序 ②Masm for Windows软件中调试生成obj文件 ③编译程序生成exe文件执行
5 实验调试:①编译生成目标文件shiyan4obj ②生成执行文件shiyan4exe ③运行:
④利debug逐步调试:反汇编指令u参数指定址范围存机器代码反汇编成汇编语言代码结果:
⑤利执行指令国编译代码检实验结果否正确详细程:
步变化正常满足实验求
实验源代码:
数段:DATAS SEGMENT
VARB DB 14 25 66 17 78 33 46 96 71 80
LEN EQU VARB
ODDNUM DB
EVENNUM DB
DATAS ENDS
堆栈段:STACKS SEGMENT STACK
DW 40H DUP(0)
STACKS ENDS
代码段:CODES SEGMENT
ASSUME CSCODESDSDATASSSSTACKS
START
MOV AXDATAS
MOV DSAX
XOR AL AL 记录奇数数AL清零
XOR DL DL 记录偶数数DL清零
MOV AH LEN
XOR BXBX
MOV CX LEN 循环次数
JCXZ L1 CX0时退出循环
L2 CMP VARB[BX] 0 判断否负数
JAE L4
JMP L3 负数时转L3
L3: NEG VARB[BX] 负数时取反正数相反数
JMP L4
L4: AND BYTE PTR VARB[BX]01H 判断低位否00偶数否奇数
JZ L5 偶数时转L5
JMP L6 否转L6
L5 INC DL 偶数时DL加1
INC BX 数组标加1
DEC CX 循环次数减1
JMP L2 跳转判断开始阶段
L6 INC AL 奇数时AL加1
INC BX 数组标加1
DEC CX 循环次数减1
JMP L2 跳转判断开始阶段
MOV AH4CH
INT 21H
CODES ENDS
END START
类转移指令循环指令相关原理
1 JCXZ:种单条件转移指令判断条件CX寄存器中数(CX)0转移 目标址(CX)0序执行配合循环控制指令形成计数循环结构
2 JMP :段直接转移指令(IP)+DISP→IP导致程序条件转移目标址
3 JAE :符号数条件转移指令CMP指令影响CFZF标志位综合判断减数减数关系A≥B转移目标址A4 JZ:单标志位转移指令ZF1转移目标址
5 INC BX
JMP L2 :循环结束数组标值BX加1指元素时条件转移循环开始开始新循环
实验程序流程图
AL:记录奇数数
DL:记录偶数数
BX :数组标初值 0
CX :程序循环次数
CX0?
Y N
程序结束
L1
VARB[BX]<0
Y N
L2 L3
VARB[BX]取反
VARB[BX]否偶数?
Y N
CXßCX1
ALßAL+1
DLßDL+1
L5 L6
数记录
计算
数数组存储序进行循环结果原变量VARB中元素01H相偶数全部变00H奇数全部变01H紧挨着变量ODDNUM变量EVENNUM分04H06H说明奇数4偶数6结果正确见图
结
(结 果)
通程序统计出数组VARB中奇数偶数数统计结果分正确保存ODDNUMEVENNUM单元中
结
通实验程序:
1 够正确完成数组中元素相应处理掌握数组应
2 初步掌握实验程序中分支结构应
3 明实验时进行流程图十分助实验程序编写力读懂实验
4 掌握DEBUG分支循环进行调试程
指导老师评 议
成绩评定: 指导教师签名:
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档