⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 排序.lst

📁 用汇编编写的
💻 LST
字号:
Turbo Assembler	 Version 4.1	    08/05/20 13:22:44	    Page 1
C:\DOCUME~1\ADMINI~1\MYDOCU~1\汇编程序\排序.ASM



      1	0000				     DSEG  SEGMENT		 ;数据段:在此处添加程序所需的数据
      2	0000  14*(????)			   NUMBER  DW	     20	DUP (?)
      3	0028  ????			    COUNT  DW	     ?
      4	002A				     DSEG  ENDS
      5	0000				     CSEG  SEGMENT
      6						   ASSUME    CS:CSEG, DS:DSEG
      7	0000				     MAIN  PROC	     FAR	 ;主程序入口
      8	0000  B8 0000s				   MOV	     AX, DSEG
      9	0003  8E D8				   MOV	     DS, AX
     10	0005  E8 000F				   CALL	     INPUT	 ;从键盘输入一组十进制数(每个数不超过3个字符),		    +
     11				     存于数组number中
     12	0008  E8 0040				   CALL	     SORT	 ;将该组数按升序排序
     13	000B  E8 0063				   CALL	     DISP	 ;将结果送显示器显示,按任意键退出
     14	000E  B4 01				   MOV	     AH,1
     15	0010  CD 21				   INT	     21H	 ;程序结束,返回到操作系统系统
     16	0012  B8 4C00				   MOV	     AX, 4C00H
     17	0015  CD 21				   INT	     21H
     18	0017				     MAIN  ENDP
     19	0017				    INPUT  PROC
     20	0017  BE 0000r				   LEA	     SI,NUMBER
     21	001A  BB 0000			    NEXT:  MOV	     BX, 0
     22	001D  B9 0003				   MOV	     CX,3
     23	0020  B4 01			 NEWCHAR:  MOV	     AH, 1	 ;键盘输入,每个数据以回车结束
     24	0022  CD 21				   INT	     21H
     25	0024  3C 20				   CMP	     AL,20H	 ;全部数据以空格结束
     26	0026  74 22				   JZ	     TJ
     27	0028  2C 30				   SUB	     AL, 30H
     28	002A  7C 10				   JL	     EXIT	 ; <0退出
     29	002C  3C 09				   CMP	     AL, 9
     30	002E  7F 0C				   JG	     EXIT	 ; >9退出
     31	0030  98				   CBW
     32	0031  93				   XCHG	     AX, BX
     33	0032  B9 000A				   MOV	     CX, 10
     34	0035  F7 E1				   MUL	     CX
     35	0037  93				   XCHG	     AX, BX
     36	0038  03 D8				   ADD	     BX, AX
     37	003A  E2 E4				   LOOP	     NEWCHAR
     38	003C				    EXIT:
     39	003C  E8 0069				   CALL	     CRLF
     40	003F  FF 06 0028r			   INC	     COUNT
     41	0043  89 1C				   MOV	     [SI],BX
     42	0045  83 C6 02				   ADD	     SI,2
     43	0048  EB D0				   JMP	     NEXT
     44	004A  C3			      TJ:  RET
     45	004B				    INPUT  ENDP
     46
     47	004B				     SORT  PROC
     48	004B  8B 0E 0028r			   MOV	     CX,COUNT
     49	004F  49				   DEC	     CX
     50	0050  8B F9			   LOOP1:  MOV	     DI,CX
     51	0052  BB 0000				   MOV	     BX,0
     52	0055  8B 87 0000r		   LOOP2:  MOV	     AX,NUMBER[BX]
     53	0059  3B 87 0002r			   CMP	     AX,NUMBER[BX+2]
     54	005D  7E 08				   JLE	     CONTINUE
     55	005F  87 87 0002r			   XCHG	     AX,NUMBER[BX+2]
     56	0063  89 87 0000r			   MOV	     NUMBER[BX],AX
     57	0067  83 C3 02			CONTINUE:  ADD	     BX,2
Turbo Assembler	 Version 4.1	    08/05/20 13:22:44	    Page 2
C:\DOCUME~1\ADMINI~1\MYDOCU~1\汇编程序\排序.ASM



     58	006A  E2 E9				   LOOP	     LOOP2
     59	006C  8B CF				   MOV	     CX,DI
     60	006E  E2 E0				   LOOP	     LOOP1
     61	0070  C3				   RET
     62	0071				     SORT  ENDP
     63
     64	0071				     DISP  PROC
     65	0071  8B 0E 0028r			   MOV	     CX,COUNT
     66	0075  BE 0000r				   LEA	     SI,NUMBER
     67	0078				 REPEAT1:
     68	0078  8B 1C				   MOV	     BX,[SI]
     69	007A  BF 0064				   MOV	     DI,100D
     70	007D  E8 0015				   CALL	     DEC_DIV
     71	0080  BF 000A				   MOV	     DI,10D
     72	0083  E8 000F				   CALL	     DEC_DIV
     73	0086  BF 0001				   MOV	     DI,1D
     74	0089  E8 0009				   CALL	     DEC_DIV
     75	008C  E8 0019				   CALL	     CRLF
     76	008F  83 C6 02				   ADD	     SI,2
     77	0092  E2 E4				   LOOP	     REPEAT1
     78	0094  C3				   RET
     79	0095				     DISP  ENDP
     80	0095				  DEC_DIV  PROC	     NEAR
     81	0095  8B C3				   MOV	     AX,BX
     82	0097  BA 0000				   MOV	     DX,0
     83	009A  F7 F7				   DIV	     DI
     84	009C  8B DA				   MOV	     BX,DX
     85	009E  8A D0				   MOV	     DL,AL
     86	00A0  80 C2 30				   ADD	     DL,30H
     87	00A3  B4 02				   MOV	     AH,2
     88	00A5  CD 21				   INT	     21H
     89	00A7  C3				   RET
     90	00A8				  DEC_DIV  ENDP
     91
     92	00A8				     CRLF  PROC	     NEAR
     93	00A8  B2 0A				   MOV	     DL,0AH
     94	00AA  B4 02				   MOV	     AH,2
     95	00AC  CD 21				   INT	     21H
     96	00AE  B2 0D				   MOV	     DL,0DH
     97	00B0  B4 02				   MOV	     AH,2
     98	00B2  CD 21				   INT	     21H
     99	00B4  C3				   RET
    100	00B5				     CRLF  ENDP
    101	00B5				     CSEG  ENDS
    102						   END	     MAIN
Turbo Assembler	 Version 4.1	    08/05/20 13:22:44	    Page 3
Symbol Table




Symbol Name		Type   Value			   Cref	(defined at #)

??DATE			Text   "08/05/20"
??FILENAME		Text   "排序	"
??TIME			Text   "13:22:44"
??VERSION		Number 040A
@CPU			Text   0101H
@CURSEG			Text   CSEG			   #1  #5
@FILENAME		Text   排序
@WORDSIZE		Text   2			   #1  #5
CONTINUE		Near   CSEG:0067		   54  #57
COUNT			Word   DSEG:0028		   #3  40  48  65
CRLF			Near   CSEG:00A8		   39  75  #92
DEC_DIV			Near   CSEG:0095		   70  72  74  #80
DISP			Near   CSEG:0071		   13  #64
EXIT			Near   CSEG:003C		   28  30  #38
INPUT			Near   CSEG:0017		   10  #19
LOOP1			Near   CSEG:0050		   #50	60
LOOP2			Near   CSEG:0055		   #52	58
MAIN			Far    CSEG:0000		   #7  102
NEWCHAR			Near   CSEG:0020		   #23	37
NEXT			Near   CSEG:001A		   #21	43
NUMBER			Word   DSEG:0000		   #2  20  52  53  55  56  66
REPEAT1			Near   CSEG:0078		   #67	77
SORT			Near   CSEG:004B		   12  #47
TJ			Near   CSEG:004A		   26  #44

Groups & Segments	Bit Size Align	Combine	Class	   Cref	(defined at #)

CSEG			16  00B5 Para	none		   #5  6
DSEG			16  002A Para	none		   #1  6  8


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -