微机原理-实验一-汇编语言-冒泡排序 联系客服

发布时间 : 星期六 文章微机原理-实验一-汇编语言-冒泡排序更新完毕开始阅读0baa861481c4bb4cf7ec4afe04a1b0717fd5b37d

微机原理实验报告

班级:XXXXX 姓名:XXXX 学号:20XXXX

XXXXX大学 信息科学与技术学院 信息工程系

实验一汇编语言程序设计-(具体题目)

一、实验目的(根据实际情况修改):

1、熟悉MASM编译环境,了解程序的汇编方法; 2、熟悉常用汇编指令,学习汇编程序设计方法;

3、学习汇编语言的调试过程,通过调试过程认识CPU执行程序的方式; 4、了解冒泡法原理,学习多重循环的编程方法。

二、实验内容:

编写程序,用冒泡法实现将数据段内9,8,7,6,5,4,3,2,1按照由小到大的顺序重新排列。

三、程序流程图和程序代码

1、流程图

2、代码与注释(代码不能和指导书完全一样,写出注释,写出寄存器尤其是DS的值)

data segment

buf1 db 8,7,6,5,4,3,2,1 data ends code segment

assume cs:code,ds:data

start: mov ax,data //传送数据段data mov ds,ax

mov dx,7 //dx放外循环7次 L3: mov cx,dx //cx放内循环7次

lea si,buf1 //将db里的数据传送到si L2: mov al,[si]

cmp al,[si+1] //比较[si]与[si+1] jb L1 //[si]<[si+1],跳转到L1 xchg al,[si+1] //[si]>[si+1],两两交换 mov [si],al

L1: inc si //si减1 loop L2 //循环L2

dec dx //外循环减1,没减到0则跳转到L3 jnz L3 //入内循环,计数初值 mov ah,4ch int 21h code ends end start

四、调试过程及遇到的问题 1、程序执行截图

2、调试用到的命令 -U命令:查看数据段地址;

-d命令:查看运行前后存储器内容; -g命令:运行程序;

-t命令:查看运行前后寄存器和存储器内容。 3、遇到的问题及解决办法

问题:运行程序后,数据1在存储器地址末尾没变。 解决方法:暂未解决! 五、思考题