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

📄 32060624_王克_asmhomework_1.asm

📁 汇编语言 参考书 包含作业与答案 从入门到精通 通俗易懂
💻 ASM
字号:
;----------------------------------------------------------------
;        ╭══════┤    32060624___王克	         ├═════╮
;        ║          						     ║
;        ║             					     ║
;       ║              ★ 汇编语言 第一次作业 ★                   ║
;       ║      |---------------------------------------------|     ║
;       ║ 							     ║
;        ║        对给定的16个数进行排序(倒序),并输出在屏幕上。    ║ 
;        ║                                                          ║
;        ║                               2004.10.10                 ║
;        ║                                                          ║
;        ╰ ════════════════════════════╯
;━┅━┅━┅━┅━┅━┅━┅━┅━━┅━┅━┅━┅━┅━┅━┅━━┅━┅━━┅━
.MODEL SMALL
.STACK  100h
.DATA
	table_len       DW 16
	table           DW 200,300,400,10,20,0,1,8
        	        DW 41h,40,42h,50,60,0FFFFh,2,3
	result  	DB 5 DUP(?),'	$'
.CODE
.STARTUP			;冒泡排序法
START:  
		MOV     AX,@DATA
		MOV     DS,AX
;--------------------------;泡排序-------------------------------------------------------
LP1:  
	MOV     BX,1		;泡排序的标志
	MOV     CX,table_len
	DEC     CX
	MOV     SI,OFFSET table
LP2:    MOV     AX,[SI]
        CMP     AX,[SI+2]
        Ja      CONTINUE
        XCHG    AX,[SI+2]
        MOV     [SI],AX
        xor     BX,BX		;BX清零
CONTINUE:
        ADD     SI,2
        LOOP    LP2

	CMP     BX,1
	JZ      convert
	JMP     SHORT   LP1    
;------------------------;将二进制转化成BCD码,并打印------------------------------
convert:			
	mov	si,offset table
	mov 	cx,table_len
lp3:    
	push	cx			;保存原记数器值
	MOV     CX,5
	
        MOV     AX,word PTR [si]
        MOV     BX,10
        MOV     DI,OFFSET RESULT+4	;从后往前保存

LP4:    XOR     DX,DX			;将DX清零 
        DIV     BX
        OR      DL,30H			;也可用add dl,30h	
        MOV     BYTE PTR [DI],DL	;将16进制的数转换到ASCII中对应的数,0的ASCII码为 30H (48D)
        cmp	ax,0
        jz	print			;当商为0时,直接去打印,可不打印高位的0.
        DEC     DI
        LOOP    LP4
print:
        MOV     DX,di			;从DI开始打印,因为RESULT不一定够5位
        MOV     AH,9
        INT     21H			;调用DOS的21号中断的9号功能,将DB输出
	
	inc	si
	inc	si
	pop	cx
	loop	lp3
;-------------------------------end------------------------------------------------------
.EXIT

END

⌨️ 快捷键说明

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