/*目录
*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
;==================延时===========================
汇编_实用函数
最新推荐文章于 2024-05-24 22:33:53 发布