东北大学计算机硬件基础分支程序设计实验报告.docVIP

  • 2
  • 0
  • 约1.13万字
  • 约 21页
  • 2020-03-08 发布于广东
  • 举报

东北大学计算机硬件基础分支程序设计实验报告.doc

东 北 大 学 计算机硬件技术基础实验报告 班级: 机械0908 姓名: 学号:实验题目: 分支程序设计 日期: 2011年11月28日 实验一 一、实验目的 1) 掌握分支程序的结构; 2) 掌握分支程序的设计,调试方法; 二、实验内容 设有3个单字节无符号数存放在BUF开始的缓冲区中,编写一个能将他们从大到小重新排序的程序。 三、算法描述流程图 四、实验步骤 1. 输入源程序: DATA SEGMENT BUF DB 13,52 ,14 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUF MOV AL,[SI] ;把3个数取到寄存器中 MOV BL,[SI+1] MOV CL,[SI+2] CMP AL,BL JAE NEXT1 XCHG AL,BL ;排序,将最大数送AL寄存器 NEXT1: CMP AL,CL JAE NEXT2 XCHG AL,CL NEXT2: CMP BL,CL ;将最小数送CL寄存器 JAE NEXT3 XCHG BL,CL NEXT3: MOV [SI],AL ;从大到小依次存回缓冲区 MOV [SI+1],BL MOV [SI+2],CL MOV AH,4CH INT 21H CODE ENDS END START 2.执行emulate程序,对源程序进行调试,生成original source code和emulator:noname.exe_文件,结果无错误。 3.执行run程序,打开程序aux,选择memory,查看地址0710:0000,经验证运行结果为34 0E 0D,即52 14 13,由大到小排列,满足题目要求且无错误。 五、实验结果 1.执行emulate程序,对源程序进行调试,生成original source code和emulator:noname.exe_文件,得到如下界面: 2.执行run程序,打开程序aux,选择memory,查看地址0710:0000,得到如下界面: 运行结果为34 0E 0D,即52 14 13,由大到小排列,满足题目要求且无错误。 六、思考题 分支结构程序设计的关键在于准确地知道操作结果影响的标志位状态和正确的地使用条件转移指令。本程序中,由于是无符号数的比较,所以也可以根据一个标志位来判定数的大小,你能说出那个是标志位吗,且程序中的JEA指令改用什么指令替换呢? 答:可以根据CF标志位来判定数的大小。CF=0时,DSTSRC;当CF=1时,DSTRSC。当CF=1时,用JC指令可以实现转移;当CF=0时,用JNC指令可以实现转移。 七、扩展题 在BUF开始的单元里有3个单字节无符号数,编写程序找出它们中的最小值并存入MIN单元。 1.输入源程序如下: DSEG SEGMENT BUF DB 99,72,88 MIN DB 0 DSEG ENDS CODE SEGMENT ASSUME CS:CSEG,DS,DSEG START: MOV AX,DSEG MOV DS,AX MOV SI,OFFSET BUF MOV AL,[SI] ;把3个数取到寄存器中 MOV BL,[SI+1] MOV CL,[SI+2] CMP AL,BL ;排序,将最大数送AL寄存器 JAE NEXT1 XCHG AL,BL NEXT1: MOV MIN,BL ;排序,将最小数送MIN区 CMP BL,CL JAE NEXT2 XCHG BL,CL NEXT2: MOV MIN,C

文档评论(0)

1亿VIP精品文档

相关文档