《太原理工大学硬件实验3.doc》由会员分享,可在线阅读,更多相关《太原理工大学硬件实验3.doc(6页珍藏版)》请在金锄头文库上搜索。
1、本科实验报告课程名称: 计算机硬件基础 实验项目:实验三 汇编语言程序设计:分支和循环程序实验 实验地点: 逸夫楼202与计算机硬件实验室701 专业班级: 软件* 学号: * 学生姓名: * 指导教师: 高劲松 2013年 5月17日实验名称:实验三 汇编语言程序设计:分支和循环程序实验实验目的和要求: 1通过分支程序设计、循环程序设计实验,掌握无条件转移指令、条件转移指令的格式、功能及使用方法。2掌握分支程序的结构、单分支和多分支程序的设计方法。 3了解循环程序的基本结构和控制循环的方法。实验内容和原理: 1预习汇编程序上机操作的全过程。编写一个汇编语言源程序;以下是MASM5环境中运行步
2、骤:(同学们也可以使用CV集成编译环境)(1)在dos环境下,如:d:masm 下输入命令:edit(2)打开编辑窗口(3)输入如下原程序后保存文件,例如 exp1.asm(4)输入下列指令进行编译: d:masm masm exp1.asm回车检查错误,如结果为0错误 0警告则编译成功,产生exp1.obj文件(5)输入下列指令进行链接: d:masmlink exp1.obj回车如结果为0错误 0警告则链接成功,产生exp1.exe文件(6)运行程序检验结果。d:masm exp1回车 2对已经汇编连接成功的可执行文件,使用DEBUG命令调试程序找出程序的断点,执行程序,显示有关寄存器、存
3、储单元的内容,分析程序的结果。主要仪器设备:HP6460b笔记本实验记录:1. 已知X、Y、Z、MAX为16位的带符号数,求三个数中最大值,结果存入MAX单元。STACK SEGMENT STACKDB 200 DUP(0)STACK ENDSDATA SEGMENTX DW 10HY DW 20HZ DW 30HMAX DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKSTART:MOV AX, DATA MOV DS, AXMOV AX ,XMOV BX ,YCMP AX , BXJNL NEXTXCHG AX,BXNEXT
4、: MOV BX,ZJNL NEXT1XCHG AX,BXNEXT1:MOV MAX,AX CODE ENDSEND START2. 求10个学生成绩中的最高成绩,结果存入MAX字节单元中,已知成绩为字节型。STACK SEGMENT STACKDB 200 DUP(0)STACK ENDSDATA SEGMENTA1 DB 96,73,34,86,99,20,15,4,100,0MAX DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV CX,10MOV BX,0MOV AL,A1BXAGAIN:INC BXCMP A1BX,ALJBE NEXTXCHG AL,A1BXNEXT:LOOP AGAINMOV MAX,ALCODE ENDSEND START实验结果和分析:心得体会:由调试步骤可知上述实验结果正确。其中在调试过程中,AGAIN:INC BXCMP AL,A1BXJBE NEXTXCHG AL,A1BX其中出现了错误,应该为CMP A1BX,AL而导致求出为最小的成绩。通过一步一步的调试可能找到错误的原因。写循环使用LOOP,其中处理数据的形式,即A1BX。 忘记其中的语句的语义是否正确可以使用调试开验证是否正确。