当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

本人汇编小菜鸟求大神汇编语言中我写的冒泡排序程序为什么不能

更新:12-25 整理:39baobao.com
字体:

[IBMPC汇编语言求排序程序]data segment num dw 20 dup(?);存输入数列 i dw 0 ;数列个数 max dw ? min dw ? char1 db 'The maximum number is:$' char2 db 0dh,'The minimum number is:$' char3 db 0dh,'...+阅读

“di=?” 不知道, [di] 传送到 bl、dl的是什么? bx的高位“bh=?”也不知道 !

程序看着有点乱。给你一个子程序,你研究下:

;===============================

; 单个字符串内部的排序(冒泡排序)----其实也适用于字节数据排序

sort proc near

; 串长度置入cx,串(或数组)首地址置入 si

push ax

push cx

push dx

push si

push di

pushf

push cx

pop dx

dec dx

sortl1:

mov cx,dx

mov di,si

sortl2:

mov al,[di+1]

cmp al,[di]

ja sortnext ;从大到小还是从小到大,改这句即可, 或 jb/jg/jl

xchg al,[di]

mov [di+1],al

sortnext:

inc di

loop sortl2

dec dx

jnz sortl1

popf

pop di

pop si

pop dx

pop cx

pop ax

ret

sort endp

;====================================

别看有那么多压栈、弹栈操作,关键的代码很少! 这个代码是最优的。把它研究透。

本文地址:https://www.39baobao.com/show/29_15209.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

汇编语言的排序问题;运行时注意:每个不超过3个字符的十进制数以回车结束,一组十进制数以空格结束,即当输入空格时,就会在屏幕上显示结果。 DSEG SEGMENT ;数据段:在此处添加程序所需的数据 number dw...

汇编语言实现排序以下是输入20个以下的字符,用冒泡法按从小到大排列输出的程序,希望对你用所帮助: data segment da1 db 20,?,20 dup (0) data ends stack segment stack dw 20 dup (0) stack e...

求汇编语言排序程序的理解8086汇编, 数据段 一开始用org 伪指令来指定了数据存放的区域 . 1000h 代码段 一共两个函数: 一个主函数 main,一个功能函数outputax. 整个代码的入口点在main函数的第一行star...

帮忙汇编语言数据的排序急急急急急急!1;----------------------------------------------------- SORT: ;排序程序. MOV B, #49 ;第一轮排序时,比较49次. S1: MOV R0, #20H ;数据区的起始地址. CLR PSW.5 ;清除"交换"标志...

求一段8086的汇编语言程序对50个带符号字节数据进行排序将排;---------------------------------- ;冒泡排序 ;负数显示补码如-1显示65535 ;如想增加数据只需在a变量中添加, ;同时长度len要相应的更改 ;----------------------------------...

用有符号数实现排序的汇编语言程序DSEG SEGMENT n equ 5 buf db n dup(?) DSEG ENDS CSEG SEGMENT assume cs:CSEG, ds:DSEG MAIN PROC FAR ;主程序入口 mov ax, dseg mov ds, ax mov cx,n dec cx loop1: mov...

汇编语言 10个数排序:流程图稍有点繁,下列子程序可以满足流程图的排序要求。 SORT: MOV R0, #30H MOV A, R0 MOV R1, A INC R1 LOOP: MOV A, R0 MOV B, R1 CJNE A, B, SSS SSS: JNC ZZZ MOV R0, B...

汇编语言排序问题;修改完毕,测试结果正确 STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS DATA SEGMENT MSR DB '423756$' ;不要逗号 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STAC...

汇编语言起泡排序算法这是个排序程序,应该把输出程序中的6个数字,排序输出。 但是程序中略有失误,输出了无效的内容。 下面的已经改好,可以试试看: DATA SEGMENT A DW 03H, 0DH, 08H, 9DH, 81H, 0FDH...