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语言都极适用。
以特定的图形符号加上说明,表示算法的图,称为流程图或框图。
流程图有时也称作输入-输出图。该图直观地描述一个工作过程的具体步骤。流程图对准确了解事情是如何进行的,以及决定应如何改进过程极有帮助。这一方法可以用于整个企业,以便直观地跟踪和图解企业的运作方式。
流程图中所用的图形包括:
圆角矩形:表示“开始”与“结束”,即起止框。
矩形:表示处理框,有一个进口和一个出口。
平行四边形:表示输入与输出,有一个进口和一个出口。
菱形:表示判断框,有一个进口和两个出口。
箭头:表示工作的流程方向。
这是基于原型概念的首款编译性面向对象编程语言。它还支持系统编程。
以上就是关于用汇编语言编写程序,将一串凌乱的字母按从小到大的顺序排列,并将排好的字串显示在屏幕上。全部的内容,包括:用汇编语言编写程序,将一串凌乱的字母按从小到大的顺序排列,并将排好的字串显示在屏幕上。、简述用汇编语言进行程序设计的步骤。、汇编语言:数据排序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)