babol-hacker
دوشنبه 21 دی 1388, 18:53 عصر
سلام به همه دوستان یک سری ماکرو نوشته بودم که گفتم اینجا بذارم
1.چاپ رشته که یک ورودی میگیره
PRINT MACRO STRING
;;PRINT STRING
MOV AH,09H ;;PRINT STRING
LEA DX,STRING ;;MOV OFFSET STRING
INT 21H
ENDM
2.پاک کردن کل صفحه نمایش
CLRSCR MACRO
MOV AH,06H ;;SERVIC NUMBER
MOV AL,0
MOV CX,0
MOV DH,24
MOV DL,79
MOV BH,00001001B ;;COLOR ATTRIBUTE
INT 10H
ENDM
3.تنظیم مانیتور
SET_MONITOR MACRO
MOV AH,00H ;;SERVIC NUMBER
MOV AL,03H ;;MODE NUMBER
INT 10H
ENDM
4.چاپ یک کاراکتر با تعدادی مشخص
09-10H MACRO CHR,G
MOV AH,09H ;;SERVIC NUMBER
MOV AL,CHR ;;ASCI NUMBER
MOV BH,00H ;;PAGE NUMBER
MOV CX,G
MOV BL,00001001B ;;COLOR ATTRIBUTE
INT 10H
ENDM
5.معکوس رشته با کمک پوش و پاپ ورودی یک رشته
REV MACRO REVSTR
MOV BX,0
L1:
CMP REVSTR[BX],'$'
JE L2
MOV AL,REVSTR[BX]
PUSH AX
INC BX
JMP L1
L2:
MOV CX,BX
XOR BX,BX
L3:
POP AX
MOV REVSTR[BX],AL
INC BX
LOOP L3
MOV REVSTR[BX],'$'
ENDM
6.انتقال مکان نما
GOTOXY R,C
R=ROW
C=COLUMN
GOTOXY MACRO R,C
MOV AH,02H
MOV DH,R
MOV DL,C
MOV BH,00H
INT 10H
ENDM
7.پاک کردن صفحه با پارامترهای مشخص
RCCLRSCR MACRO R1,C1,R2,C2,RANG
MOV AH,06H ;;SERVIC NUMBER
MOV AL,0
MOV CH,R1
MOV CL,C1
MOV DH,R2
MOV DL,C2
MOV BH,RANG ;;COLOR ATTRIBUTE
INT 10H
ENDM
8.خواندن حرف و رنگ مربوط در مکان نمای فعلی
READCHR MACRO
MOV AH,08H
MOV BH,00H ;;PAGE NUMBER
INT 10H
;; MOV AL,ASCII AND MOV AH,COLOR
ENDM
9.کاراکتر میاد تبدیل به کاراکار بزرگ میشه
TOBIG MACRO CHR_2
MOV AL,CHR_2
SUB AL,32
ENDM
10.کاراکتر میاد تبدیل به کوچیک میشه
TOLOW MACRO CHR_3
MOV AL,CHR_3
ADD AL,32
ENDM
البته من قبله استفاده ازین ماکروها نیازم و رفع میکنم بعد نسبت به شرایط ماکر و فراخونی میکنم مثلا قبلش تشخیص میدم کاراکتر کوچیک یا بزرگ
11.بررسی موقعیت و اندازه مکان نما
RC? MACRO
MOV AH,03H
MOV BH,00H
INT 10H
;;--- ROW MOV TO DH
;;COLUMN MOV TO DL
ENDM
12.رفتن به خط بعدی
ENDL MACRO
MOV AH,02H
MOV DL,0AH
INT 21H
MOV AH,02H
MOV DL,0DH
INT 21H
ENDM
13.بیپ به مقدار مشخص
BEEP MACRO T
CMP T,0
JE L2
DEC T
MOV CX,T
L1:
MOV AH,02H
MOV DL,07H
INT 21H
LOOP L1
L2:
MOV AH,02H
MOV DL,07H
INT 21H
ENDM
14.طول رشته
STRLEN MACRO LENSTR
MOV BX,0
L1:
CMP STR[BX],'$'
JE END
INC BX
INC LEN
JMP L1
END:
MOV LEN,LEN
ENDM
15.دریافت کاراکتر با نمایش آن بر روی مانیتور
GETCHE MACRO
MOV AH,01H
INT 21H
;; MOV ASCII TO AL
ENDM
16.چاپ کاراکتر
PRNCHR MACRO PRNCHR
MOV AH,02H
MOV DL,PRNCHR
INT 21H
ENDM
17.خواندن از فایل
READ MACRO
MOV AH,3FH
MOV BX,H
MOV CX,255
LEA DX,TXT
INT 21H
ENDM
18.نوشتن در فایل
WRITE MACRO
MOV BX,0
WL1:
MOV AH,01H
INT 21H
CMP AL,13
JE WL2
MOV TXT[BX],AL
INC BX
JMP WL1
WL2:
MOV AH,40H
MOV BX,H
MOV CX,BX
LEA DX,TXT
INT 21H
ENDM
19.بستن فایل
CLOSEF MACRO
MOV AH,3EH
MOV BX,H
INT 21H
ENDM
20.باز کردن فایل
OFILE MACRO
MOV AH,3DH
MOV AL,0
LEA DX,DIR
INT 21H
MOV H,AX
ENDM
21.ساخت فایل یا ساخت با اسم خاص
CFILE MACRO
;ENDL
;RCCLRSCR 0,0,24,79,00001111B
;PRINT STR7 ;;PRINT STRING
;MOV BX,0
;
;L1:
;MOV AH,01H
;
;INT 21H
;
;CMP AL,13
;JE L2
;MOV DIR[BX],AL
;INC BX
;JMP L1
;L2:
;MOV DIR[BX],00h
;
;CLRSCR
;
;---
MOV CX,00H
MOV AH,3CH
LEA DX,DIR
INT 21H
JC EXIT
MOV H,AX
RCCLRSCR 0,0,24,79,00001010B
GOTOXY 1,1
PRINT STR8
ENDL
PRINT STR9
MOV AH,00H
INT 16H
CLRSCR
GOTOXY 0,0
JMP MENU
ENDM
22.گرفتن پسورد ولی نشان دادن کاراکتری خاص به جای آن وچک کردن صحت
PASSCHECK MACRO
RCCLRSCR 0,0,24,79,00001100B
GOTOXY 12,26
MOV BX,0
MOV CX,7
L1:
MOV AH,00H
INT 16H
MOV PASS[BX],AL
PRNCHR 0CH
INC BX
LOOP L1
MOV SPASS[BX],'$'
CLD
MOV CX,7
LEA SI,PASSWORD
LEA DI,PASS
REP CMPSB
CMP CX,0
JE MENU
PRINT ER
JMP EXIT
ENDM
اگه یک کوچولو هم خوشت اومد تشکر یادت نره
1.چاپ رشته که یک ورودی میگیره
PRINT MACRO STRING
;;PRINT STRING
MOV AH,09H ;;PRINT STRING
LEA DX,STRING ;;MOV OFFSET STRING
INT 21H
ENDM
2.پاک کردن کل صفحه نمایش
CLRSCR MACRO
MOV AH,06H ;;SERVIC NUMBER
MOV AL,0
MOV CX,0
MOV DH,24
MOV DL,79
MOV BH,00001001B ;;COLOR ATTRIBUTE
INT 10H
ENDM
3.تنظیم مانیتور
SET_MONITOR MACRO
MOV AH,00H ;;SERVIC NUMBER
MOV AL,03H ;;MODE NUMBER
INT 10H
ENDM
4.چاپ یک کاراکتر با تعدادی مشخص
09-10H MACRO CHR,G
MOV AH,09H ;;SERVIC NUMBER
MOV AL,CHR ;;ASCI NUMBER
MOV BH,00H ;;PAGE NUMBER
MOV CX,G
MOV BL,00001001B ;;COLOR ATTRIBUTE
INT 10H
ENDM
5.معکوس رشته با کمک پوش و پاپ ورودی یک رشته
REV MACRO REVSTR
MOV BX,0
L1:
CMP REVSTR[BX],'$'
JE L2
MOV AL,REVSTR[BX]
PUSH AX
INC BX
JMP L1
L2:
MOV CX,BX
XOR BX,BX
L3:
POP AX
MOV REVSTR[BX],AL
INC BX
LOOP L3
MOV REVSTR[BX],'$'
ENDM
6.انتقال مکان نما
GOTOXY R,C
R=ROW
C=COLUMN
GOTOXY MACRO R,C
MOV AH,02H
MOV DH,R
MOV DL,C
MOV BH,00H
INT 10H
ENDM
7.پاک کردن صفحه با پارامترهای مشخص
RCCLRSCR MACRO R1,C1,R2,C2,RANG
MOV AH,06H ;;SERVIC NUMBER
MOV AL,0
MOV CH,R1
MOV CL,C1
MOV DH,R2
MOV DL,C2
MOV BH,RANG ;;COLOR ATTRIBUTE
INT 10H
ENDM
8.خواندن حرف و رنگ مربوط در مکان نمای فعلی
READCHR MACRO
MOV AH,08H
MOV BH,00H ;;PAGE NUMBER
INT 10H
;; MOV AL,ASCII AND MOV AH,COLOR
ENDM
9.کاراکتر میاد تبدیل به کاراکار بزرگ میشه
TOBIG MACRO CHR_2
MOV AL,CHR_2
SUB AL,32
ENDM
10.کاراکتر میاد تبدیل به کوچیک میشه
TOLOW MACRO CHR_3
MOV AL,CHR_3
ADD AL,32
ENDM
البته من قبله استفاده ازین ماکروها نیازم و رفع میکنم بعد نسبت به شرایط ماکر و فراخونی میکنم مثلا قبلش تشخیص میدم کاراکتر کوچیک یا بزرگ
11.بررسی موقعیت و اندازه مکان نما
RC? MACRO
MOV AH,03H
MOV BH,00H
INT 10H
;;--- ROW MOV TO DH
;;COLUMN MOV TO DL
ENDM
12.رفتن به خط بعدی
ENDL MACRO
MOV AH,02H
MOV DL,0AH
INT 21H
MOV AH,02H
MOV DL,0DH
INT 21H
ENDM
13.بیپ به مقدار مشخص
BEEP MACRO T
CMP T,0
JE L2
DEC T
MOV CX,T
L1:
MOV AH,02H
MOV DL,07H
INT 21H
LOOP L1
L2:
MOV AH,02H
MOV DL,07H
INT 21H
ENDM
14.طول رشته
STRLEN MACRO LENSTR
MOV BX,0
L1:
CMP STR[BX],'$'
JE END
INC BX
INC LEN
JMP L1
END:
MOV LEN,LEN
ENDM
15.دریافت کاراکتر با نمایش آن بر روی مانیتور
GETCHE MACRO
MOV AH,01H
INT 21H
;; MOV ASCII TO AL
ENDM
16.چاپ کاراکتر
PRNCHR MACRO PRNCHR
MOV AH,02H
MOV DL,PRNCHR
INT 21H
ENDM
17.خواندن از فایل
READ MACRO
MOV AH,3FH
MOV BX,H
MOV CX,255
LEA DX,TXT
INT 21H
ENDM
18.نوشتن در فایل
WRITE MACRO
MOV BX,0
WL1:
MOV AH,01H
INT 21H
CMP AL,13
JE WL2
MOV TXT[BX],AL
INC BX
JMP WL1
WL2:
MOV AH,40H
MOV BX,H
MOV CX,BX
LEA DX,TXT
INT 21H
ENDM
19.بستن فایل
CLOSEF MACRO
MOV AH,3EH
MOV BX,H
INT 21H
ENDM
20.باز کردن فایل
OFILE MACRO
MOV AH,3DH
MOV AL,0
LEA DX,DIR
INT 21H
MOV H,AX
ENDM
21.ساخت فایل یا ساخت با اسم خاص
CFILE MACRO
;ENDL
;RCCLRSCR 0,0,24,79,00001111B
;PRINT STR7 ;;PRINT STRING
;MOV BX,0
;
;L1:
;MOV AH,01H
;
;INT 21H
;
;CMP AL,13
;JE L2
;MOV DIR[BX],AL
;INC BX
;JMP L1
;L2:
;MOV DIR[BX],00h
;
;CLRSCR
;
;---
MOV CX,00H
MOV AH,3CH
LEA DX,DIR
INT 21H
JC EXIT
MOV H,AX
RCCLRSCR 0,0,24,79,00001010B
GOTOXY 1,1
PRINT STR8
ENDL
PRINT STR9
MOV AH,00H
INT 16H
CLRSCR
GOTOXY 0,0
JMP MENU
ENDM
22.گرفتن پسورد ولی نشان دادن کاراکتری خاص به جای آن وچک کردن صحت
PASSCHECK MACRO
RCCLRSCR 0,0,24,79,00001100B
GOTOXY 12,26
MOV BX,0
MOV CX,7
L1:
MOV AH,00H
INT 16H
MOV PASS[BX],AL
PRNCHR 0CH
INC BX
LOOP L1
MOV SPASS[BX],'$'
CLD
MOV CX,7
LEA SI,PASSWORD
LEA DI,PASS
REP CMPSB
CMP CX,0
JE MENU
PRINT ER
JMP EXIT
ENDM
اگه یک کوچولو هم خوشت اومد تشکر یادت نره