امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
کار با فايل ها در اسمبلي به وسيله وقفه ها
نویسنده پیام
The.Ghost غایب
مدیر بازنشسته
*****

ارسال‌ها: 461
موضوع‌ها: 201
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 674
( 354 تشکر در 158 ارسال )
ارسال: #1
Exclamation  کار با فايل ها در اسمبلي به وسيله وقفه ها
با سلام خدمت دوستان محترم:Rolleyes
به علت این که من چند تا ایمیل در زمینه کار با فایل ها دریافت کرده بودم، که می خواستند بدانند چه شکلی در اسمبلی می تواند به فایلی که درون یک درایو وجود دارد دسترسی داشته باشند تصمیم گرفتم توضیح در این زمینه بدهم.
البته بیشتر ایمیل هایی که من دریافت کرده بودم این مطلب را برای نوشتن ویروس می خواستند.Angry
ولی به من چه هر کاری می خواهید انجام دهید.
1. ساختن فایل
2. نوشتن در فایل
3. حذف فایل
4. ساختن پوشه
5. حذف پوشه
6. تغییر نام فایل
7. تغییر نام پوشه
8. باز کردن یک فایل
9. و ...

کد:
org  100h

jmp start

dir1 db "c:\test1", 0
dir2 db "test2", 0
dir3 db "newname", 0
file1 db "c:\test1\file1.txt", 0
file2 db "c:\test1\newfile.txt", 0
file3 db "t1.txt", 0
handle dw ?

text db "lazy dog jumps over red fox."
text_size = $ - offset text
text2 db "hi!"
text2_size = $ - offset text2

start:
mov ax, cs
mov dx, ax
mov es, ax


; create c:\emu8086\vdrive\C\test1
mov dx, offset dir1
mov ah, 39h
int 21h

; create  c:\emu8086\MyBuild\test2
mov dx, offset dir2
mov ah, 39h
int 21h

; rename directory: c:\emu8086\MyBuild\test2 to c:\emu8086\MyBuild\newname
mov ah, 56h
mov dx, offset dir2   ; existing.
mov di, offset dir3   ; new.
int 21h



; create and open file: c:\emu8086\vdrive\C\test1\file1.txt
mov ah, 3ch
mov cx, 0
mov dx, offset file1
int 21h
jc err
mov handle, ax
; write to file:
mov ah, 40h
mov bx, handle
mov dx, offset text
mov cx, text_size
int 21h
; close c:\emu8086\vdrive\C\test1\file1.txt
mov ah, 3eh
mov bx, handle
int 21h
err:
nop


; rename fileL c:\emu8086\vdrive\C\test1\file1.txt to c:\test1\newfile.txt
mov ah, 56h
mov dx, offset file1   ; existing.
mov di, offset file2   ; new.
int 21h


; delete file c:\emu8086\vdrive\C\test1\newfile.txt
mov ah, 41h
mov dx, offset file2
int 21h


; delete directory: c:\emu8086\vdrive\C\test1
mov ah, 3ah
mov dx, offset dir1
int 21h


; create and open file: c:\emu8086\MyBuild\t1.txt
mov ah, 3ch
mov cx, 0
mov dx, offset file3
int 21h
jc err2
mov handle, ax
; seek:
mov ah, 42h
mov bx, handle
mov al, 0
mov cx, 0
mov dx, 10
int 21h
; write to file:
mov ah, 40h
mov bx, handle
mov dx, offset text
mov cx, text_size
int 21h
; seek:
mov ah, 42h
mov bx, handle
mov al, 0
mov cx, 0
mov dx, 2
int 21h
; write to file:
mov ah, 40h
mov bx, handle
mov dx, offset text2
mov cx, text2_size
int 21h
; close c:\emu8086\MyBuild\t1.txt
mov ah, 3eh
mov bx, handle
int 21h
err2:
nop


; delete file  c:\emu8086\MyBuild\t1.txt
mov ah, 41h
mov dx, offset file3
int 21h


; delete directory: c:\emu8086\MyBuild\newname
mov ah, 3ah
mov dx, offset dir3
int 21h

ret
حتما بعدش هم می خواهید بپرسید که چه شکلی می توانید یک پسوند بخصوص را درون یک درایو جستجو کنید که بعد هر چی پیدا کرد حذف کنید؟!ExclamationAngryConfusedExclamationExclamation


Assembly Language 039

۱۴-دى-۱۳۸۹, ۲۲:۳۶:۲۵
ارسال‌ها
پاسخ
تشکر شده توسط : HoseinVig, mhpc2009


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question کار با فایل ها در اسمبلی به وسیله وقفه ها The.Ghost 4 11,698 ۰۳-آذر-۱۳۹۴, ۰۷:۰۳:۵۷
آخرین ارسال: 007rap
  [سوال] معرفي كتاب آموزش زبان اسمبلي براي خريد R0nika 0 2,939 ۲۶-مرداد-۱۳۹۱, ۱۷:۲۲:۳۷
آخرین ارسال: R0nika
  [سوال] ايجاد وقفه با كليد sedigh10 1 2,292 ۰۳-فروردین-۱۳۹۱, ۰۳:۵۸:۰۲
آخرین ارسال: The.Ghost
  يک سوال و چند درخواست ساده و مهم در مورد زبان اسمبلي Sunderlan 1 2,545 ۱۳-دى-۱۳۸۹, ۰۰:۵۲:۵۵
آخرین ارسال: The.Ghost
Rolleyes توضیح درباره وقفه ها The.Ghost 0 5,919 ۲۲-اردیبهشت-۱۳۸۹, ۰۴:۱۷:۲۶
آخرین ارسال: The.Ghost
Rolleyes برنامه اسمبلي فريماه 3 4,038 ۲۹-آبان-۱۳۸۸, ۱۲:۳۰:۴۰
آخرین ارسال: elenaamiri

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS