PDA

View Full Version : مشکل با رجیسترها



Hossenbor
پنج شنبه 13 بهمن 1390, 06:00 صبح
سلام خدمت دوستان عزیز من مشکل در فهم رجیسترها و وقفه ها دارم برای مثال وقتی میخوام یک رشته بگیرم اونو چاپ کنم سیستم وای میسته و هیچ پاسخی نمی ده نمی دونم مشکل از VMware هست یا به برنامه هایه من حساسه من از اینتراپت 10 برای چاپ رشته به شکل زیر استفاده کردم
[bits 16]
[org 7c00h]

uno equ 1
dos dw 13

step1:
mov dos,uno
xor bx,bx
mov ah,0x0e
mov al,[dos]
int 0x10
jmp step1

times 510-($-$$) db 0
dw 0xAA55

که رفتار این برنامه طوری باشه که عدد dos رو چاپ کنه و هر دفعه که اونو چاپ میکنه یک رقم به dos اضافه کنه همونطور که از کد معلومه مال nasm هست در ضمن یک سوال ببخشین کلاس اولیه اخه ما هم کلاس اولییم من میخوام یک سیستم عامل بسازم کدوم به نظر شما راحتتره یکnasm یا fasm یا masm با تشکر

IamOverlord
پنج شنبه 13 بهمن 1390, 10:39 صبح
در ضمن یک سوال ببخشین کلاس اولیه اخه ما هم کلاس اولییم من میخوام یک سیستم عامل بسازم کدوم به نظر شما راحتتره یکnasm یا fasm یا masm

این فقط یک نظر شخصی نیست اگه در منابع خارجی هم بگردی به همین نظر می رسی : FASM
نمونه سیستم عامل هایی که تماما با FASM نوشتن : KolibriOS، MenuetOS، DEXOS، ...

Hossenbor
پنج شنبه 13 بهمن 1390, 12:14 عصر
پس نظر شما FASM هست اخه من نه که کدهایه باینری برنامه هایه کامپایل شده با این کامپایلرها مقایسه کردم هر سه یکی بود که الان برای مقایسه معیار درک و فهمش می مونه که من NASM رو بهتر فهمیدم اما اگه شما میگید FASM من بررسی می کنم فقط اگه میشه شما بگید به چه دلیلی FASM رو انتخاب کردید ممنون میشم با تشکر

IamOverlord
پنج شنبه 13 بهمن 1390, 16:25 عصر
NASM is written in C and supports many object files (ELF, COFF, OMF, MACH-O, AOUT, etc).
FASM is written in assembly, generates ELF / COFF object files, and ELF / PE / MZ executables (NASM needs a linker for generating executables).
NASM and FASM have the same syntax, with some differences.

If you want make an OS in assembly language, FASM is the best choice. Otherwise, if you want make
an OS in C, you should use NASM.

forum.osdev.org (http://forum.osdev.org/viewtopic.php?f=1&t=20868&start=0)