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

📄 5.asm

📁 这些是我们在学校里做汇编实验时做的。实验列表如下。里面有源代码。 1. 实验一 汇编编译器的使用及程序调试(必做) 4 2. 实验二 非压缩/压缩十进制码转换程序的设计与实现(必做) 11
💻 ASM
字号:
.model small    ;此程序为冒泡排序
.data
	buf db 2,2,2,5,4,6,8,7,9,3
	n   db 10
	ct1 db ?
	ct2 db ?
	save_cnt db 1   ;设置一标志来减少偱环次数
.code
;...............................................
main proc near

start:	mov ax,@data
	mov ds,ax

	CALL MAINS

	mov ax,4c00h
	int 21h

MAIN ENDP
;................................................
MAINS PROC NEAR
	mov ah,n
	dec ah
	mov ct1,ah
	mov ct2,ah
	
cmp0:	              ;外偱环
	mov save_cnt,1  ;设置标志为1
	mov ch,00h
	mov cl,ct2
	mov si,0
	call print1   ;用来显示出每次排完序的序列
	call crlf     ;子程序:用来显示回车和换行
	
cmp1:	mov al,buf[si]    ;内偱环
	cmp al,buf[si+1]
	jle inc1
	xchg al,buf[si+1]
	mov save_cnt,0   ;修改标志,来说明此次内偱环对数据修改了
	mov buf[si],al
inc1:	inc si
	loop cmp1

	cmp save_cnt,1   ;如果标志没变,说明上一次内偱环没有对数据修改
	jz exit2         ;数据已排好序了,可以退出
	dec ct2
	cmp ct2,0
	jnz cmp0
exit2: 	RET
	
mainS endp
;...............................................
print1 proc near  ;用来显示出每次排完序的序列
	push cx	      	;保护好CX,SI中的值
	push si

	mov ch,00h
	mov cl,n
	mov si,0

next:	mov ah,buf[si]   ;逐个打出数字的ASCLL符
	add ah,30h
	mov dl,ah
	mov ah,2
	int 21h
	inc si
	loop next
	
	pop si
	pop cx
	ret
print1 endp
;................................................
CRLF PROC NEAR       ;子程序:用来显示回车和换行

 	mov dl,0dh  ;回车
 	mov ah,2
 	int 21h

 	mov dl,0ah   ;换行
 	mov ah,2
 	int 21h 
 	RET   ;返回
CRLF ENDP

end start

⌨️ 快捷键说明

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