求汇编语言排序程序的理解

求汇编语言排序程序的理解,第1张

8086汇编,

数据段

一开始用org 伪指令来指定了数据存放的区域 1000h

代码段

一共两个函数: 一个主函数 main,一个功能函数outputax

整个代码的入口点在main函数的第一行start处

main 函数中先进行了冒泡排序,使用两层嵌套循环, step1,和step2

然后对排完序的数据逐步调用outputax来完成向屏幕显示

outputax函数

判断数值的符号, 负数输出负号,0直接输出0,正数不打印+号

将数值转换成ascii码,(这里按照数字的值+30h)对应的数值

输出

CODE SEGMENT ;;代码段开始

ASSUME CS:CODE ;;代码段地址和CS段寄存器关联

START:MOV AL,0ABH ;;START是一个标签, 将 *** 作数0ABH 放在寄存器AL中

MOV CL,4 ;;将4放在寄存器CL中

ROL AL,CL ;;将AL中的数循环左移4位 左移的位数时根据cl的值来决定

MOV AX,4C00H ;;21号中断的4c号功能用于退出程序返回执行权给 *** 作系统

INT 21H ;;调用中断21h, 退出程序 不写这个你的程序运行后dos就会死住无法继续 *** 作

CODE ENDS

END START

code segment

assume cs:code

start:

mov bl,ah ;寄存器AX的高8位传送到寄存器BL

mov dl,al ;AX的低8位传送到寄存器DL

int 20h ;结束

code ends

end start

ASSUME CS:CC, DS:QW

;------------------------------

QW SEGMENT

BUF DB 36, 78, -1, 0, -54, 33, 53, -40, 78, 100

LLL EQU $ - BUF

QW ENDS

;------------------------------

CC SEGMENT

START:

MOV AX, QW

MOV DS, AX

;-------------------------

MOV CX, LLL

DEC CX

LP1:

MOV DX, CX

LEA BX, BUF ;起始地址

LP2:

MOV AL, [BX]

CMP AL, [BX + 1]

JL NEXT

XCHG AL, [BX + 1]

MOV [BX], AL

NEXT:

INC BX

DEC DX

CMP DX, 0

JNZ LP2

LOOP LP1

;-------------------------

EXIT:

MOV AH, 4CH

INT 21H

CC ENDS

END START

;------------------------------

以上就是关于求汇编语言排序程序的理解全部的内容,包括:求汇编语言排序程序的理解、请分析这道8086汇编语言程序、求一段简单的8086汇编语言程序设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存