2025年2月24日 星期一 甲辰(龙)年 腊月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > 汇编

汇编实现字符串排序

时间:07-29来源:作者:点击数:49
汇编实现字符串排序

首先键盘输入字符串数,然后逐个输入字符串,最后按字母首序输出字符串。

  • include io.inc
  • .model small
  • .stack
  • .data
  • CHARS DB 50 DUP(20H),'$' ;实际键入的字符从此开始存放.
  • set db 20 dup(20H)
  • .code
  • .startup
  • mov ah,01 ;从标准输入设备输入字符
  • int 21h
  • and al,0fh
  • ;dec al
  • mov ah,0
  • mov cx,ax
  • push cx
  • push cx
  • ;inc cx
  • ;call disprw
  • xor bx,bx
  • mov bx,offset CHARS
  • xor bp,bp
  • mov bp,offset set
  • again:
  • push cx
  • mov ax,bx
  • call readmsg
  • inc ax
  • ;and al,0fh
  • mov byte ptr [bp],al
  • inc bp
  • dec ax
  • add bx,ax
  • inc bx
  • pop cx
  • ;call disprw
  • loop again
  • inc bp
  • mov byte ptr [bp],'$'
  • ;mov al,set
  • ;call disphb
  • ;mov ah,9 ;执行显示操作
  • ;int 21h
  • ;inc bx
  • ;MOV BYTE PTR [BX], '$'
  • ;lea dx,CHARS
  • ;mov ah,9 ;执行显示操作
  • ;int 21h
  • pop si
  • xor bx,bx
  • xor ax,ax
  • mov cx,26
  • xor ah,ah
  • mov ah,61h
  • loop2:
  • push cx
  • ;pop cx
  • mov cx,si
  • mov bx,offset CHARS
  • mov bp,offset set
  • loop1:
  • mov al,[bx]
  • cmp al,ah
  • ;push ax
  • ;push bx
  • ;call disprw
  • ;call disprf
  • ;pop bx
  • ;pop ax
  • jnz done
  • push ax
  • push bx
  • mov ax,bx
  • call dispmsg
  • PUSH AX
  • PUSH DX
  • MOV AH, 02H ;输出单个字符.
  • MOV DL, 0DH ;0D是回车符的zhiASCII码.
  • INT 21H ;输出.
  • MOV AH, 02H
  • MOV DL, 0AH ;0A是换行符的ASCII码.
  • INT 21H
  • POP DX
  • POP AX
  • ;call disprw
  • pop bx
  • pop ax
  • done:
  • add bl,[bp]
  • inc bp
  • ;call disprw
  • loop loop1
  • inc ah
  • pop cx
  • loop loop2
  • MOV AH,4CH
  • INT 21H
  • .exit
  • end

运行结果:

在这里插入图片描述
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门