?? newmail.asm
字號:
.MODEL TINY
.CODE
.386
ORG 100h
start: jmp main
;_______________________________________________________________
intro db 10,13, 'New Mail! v1.0b ** kEYGEN #1 bY R!SC ** risc@notme.com **',10,13,10,13
db 10,13, 'eNTER yOUR nAME : ', '$'
input db 20h, 0
input2 db 20h dup(0)
regname db 20h dup(0)
code db 10,13, 'yOUR rEGCODE iS : '
regcode db 14 dup(20h)
regend db 10,13, '$'
itshere db "its here-->"
tempregcode db 4 dup (0)
finished db "<-- in hex, just gotta convert it! (byte by byte)"
noname db 10,13,10,13 ,'no name entered / so ya get no code', 10,13, '$'
badname1 db 10,13,10,13 ,'bad name entered / try some letters', 10,13, '$'
count db 0
mailme db 'risc_1@hotmail.com 1024bytes'
;_______________________________________________________________
main:
mov ah, 9 ; print title
lea dx, intro ; dx with offset ov text
int 21h
lea dx, input
mov ah, 0ah
int 21h
cmp byte ptr [input+1], 0
jne go
lea dx, noname
mov ah, 9
int 21h
badname:
lea dx, badname1
mov ah, 9
int 21h
fuck:
mov ax, 4C01h ; Exit with error
int 21h
go:
xor ax,ax
xor cx,cx
mov al, byte ptr [input+1]
lea di, input2
lea si, regname
hehe:
mov bl, byte ptr [di] ;get charcater
cmp bl, 39h ; see if its a number
jle skipit ;
cmp bl, 122 ; check if its a 'z'
jle toupper ; goto next check if it is
jmp skipit
storechar:
mov byte ptr [si], bl ; store the character
inc di
inc si
inc cx ; good char counter (ones weve passed)
dec al ; input char counter
je done ; have we processed all chars?
jmp hehe ; still some to format..
toupper:
cmp bl, 97 ; 97 = 'a' so if it >='z' & <= 'a' its a lowercase char
jge toupper2
cmp bl, 64
jle skipit
cmp bl, 91
jge skipit
jmp storechar ; its not lower case or a number, so save it..
toupper2:
sub bl, 20h
jmp storechar
check2:
cmp bl, 30h
jge skipit ; less than 39h, bigger than 30h, its a number
mov byte ptr [si], bl ; otherwise, save it..
jmp nextchar
skipit:
inc di ;next char
dec al ;dec count
je done
jmp hehe
nextchar:
inc si ;we saved a char, so point to next space
inc cx ; say we got x good chars
inc di ;next input char to check
dec al ;hmmn, is there one
je done
jmp hehe
done:
; int 03
test cx,cx
je badname
lea di, regname
mov bx, 52h
mov si, 00
xor ax,ax
a1:
xor bl, byte ptr [di]
add si, 04
add di, 04
cmp si , cx
jle a1
lea si , tempregcode
add si, ax
mov byte ptr [si], bl
inc al
lea di, regname
add di , ax
mov bx, 0b8h
mov si, 01
a2:
xor bl, byte ptr [di]
add si, 04
add di, 04
cmp si , cx
jle a2
lea si , tempregcode
add si, ax
mov byte ptr [si], bl
inc al
lea di, regname
add di , ax
mov bx, 01bh
mov si, 02
a3:
xor bl, byte ptr [di]
add si, 04
add di, 04
cmp si , cx
jle a3
lea si , tempregcode
add si, ax
mov byte ptr [si], bl
lea di, regname
add di , ax
mov bx, 06fh
mov si, 02
a4:
xor bl, byte ptr [di]
add si, 04
add di, 04
cmp si , cx
jle a4
lea si , tempregcode
inc al
add si, ax
mov byte ptr [si], bl
inc al
; int 03
;fix the numbers
lea si,tempregcode
lea di,regcode
xor ax,ax
xor ebx,ebx
mov al, byte ptr [si]
inc si
mov cx,10
mov byte ptr [count] ,0
again1:
shl ebx, 8
xor dx,dx
div cx
add dl,030h
mov bl,dl
add byte ptr [count],1
test ax,ax
jne again1
mov cl, byte ptr [count]
mov byte ptr [di], bl
inc di ; next space for char
dec cl
je next1
shr ebx,8
mov byte ptr [di], bl
inc di
dec cl
je next1
shr ebx,8
mov byte ptr [di], bl
inc di
mov byte ptr [count] ,0
next1:
xor ax,ax
xor ebx,ebx
mov al, byte ptr [si]
inc si
mov cx,10
again2:
shl ebx, 8
xor dx,dx
div cx
add dl,030h
mov bl,dl
add byte ptr [count],1
test ax,ax
jne again2
mov cl, byte ptr [count]
mov byte ptr [di], bl
inc di
dec cl
je next2
shr ebx,8
mov byte ptr [di], bl
inc di
dec cl
je next2
shr ebx,8
mov byte ptr [di], bl
inc di
xor dx,dx
mov byte ptr [count] ,0
next2:
xor ax,ax
xor ebx,ebx
mov al, byte ptr [si]
inc si
mov cx,10
again3:
shl ebx, 8
xor dx,dx
div cx
add dl,030h
mov bl,dl
add byte ptr [count],1
test ax,ax
jne again3
mov cl, byte ptr [count]
mov byte ptr [di], bl
inc di
dec cl
je next3
shr ebx,8
mov byte ptr [di], bl
inc di
dec cl
je next3
shr ebx,8
mov byte ptr [di], bl
inc di
xor dx,dx
mov byte ptr [count] ,0
next3:
xor ax,ax
xor ebx,ebx
mov al, byte ptr [si]
inc si
mov cx,10
again4:
shl ebx, 8
xor dx,dx
div cx
add dl,030h
mov bl,dl
add byte ptr [count],1
test ax,ax
jne again4
mov cl, byte ptr [count]
mov byte ptr [di], bl
inc di
dec cl
je next4
shr ebx,8
mov byte ptr [di], bl
inc di
dec cl
je next4
shr ebx,8
mov byte ptr [di], bl
next4:
mov ah, 9 ; print title
lea dx, code ; dx with offset ov text
int 21h
; int 03
mov ax, 4C00h ; All Done And Exit
int 21h
christ:
db "your a nosey fukkah! well, greets to ya anyway, i'd do the same..."
end start
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -