📄 array.lst
字号:
Microsoft (R) Macro Assembler Version 5.00 12/29/5 Page 1-1
0000 DSEG SEGMENT
;数据段:在此处添加程序所需的数据
0000 0007[ array db 7 dup(?),0dh,0ah,'$'
;数组
??
]
0D 0A 24
;array db 3,5,6,4,3,5,1
000A 20 24 space db 20h,'$' ;空格
000C 0D 0A 24 enter db 0dh,0ah,'$' ;回车换
行
000F 0D 0A 50 72 65 73 73 msg db 0dh,0ah,'Press any key
to eixt...','$'
20 61 6E 79 20 6B 65
79 20 74 6F 20 65 69
78 74 2E 2E 2E 24
002A DSEG ENDS
0000 CSEG SEGMENT
assume cs:CSEG, ds:DSEG
0000 MAIN PROC ;主程序入口
0000 B8 ---- R mov ax, dseg
0003 8E D8 mov ds, ax
;此处添加主程序代码
0005 B9 0007 mov cx, 7
0008 8B 3E 0000 R mov di,word ptr array
000C INPUT:
000C B4 01 mov ah,01h
000E CD 21 int 21h
0010 88 05 mov [di], al
0012 47 inc di
0013 B4 09 mov ah, 09h
0015 BA 000A R mov dx,offset space
0018 CD 21 int 21h
001A E2 F0 loop INPUT
;比较排序
001C B9 0006 mov cx,6
001F 8D 36 0000 R lea si,array
0023 8B FE mov di,si
0025 8A 14 mov dl,[si]
0027 SORT:
0027 8B F7 mov si,di
0029 8B C1 mov ax,cx
002B 8A 15 mov dl,[di]
002D NEXT:
002D 46 inc si
002E 3A 14 cmp dl,[si]
0030 7C 02 jl NOCHANGE
0032 86 14 xchg dl,[si]
0034 NOCHANGE:
Microsoft (R) Macro Assembler Version 5.00 12/29/5 Page 1-2
0034 48 dec ax
0035 75 F6 jnz NEXT
0037 86 15 xchg [di],dl
0039 47 inc di
003A E2 EB loop SORT
;显示输出
003C 8D 36 0000 R lea si, array
0040 B9 0007 mov cx,7
0043 B4 09 mov ah,09h
0045 BA 000C R mov dx,offset enter
0048 CD 21 int 21h
004A PRINT:
004A B4 02 mov ah, 02h
004C 8A 14 mov dl,[si]
004E CD 21 int 21h
0050 46 inc si
0051 B4 09 mov ah,09h
0053 BA 000A R mov dx,offset space
0056 CD 21 int 21h
0058 E2 F0 loop PRINT
005A EXIT:
005A B4 09 mov ah,09h
005C BA 000F R mov dx,offset msg
005F CD 21 int 21h
0061 B4 07 mov ah,07h
0063 CD 21 int 21h
0065 B8 4C00 mov ax, 4c00h ;程序结束,返回到操作系
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -