单片机实验数据排序

单片机实验数据排序,第1张

原发布者:瀚海湛蓝

实验一、数据排序实验一、实验目的熟悉8031指令系统,掌握程序设计方法。二、实验内容编写并调试一个排序子程序,其功能为用冒泡法将内部RAM中几个单元字节无符号的正整数,按从小到大的次序重新排列。三、实验程序框图NNN四、实验步骤1把8032片内RAM区50H—5AH中放入不等的数据(用寄存器读写方法)。2用连续运行方式从起始地址0100H开始运行程序(输入0100后按EXEC键)。3排序结束,显示“P.”。4用寄存器读写方法检查50—5AH中内容应从小到大排列。五、参考程序DORDE:MOVSP,#60H设置栈指针MOVR3,#50HDORDE1:MOVA,R3MOVR0,A数据指针传送到R0MOVR7,#0AH长度送到R7CLR00H清零标志位MOVA,@R0DORDE2:INCR0MOVR2,ACLRC清零进位标志MOV22H,@R0CJNEA,22H,DORDE3是否相等SETBCDORDE3:MOVA,R2JCDORDE4小于或等于不交换SETB00HXCHA,@R0DECR0XCHA,@R0大于交换位置INCR0DORDE4:MOVA,@R0DJNZR7,DORDE2JB00H,DORDE1未完继续MOVR0,#7EH完,关显示器前三位MOVA,#0FFHMOVR4,#06HDORDE5:MOV@RO,ADECR0DJNZR4,DORDE5MOV7EH,#0CH

以前做的实验 可以参考下

有一个10个字节的有符号数组,编程实验使该数组的元素按照从小到大的次序排列。

data segment定义数据段

data1 db 32h,02h,01h,04h,0f1h,0f2h,0ffh,0fdh,0fah,79h

count equ $-data1

data ends

code segment

assume:ds:data,cs:code

start:

mov ax,data

mov ds,ax

mov si,offset data1 指向序列首地址

mov bx,si 把序列首地址给bx

mov dx,count-1 外循环计数器

outside:mov cx,dx内循环计数器

push si 此循环处理的第一个单元地址

mov al,[si]

inside: inc si

cmp al,[si]

jl nexchg 若低于,则处理下一个

xchg [si],al若高于,则交换比较的两个单元

nexchg: loop inside 完成内部循环,继续

pop si

mov [si],al

inc si

dec dx

jnz outside 未完成外部循环,继续

code ends

end start


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11065947.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存