21,458
社区成员
发帖
与我相关
我的任务
分享
datarea segment
errstr db 'length is too long!',13,10,'$'
datarea ends
prognam segment
main proc far
assume cs: prognam,ds:datarea,es:datarea
start:
push ds
sub ax,ax
push ax
mov ax,datarea
mov ds,ax
mov ax,datarea
mov es,ax
;+++++++++++++++++++++++++++++++++++++
mov ax,0
mov bx,0
mov cx,0
mov di,0
AGAIN:
mov ax,bx
add ax,cx
add ax,dx
add ax,di
cmp ax,1eh
ja ERR
mov al,01h
int 21h
cmp al,'$'
je EXIT
cmp al,'0'
jb L1
cmp al,'9'
jbe L2
cmp al,'A'
jb L1
cmp al,'Z'
jbe L3
cmp al,'a'
jb L1
cmp al,'z'
jbe L4
add bx,1
jmp AGAIN
ERR:
mov dx,offset errstr
mov ah,9h
int 21h
L1:
add bx,1
jmp GOB
L2:
add cx,1
jmp GOB
L3:
add dx,1
jmp GOB
L4:
add di,1
jmp GOB
GOB:
cmp al,'$'
je EXIT
jmp AGAIN
EXIT:
;++++++++++++++++++++++++++++++
ret
main endp
prognam ends
end start