收藏 分销(赏)

汇编分支与循环实验报告.doc

上传人:仙人****88 文档编号:9453423 上传时间:2025-03-26 格式:DOC 页数:5 大小:136.50KB 下载积分:10 金币
下载 相关 举报
汇编分支与循环实验报告.doc_第1页
第1页 / 共5页
汇编分支与循环实验报告.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
汇编语言上机实验 实验三 分支和循环 一、实验目的 熟悉掌握利用比较转移指令实现分支,理解条件转移和无条件转移指令的区别,学习循环程序的设计方法,会编制循环和分支的一般程序。 二、实验要点 在汇编语言中,分支指令分为条件分支和无条件分支两大类。凡条件分支指令均属相对转移,其相对偏移值在-128至127之间。无条件分支指令又分相对转移和绝对转移。凡在段内转移均为相对转移,相对转移又分为SHORT和NEAR两种。前者同条件相对转移,NEAR类型转移范围在-8000H至7FFFH之间。段间转移通常为绝对转移,绝对转移又分为直接转移和间接转移,因为应根据不同情况来选用这些指令。 在条件转移指令中,分为适用于有符号数比较的条件转移和无符号数比较的条件转移,因此在进行有符号数比较大小时,要使用JG、JGE、JL、JLE等指令来实现条件分支;同样对无符号数比较要使用JA、JAE、JB、JBE等指令来实现分支转移。 对于循环程序设计,在循环体外要设置循环计数器,通常用CX来做计数器,此外要设置地址指针,使之指向所要使用的操作数的初始地址。循环体根据制定的要求来编制,循环体的转移标号位置要设置正确,循环的判断条件要明确。结束循环一般是循环次数减至为零,或满足特定条件提前退出循环。 三、实验任务及步骤 1.设数据缓冲区内容有如下一组数据:12H、98H、45H、64H、78H、33H、0ABH、0CFH、17H、88H,试编程:按有符号数对正、负数分别求和。并统计正、负数的个数。 程序代码: DATAS SEGMENT BUF1 DB 12H,98H,45H,64H,78H,33H,0ABH,0CFH,17H,88H PSUM DW 0H NSUM DW 0H PCOUNT DB 0H NCOUNT DB 0H DATAS ENDS STACKS SEGMENT DB 100 DUP(?) STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX MOV SI,OFFSET BUF1 MOV CX,0AH MOV DL,80H NEXT: MOV BL,[SI] CMP BL,DL JNO L1 MOV AL,BL CBW ADD PSUM,AX INC PCOUNT INC SI DEC CX JNZ NEXT L1: MOV AL,BL CBW ADD NSUM,AX INC NCOUNT INC SI DEC CX JNZ NEXT MOV CX,0AH SUB SI,SI SUB BX,BX SUB DX,DX MOV AH,4CH INT 21H CODES ENDS END START 运行结果: 结果: 和 个数 正数 017DH 6 负数 009AH 4 2.数据同上,试编程按无符号数,求出这组数中的最大值 程序代码: DATAS SEGMENT BUF DB 12H,98H,45H,64H,78H,33H,0ABH,0CFH,17H,88H MAX DB 0H DATAS ENDS STACKS SEGMENT DB 100 DUP(?) STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX MOV SI,0 MOV CX,0AH MOV MAX,0 AGAIN: MOV AL,BUF[SI] CMP AL,MAX JBE NEXT MOV MAX,AL JMP NEXT NEXT: INC SI LOOPNE AGAIN MOV AH,4CH INT 21H CODES ENDS END START 运行结果: 无符号最大值:0CFH 3. 数据同上,试编程按有符号数,求出这组数中的最小值 程序代码: 流程图: DATAS SEGMENT BUF DB 12H,98H,45H,64H,78H,33H,0ABH,0CFH,17H,88H MIN DB 0H DATAS ENDS STACKS SEGMENT DB 100 DUP(?) STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX MOV SI,0 MOV CX,0AH MOV MIN,0 AGAIN: MOV AL,BUF[SI] CMP MIN,AL JL NEXT MOV MIN,AL JMP NEXT NEXT: INC SI LOOPNE AGAIN MOV AH,4CH INT 21H CODES ENDS END START 运行结果: RESULT=08D3H余0050H 四、实验总结: 通过本次实验,我熟悉了利用汇编语言对多精度十六进制和十进制的编程方法,弄清带符号数及不带符号数的运算区别,理解了各状态标志位的含义,以及运算结果对各状态标志的影响,同时进一步熟悉了编程环境,获益颇多。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服