در این سری مطالب به بررسی یه سری نکات میپردازیم که ممکنه شما در حین خوندن زبان اسمبلی نیاز باشه بدونیدشون ، درواقع از 0 تا 100 اسمبلی رو نمیگم بلکه نکات و سوالایی که ممکنه پیش بیاد رو بررسی میکنم
دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
# هر قسمت از کد رو که بولد کردم ، یعنی اون قسمت رو دارم توضیح میدم و مربوط به اون سرفصله
Instruction :
به هر خط کد از زبان اسمبلی میگن دستورالعمل یا Instruction ، مثلا در مثال پایین ما 5 خط کد داریم به زبان اسمبلی ، به هر خط میگن یه دستورالعمل یا Instruction :
MOV EAX,1
MOV EXV,2
MOV EDX,3
MOV ECX,4
MOV INT,0x80
OpCode ( Operation Code ) :
کد های مبنای 16 یا Hexadecimal ای هستن که خلاصه دستورالعمل یا Instruction هستن ، یعنی مثلا بجای MOV EAX,1 ما B8 رو داریم که خلاصه شده همونه ، درواقع opcode چیزیه که به پردازنده میگه چیکار کنه و چه چیزی رو اجرا کنه ، (قاعده زبان ماشین ، در مبنای 16 و 2 رو اگر نمیدونید مطلب اول رو بخونید تا متوجه بشید)
B8 = MOV EAX,1
B9 = MOV EBX,2
BA = PUSH EBP
BB = MOVE ESP,EBP
CD = INT
Mnemonic :
در وهله اول تلفظش میشه (نمونیک ، "M" اولش خونده نمیشه) یه واژه ایه واسه توضیح opcode ، مثلا میتونیم بگیم نمونیکی که استفاده میشه برای توضیح آپکد CD ، میشه INT یا میشه گفت INT نمونیکیه برای آپکد CD ، یا CD آپکدیه برای نمونیک INT
MOV EAX = B9
MOV EBX = B8
MOV ECX = BA
MOV EDX = BB
INT = CD
Operands :
پارامتر ها یا آرگومان هایی هستن که مستقیما یه نمونیک رو دنبال میکنن و با یه نمونیک میان (بسته به نوع دستوری که میزنیم تعداد و نوعشون فرق میکنه)
MOV EAX,1
MOV ECX,2
MOV EDX,3
MOV EBX,4
INT 0x80
INT 80h
INT 128
این سوالات و ابهامات وقتی خودم شروع به خوندن اسمبلی و معماری سیستم کرده بودم برام پیش آمده و به مرور این نکات رو آپدیت میکنم که دوستانی که بعد من میخوان اقدام به خوندن کنن راحت تر باشن :)
سوالی چیزی بود در خدمتم