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汇编语言程序设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)