用汇编语言编写程序,将一串凌乱的字母按从小到大的顺序排列,并将排好的字串显示在屏幕上。

用汇编语言编写程序,将一串凌乱的字母按从小到大的顺序排列,并将排好的字串显示在屏幕上。,第1张

DATAS SEGMENT

DATA DB 'bcda$';此处输入数据段代码

DATAS ENDS

STACKS SEGMENT

;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

MOV AX,DATAS

MOV DS,AX

MOV SI,1

LOP1:

MOV DI,SI

INC DI

MOV AL,DATA[SI-1]

LOP2:

CMP AL,DATA[DI-1]

JBE LOP3

XCHG DATA[DI-1],AL

MOV DATA[SI-1],AL

LOP3:

INC DI

CMP DI,4

JBE LOP2

INC SI

CMP SI,3

JBE LOP1

SHOW:

MOV AH,9

MOV DX,OFFSET DATA

INT 21H

;此处输入代码段代码

MOV AH,4CH

INT 21H

CODES ENDS

END START

汇编语言程序设计步骤:

1、

分析问题,抽象出描述问题的数据模型

2、

确定问题的算法思想

3、

画出流程图或结构图

4、

分配存储器和工作单元(寄存器)

5、

逐条编写程序

6、

静态检查,上机调试

; 下面的程序是16位汇编,以11个十进制数-112,56,72,98,32,-65,118,83,108,125,67(对应的十六进制数:90H,38H,48H,62H,20H,0BFH,76H,53H,6CH,7DH,43H)为例,编译通过,运行正确。

; Program Name: BubblingASM

Bubbling SEGMENT

ASSUME CS:Bubbling,DS:Bubbling,ES:Bubbling

ORG 100H

Start: MOV CX,Elem_Num

Scanning: PUSH CX ;入栈保存外循环次数

LEA SI,Array ;数组首地址装入源变址寄存器

Compare: PUSH SI

POP DI ;当前数组元素地址赋给目的变址寄存器,以备交换之用

LODSB ;将当前数组元素读入累加器

CMP AL,[SI] ;当前数组元素与相邻的下一个数组元素相比较

JGE NextOne ;若小于或等于,不作数据交换,处理下一个数组元素

XCHG AL,[SI] ;若大于,交换数组元素

STOSB ;保存数值较小者

NextOne: LOOP Compare ;处理下一个数组元素

POP CX ;外循环次数出栈

LOOP Scanning ;下一趟比较

Exit_Proc:MOV AX,4C00H ;结束程序

INT 21H

ORG 4000H

Array DB -112,56,72,98,32,-65,118,83,108,125,67 ;需要排序的数据

Elem_Num EQU ($-Array)/TYPE Array-1 ;外循环次数

Bubbling ENDS

END Start

流程图(Flow Chart):使用图形表示算法的思路是一种极好的方法,因为千言万语不如一张图。流程图在汇编语言和早期的BASIC语言环境中得到应用。相关的还有一种PAD图,对PASCAL或C语言都极适用。

以特定的图形符号加上说明,表示算法的图,称为流程图或框图。

流程图有时也称作输入-输出图。该图直观地描述一个工作过程的具体步骤。流程图对准确了解事情是如何进行的,以及决定应如何改进过程极有帮助。这一方法可以用于整个企业,以便直观地跟踪和图解企业的运作方式。

流程图中所用的图形包括:

圆角矩形:表示“开始”与“结束”,即起止框。

矩形:表示处理框,有一个进口和一个出口。

平行四边形:表示输入与输出,有一个进口和一个出口。

菱形:表示判断框,有一个进口和两个出口。

箭头:表示工作的流程方向。

这是基于原型概念的首款编译性面向对象编程语言。它还支持系统编程。

以上就是关于用汇编语言编写程序,将一串凌乱的字母按从小到大的顺序排列,并将排好的字串显示在屏幕上。全部的内容,包括:用汇编语言编写程序,将一串凌乱的字母按从小到大的顺序排列,并将排好的字串显示在屏幕上。、简述用汇编语言进行程序设计的步骤。、汇编语言:数据排序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/10096432.html

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

发表评论

登录后才能评论

评论列表(0条)

保存