汇编_实用函数

/*目录
 *1.换行
 *2.输入字符串
 *3.输出字符串
 *4.十进制输出
 *5.十六进制输出
 *6.冒泡排序
 *7.输出空格
 *8.延时
 *9.
 */
1.
backEnter proc near
 	 mov dl, 0ah			;回车换行
	 mov ah, 2 
	 int 21h
	 mov dl, 0dh
	 mov ah, 2 
	 int 21h
	 ret
backEnter ENDP
;2==========输入字符串==========
inputStr proc near
	 push BX
	 LEA BX,InStr
inloop:
	  MOV AH,1      ;输入字符串
      INT 21H
	  CMP AL,'$'
	  JZ  inOver
	  MOV [BX], AL
	  INC BX
	  INC InCount
	  JMP inloop
inOver:
	  pop BX
	  ret
inputStr ENDP
;==========输入字符串==========
;3==========输出字符串==========
outputStr proc near
	 push SI
	 push CX
 	 lea SI, InStr    ;InStr 指向 将要输出的字符串
	 mov CL, InCount
outloop:
	 mov DL, [SI]
	 mov AH, 2
	 int 21H
	 inc SI
	 loop outloop
	 
	 pop CX
	 pop SI
	 ret
outputStr ENDP
;==========输出字符串==========
;4===========将BX中的16位数十进制输出子程序============
putoutdec proc    ;记得要定义NOZERO变量
	 push cx
	 mov nozero,0
	 mov cx,10000
	 call main
	 mov cx,1000
	 call main
	 mov cx,100
	 call main
	 mov cx,10
	 call main
	 mov cx,1
	 call main
	 cmp nozero,0 ;结果等于0则输出0
	 jne LL
	 mov dl,30h
	 mov ah,2
	 int 21h
LL:
	 pop cx
	 ret
	 main proc
		 mov ax,bx
		 mov dx,0
		 div cx
		 mov bx, dx
		 mov dl, al
		 cmp dl,0 
		 jne LL1
		 cmp nozero,0 
		 jne LL1
		 jmp LL2
	 LL1:
		 mov nozero,1 
		 add dl,30h
		 mov ah,2 
		 int 21h
	 LL2:
		 ret
	 main endp
putoutdec endp
;===========将BX中的16位数十进制输出子程序============
;5==========十六进制输出(0-FFFF)===================
putoutHex proc      	;要定义两个 temp 变量
	push cx
	mov temp, bx
	mov temp1, bx  
	mov cl, 8
	shr temp, cl 
	mov bx, temp      ;将BX的高8位存储
	call main1 
	and  temp, 00ffh
	mov bx, temp1
	call main1
	pop cx 
	ret
	main1 proc
		mov al, bl   
		mov cl, 4
		shr al, cl   ;将al/16 后 比较10 大于10 高位加一。
		cmp al, 10 
		jb kk 
		add al, 7
	kk:
		mov dl, al 
		cmp dl, 0 
		je kk2 
		add dl, 30h 
		mov ah, 2 
		int 21h 
		
		and bl, 0fh 
	kk2:
		cmp bl, 10 
		jb kk1 
		add bl, 7
	kk1:
		mov dl, bl
		add dl, 30h 
		mov ah, 2 
		int 21h 
		ret 
	main1 endp 
putoutHex endp 
;==========十六进制输出(0-FFFF)===================
;6==============冒泡排序=========================	
	mov cx, COUNT  ; 排10冒9 
	dec cx

loop1:
	mov si, offset str0
	mov bx, cx 

loop2:
	mov al, [si]
	cmp al, [si+1]
	jge next 
	xchg al, [si+1]
	mov [si], al 
next:
	inc si 
	dec bx 
	jnz loop2
	loop loop1
;==============冒泡排序=========================	
;7=============输出空格=================	
whitespace proc 
	mov dl, 20h 
	mov ah, 2 
	int 21h 
	ret 
whitespace endp 
;=============输出空格=================
;8==================延时===========================
DELAY PROC NEAR  
	PUSH DX 
	MOV CX, 0F000H 
LOOP8:	
	MOV DX, 010H  
LOOP9:
	DEC DX 
	JNZ LOOP9 
	LOOP LOOP8
	POP DX 
	RET 
DELAY ENDP 
;==================延时===========================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值