📄 dispbx.asm
字号:
.model small
public DISPBX, UPPER, COUNT
.data
data1 db 5 DUP('0'), 0ah, 0dh, '$'
.code
DISPBX PROC
PUSH DS
PUSH DX
PUSH CX
PUSH AX
CMP BX, 0
JGE next
MOV DL, '-'
MOV AH, 2
INT 21H
NEG BX
next: MOV SI, 4
MOV AX, BX
MOV CX, 10D
again: XOR DX, DX
IDIV CX
ADD DL, '0'
MOV data1[SI], DL
DEC SI
JGE again
lea DX, data1
MOV AH, 9
INT 21H
POP AX
POP CX
POP DX
POP DS
RET
dispbx endp
UPPER PROC
CMP AL, 'a'
JB over
CMP AL, 'z'
JA over
SUB AL, 20H
over: RET
UPPER ENDP
COUNT PROC
PUSH AX
PUSH SI
XOR BX, BX
XOR CX, CX
XOR DI, DI
MOV SI, DX
again:
MOV AL, [SI]
INC SI
CMP AL, 0
JE over
.if AL>='0' && al<='9'
INC BX
JMP again
.ENDIF
CALL UPPER
.if al>='A' && al<='Z'
INC CX
.else
INC DI
.endif
jmp again
over: POP SI
POP AX
RET
COUNT ENDP
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -