文档详情

顺序程序设计).doc

发布:2017-06-17约1.93千字共5页下载文档
文本预览下载声明
西安财经学院信息学院 《汇编语言程序设计》 实验报告 实验名顺序结构程序设计 实验室 实验楼520 实验日期 2014-05-05 一、实验目的及要求 1.熟悉命令格式,功能,加强对指令系统的理解; 2.编写简单顺序结构程序; 3.单步跟踪调试,观察寄存器的变化和指令执行的结果; 二、实验环境 硬件环境:一台微型计算机; 软件环境:windows xp,debug环境,masm 三、实验内容(要求至少三个程序) 题目一:求x+y+z的和,并把结果送给给w,其中x,y,z,w是数据段的标记符,用来存放三个数据 1.设计: 设计思想:首先,在数据段中,定义x,y,z分别存5,6,7三个值,同时申请一个字单元,用标号w来表示,用来存放表达式的结果; 在代码段中,首先初始化,然后将x中所存放的值传送给计算器A,再将计算器A中的内容和y中的内容相加,结果存放在计算器A中,再将计算器A中的内容和z中的内容相加,结果同样存放在计算器A中,最后将计算器A中的内容传送到w中。 2.调试与测试 (1).用masm程序产生lj.obj文件,没有错误,如下图: (2).用link程序产生2.exe文件,如下图: (3).用u命令反汇编,查看代码段,数据段所在的内存单元; (4).由3可知,数据段在0b97段,如下图,用d命令查看数据段的值,依次为5,6,7,接着下一个字的内容为0: (5).用t命令执行,如下图,将[0000]单元中的内容05h传给ax,ax中的内容为0005 3.源程序清单 data segment X dw 5 Y dw 6 Z dw 7 W dw ? data ends code segment main proc far assume cs:code,ds:data start: push ds xor ax,ax push ax mov ax,data mov ds,ax ;数据段初始化 mov ax,X add ax,Y add ax,Z mov W,ax ret main endp code ends end start 题目二: 查表法,实现一位16进制数转换为ASCII码显示 1.调试与测试 (1).用masm程序产生lj2.obj文件,没有错误,如下图: (2).用link程序产生2.exe文件,如下图: (3).用u命令反汇编,查看代码段,数据段所在的内存单元; (4).由3可知,数据段在0b97段,如下图,用d命令查看数据段的值,依次为5,6,7,接着下一个字的内容为0: (5).用t命令执行,如下图,将[0000]单元中的内容05h传给ax,ax中的内容为0005 2.源程序清单 data segment ASCII db 30h,31h,32h,33h,34h,35h db 36h,37h,38h,39h ;0~9的ASCII码 db 41h,42h,43h,44h,45h,46h;A~F的ASCII码 hex db 0bh ;任意设定一个待转换的一位16进制数 data ends code segment main proc far assume cs:code,ds:data start: push ds xor ax,ax push ax mov ax,data mov ds,ax ;------------- mov bx,offset ASCII ;BX指向ASCII码表 mov al,hex ;AL取得一位16进制数,正是ASCII码表中位移 and al,0fh ;只有低4位是有效的,高4位清0 xlat ;换码:AL←DS:[BX+AL] mov dl,al ;入口参数:DL←AL mov ah,2 ;02号DOS功能调用 int 21h ;显示一个ASCII码字符 ret main endp code ends end start 题目三: 四、总结 通过这次实验,对于debug命令格式、功能有了一定的了解,对指令系统的理解也更深刻了,自己也能够编写简单顺序结构程序,同时通过单布跟踪调试对于寄存器根据指令的变化也清楚了,最重要的是,在和同学在探讨的过程中也学到了很多的知识。 第1页/共 5页 姓名 李军 学号 1105170104 班级 计本1101 指导教师 张娟
显示全部
相似文档