手机版

微机原理实验数据排序

发布时间:2024-11-18   来源:未知    
字号:

广州大学学生实验报告

四、程序框图

Len equ 10

data segment

Array db 5,2,1,0,2,3,8,6,5,9

Change db 0

data ends

code segment

assume cs:code, ds:data

start proc near

mov ax, data

mov ds, ax

Sort:

mov bx, offset Array

mov cx, Len-1

mov Change, 0

Goon:

mov al, byte ptr [bx]

inc bx

cmp al, byte ptr [bx]

jng Next ; 前小后大, 不交换

mov Change, 1 ; 前大后小, 置交换标志

mov ah, [bx]

mov [bx] ,al ; 交换

mov [bx-1], ah

Next:

loop Goon

cmp Change, 0

jne Sort

jmp $

code ends

end start

五、实验步骤

(1) 进入Wave6000,输入程序并检查,保存程序。

(2) “编译”程序。

(3) 在指令“jmp $”处设断点。

(4) “全速执行”程序。

(5) 在“数据窗口(MEMOREY)”查看0400H开始的10个单元的内容,记录并分析实验结果。

结果:00 01 02 02 03 05 05 06 08 09

实验结果分析:实验中的jne和jng都是条件跳转语句(<=),通过循环依次比较,Change是前两个数的交换标志

六、总结

刚开始运行程序,不理解代码中为什么要加置交换标志Change。之后,我把Change的语句去掉后,重新编译执行,发现结果也是正确的,但是程序不会停止跳出。然后我单步调试,程序一直循环。仔细想想,才理解了Change语句的真正含义:因为 jne Sort 是条件跳转语句,所以在这之前必须要有条件(cmp Change, 0),当没有前面的数比后面的数大时,Chang为0, cmp Change, 0 成立跳出程序结束

微机原理实验数据排序.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)