View Full Version : فرمت کردن دیسک
salar_kian
سه شنبه 15 مرداد 1392, 23:00 عصر
سلام
کسی از دوستان هست در مورداینکه چطوری بتونم با تابع 05 وقفه 13 یک درایو روفرمت کنم توضیحی بده یا اگه هم هست کد هاش رو برام بنویسه من این کد ها رو نوشتم اما اجرا میشه و خطا نمیده و کاری هم نمیکنه!
.model small
.stack 128
.code
main proc
mov ah,19h
int 21h
mov ah,05
mov cx,10
mov dh,1
mov dl,80h
int 13h
mov ah,4ch
int 21h
main endp
end main
با تابع 19 وقفه 21 درایو جاری رو بدست آوردم
و بقیه هم .........
هست یاری کننده ای که یاری کند مرا
؟!
m.j_banitaba
شنبه 19 مرداد 1392, 07:36 صبح
منظور شما از فرمت کردن دقیقا چیه.آیا می خواهید پارتیش بندی و فایل فرمت رو تغییر بدین ؟یا مشخصات سخت افزاری یک دیسک را تغییر بدین؟
salar_kian
شنبه 19 مرداد 1392, 17:46 عصر
سلام
ممنون که جواب دادین
همون عمل فرمت کردن!
منطورم اینه که بتونم یک درایو رو یا چندتا از سکتور ها رو فرمت کنم!
درواقع به نوعی تخریب انجام بشه!
یا همون عمل فرمت که تو داس یا ویندوز انجام میشه!
m.j_banitaba
یک شنبه 20 مرداد 1392, 15:14 عصر
از سرویس 3 وقفه 0x13 باید استفاده کنی.
http://stanislavs.org/helppc/int_13-3.html
salar_kian
دوشنبه 21 مرداد 1392, 20:00 عصر
از سرویس 3 وقفه 0x13 باید استفاده کنی.
http://stanislavs.org/helppc/int_13-3.html
سلام و تشکر از بابت وقتی که گذاشتین من این سایت و چندتا سایت شبیه این رو رفتم اما اصلا کار نکرد!
نمیدونم کجا اشتباه میکردم! در ضمن برای نوشتن تو سکتور راستش داده برام مهم نیست هرچی میخواد باشه! میخواستم شما یا کشی هست که بتونه کدی که نوشتم رو تکمیل کنه!؟
اون کد های من اجرا میشن ولی عملی انجام نمیده!!!! نه خطایی میده نه کاری میکنه!
Delphi Coder
سه شنبه 22 مرداد 1392, 02:45 صبح
صرف فرمت کردن دیسک محدود میشه به استفاده از وقفه. از برنامه HelpPC میتونید مشخصات ورودی و خروجی وقفه و تابع مورد نظر رو مطالعه کنید.
اما عمل فرمت کردن دیسک صرفا خود فرمت نیست نوشتن بوت سکتور هم قسمتی از همین پروسه هست که بدون اون سیستم عامل قادر به استفاده از دیسک نخواهد بود چون یه سری کدها اجرایی و داده هایی در بوت سکتور هست که سیستم عامل به اونها نیاز داره.
یه سورس کد اینجــــــــــــــا (http://www.fysnet.net/frmtdemo.htm) هست ممکنه براتون مفید باشه.
یه مشکل دیگه هم که احتمالا براتون پیش بیاد (مطمئن نیستم) این هست که ممکنه ویندوز جلوی استفاده از این سرویسهای Low Level بایوس رو بگیره.
m.j_banitaba
سه شنبه 22 مرداد 1392, 11:18 صبح
1- آیا دلیل خاصی داره می خواهید با اسمبلی این کارو انجام بدین؟ چون با برنامه های دیگه راحتر میشه این کارو کرد.
2-مثال int13h (http://stackoverflow.com/questions/9899577/example-for-int-13-ah-03h-interupt-assembly)
salar_kian
سه شنبه 22 مرداد 1392, 21:51 عصر
1- آیا دلیل خاصی داره می خواهید با اسمبلی این کارو انجام بدین؟ چون با برنامه های دیگه راحتر میشه این کارو کرد.
2-مثال int13h (http://stackoverflow.com/questions/9899577/example-for-int-13-ah-03h-interupt-assembly)
دلیل خاصش اینه که باید به استاد تحویلش بدم!
darknes666
چهارشنبه 23 مرداد 1392, 00:37 صبح
این لینک ها رو هم یه نگاه بنداز:
http://forum.osdev.org/viewtopic.php?f=1&t=7762
http://en.wikipedia.org/wiki/INT_13H
http://www.htl-steyr.ac.at/~morg/pcinfo/hardware/interrupts/inte6xio.htm
http://stanislavs.org/helppc/int_13.html
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.