好文档 - 专业文书写作范文服务资料分享网站

汇编语言

天下 分享 时间: 加入收藏 我要投稿 点赞

西安财经学院信息学院

《汇编语言程序设计》

学生姓名: 学 号: 班 级:

专 业: 计算机科学与技术

完成日期: 2015年6月24日

题目一(顺序):

1.编写完成表达式M=500-A+B的程序设计,其中变量都是字数据。 题目分析

顺序程序完全按指令书写的前后顺序执行每一条指令,是最基本、最常见的程序结构首先,在数据段中,定义x,y,z分别存500,4,5,要求结果送往M中,先将运算结果送往AX,最后将寄存器AX的内容传送到S中。编写完成表达式M=500-A+B.其中变量都是字数据. 源程序代码

data segment x dw 500 y dw 4 z dw 5 M dw ? data ends code segment main proc far

assume cs:code,ds:data start:

mov ax,data mov ds,ax mov ax,x SUB ax,y ADD ax,z mov M,ax ret main endp

code ends end start 调试分析过程:

(1).用masm程序产生WL1文件,没有错误,如下图:

(2).用link程序产生WL1.exe文件,如下图。

(3).用u命令反汇编,查看代码段,数据段所在内存单元;

(4).用T命令单步执行该程序,实现初始化。

(4).用T命令单步执行该程序,看到将500送AX.

(5)执行T命令,可以看出将相减后的数据送AX。

(6)使用D命令查看数据段,从图中可以看出最终结果存储在0007和0008内。

(7)运行结束,输入Q命令退出DEBUG.

题目二(选择):编程对已知的5个数据,找出最小值。 题目分析

本程序需采用冒泡排序算法,从第一个数开始,依次和后面四个数比较,如果次序正确则不作任何操作,如此序不对,则使两个数交换位置。冒泡法

从第一个元素开始,依次对相邻的两个元素进行比较,使前一个元素不大于后一个元素;将所有元素比较完之后,最大的元素排到了最后;然后,除掉最后一个元素之外的元素依上述方法再进行比较,得到次大的元素排在后面;如此重复,直至完成就实现元素从小到大的排序。n个数需要n-1遍比较,第一遍比较出一个最大(或最小)数,第二遍对剩下的数进行比较,得到一个次最大(或次最小)数 ,第n-1遍比较出最后两个数的大小顺序,至此整个数组全部排好序。每一遍比较需要比较的次数为要比较数减一。如n=5,第一遍比较次数为4(内循环),第二遍比较次数为3 (内循环) ,第三遍比较次数为2 (内循环) ,第四遍比较次数为1 (内循环) 。

源程序代码: DATA SEGMENT

buf db 7,2,3,4,5;输入字符串缓冲区 count equ $-buf

msgd db \显示信息,提示输出最小值 DATA ENDS

CODE SEGMENT

assume cs:CODE, ds:DATA MAIN PROC FAR ;主程序入口 mov ax, dseg mov ds, ax

lea si,buf;数据起始地址存入SI mov cx,count;数据个数存入CX中 mov bl,[si];找最小值存入BL中 dec cx next:

cmp bl,[si+1] jbe next1

mov bl,[si+1] next1:inc si loop next

lea dx,msgd;显示信息,提示输出最小值 mov ah,9 int 21h

call disp;用十六进制形式最小值 mov ah,1;按任意键退出 int 21h

mov ax, 4c00h ;程序结束,返回到操作系统系统 int 21h MAIN ENDP

汇编语言

西安财经学院信息学院《汇编语言程序设计》学生姓名:学号:班级:专业:计算机科学与技术
推荐度:
点击下载文档文档为doc格式
57omg8mehi0zn001pb8u
领取福利

微信扫码领取福利

微信扫码分享