ورود

View Full Version : سوال: زبان اسمبلی کاربردی هست؟ چه نگاهی بهش داشته باشیم؟



vahid javani
دوشنبه 01 آبان 1391, 17:05 عصر
درود
من این ترم اسمبلی گرفتم
اول می خواستم ببینم به نظرتون ارزش یادگیری داره؟ یا در حد جزوه استاد و نمره قبولی بخونم؟
بعدیش هم اینکه با دید کد نوشتن به زبان اسمبلی بخونم یا در حد یادگیری دستورات؟
ممنون از پاسختون

vahid javani
دوشنبه 01 آبان 1391, 17:23 عصر
vaghtet talaf mikoni age ye kalame bishtar az claset bekhoni

خودم هم همین فکر رو کردم چون یه اسمبلر و لینکر برای سیستم های 64 بیتی پیدا نکردم و این نشانه ی تعداد کاربرای کمه

silverfox
دوشنبه 01 آبان 1391, 17:53 عصر
یه بخشش اینه که بدونی کدی که به زبان سطح بالا می زنی بعدا به چی تبدیل می شه و کامپایلرت چطوری با کد ها برخورد می کنه و اینکه چطور می شه بهینش کرد و ازین حرفا
یه کاربردشم می تونه توی cpp باشه یه جا مثلا بخوای خودت مستقیما با register ها کار بکنی
اگر هم تو زمینه crack و یا قفل های نرم/سخت افزاری بخوای فعالیت کنی لازمه که assembly بلد باشی.

در کل اطلاعات پایه ای خیلی زیادی توی این درس یاد داده میشه به جز خود دستورات، ساختار cpu و تعامل نرم افزار با سخت افزار، نحوه ذخیره سازی اعداد انجام عملیات روی اعداد و رشته ها ساختار مموری و خیلی چیزای دیگه...

IamOverlord
شنبه 06 آبان 1391, 04:32 صبح
خودم هم همین فکر رو کردم چون یه اسمبلر و لینکر برای سیستم های 64 بیتی پیدا نکردم و این نشانه ی تعداد کاربرای کمه

سلام.
Flat Assembler (http://flatassembler.net/) که هست... ضمنا چه طور ممکنه هنوز نشه ۶۴ بیت Assemble کرد ولی بشه کامپایل کرد؟ یکی از مراحل کامپایلر ها همین Assemble کردن هست... همچنین با Flat Assembler سیستم عامل (http://www.menuetos.net/) ۳۲ بیتی و ۶۴ بیتی ساختن شبیه Windows... در مورد کاربراش هم واضحه که باید یه عده ی خاص باشن... شما اون Flat Assembler رو دانلود کن تو Example هاش برنامه ی ۶۴ بیتی هم نوشته...
ضمنا Assembly داستانش از زبان های برنامه نویسی دیگه جداست و کاربردهای خودش رو داره.

vahid javani
چهارشنبه 01 آذر 1391, 15:20 عصر
میشه یه اسمبلر معرفی کنید که بتونم این کد رو اجرا کنم؟ هر برنامه ای رو امتحان کردم نتونست اون فایل io.h رو بخونه
اگه امکان داره یه آموزش کوچیکم در موردش بدید
ممنونم از پاسختون

INCLUDE io.h ; header file for input/output

cr EQU 0dh ; carriage return character
Lf EQU 0ah ; linefeed character

stack SEGMENT STACK
DW 100h DUP(?)
stack ENDS

data SEGMENT
number1 DW ?
number2 DW ?
prompt1 DB "Enter first number: ", 0
prompt2 DB "Enter second number: ", 0
string DB 40 DUP (?)
label1 DB cr, Lf, "The sum is “
sum DB 6 DUP (?)
DB cr, Lf, 0
data ENDS
code SEGMENT
ASSUME cs:code, ds:data

start: mov ax, SEG data ;load data segment number
mov ds, ax

prompt: output prompt1 ;prompt for first number
inputs string, 40 ;read ASCII characters
atoi string ;convert to integer
mov number1, ax ;store in memory

output prompt2 ;prompt for second number
inputs string, 40 ;read ASCII characters
atoi string ;convert to integer
mov number2, ax ;store in memory

mov ax, number1 ;first number to AX
add ax, number2 ;add second number
itoa sum, ax ;convert to ASCII characters

output label1 ;output label and sum

quit: mov al, 0 ;return code 0
mov ah, 4ch ;DOS function to return
int 21h ;interupt for DOS services

code ENDS
END start

typeman9
پنج شنبه 17 اسفند 1396, 16:23 عصر
سلام.
Flat Assembler (http://flatassembler.net/) که هست... ضمنا چه طور ممکنه هنوز نشه ۶۴ بیت Assemble کرد ولی بشه کامپایل کرد؟ یکی از مراحل کامپایلر ها همین Assemble کردن هست... همچنین با Flat Assembler سیستم عامل (http://www.menuetos.net/) ۳۲ بیتی و ۶۴ بیتی ساختن شبیه Windows... در مورد کاربراش هم واضحه که باید یه عده ی خاص باشن... شما اون Flat Assembler رو دانلود کن تو Example هاش برنامه ی ۶۴ بیتی هم نوشته...
ضمنا Assembly داستانش از زبان های برنامه نویسی دیگه جداست و کاربردهای خودش رو داره.



سلام:

ممنون دوست عزیز که لااقل قدری زبان اسمبلی را برای دوستان تشریح کردی . بالاخره نمردم و دیدم یکنفر از اسمبلر قدرتمند و استثنایی Fasm یا همون فلت اسمبلر تعریف کرد . ااما در مورد کاربردهای زبان اسمبلی خصوصا Fasm باید بگم که اسمبلی یک زبان همه منظوره هست و کاربردهایش هم خاص هست و هم عام . یعنی یک اچار فرانسه ی کامل برای برنامه نویسی .
اگر کسی از همون ترم اول اسمبلی را کاملا یاد بگیره و باهاش برنامه های بزرگ درحد سیستم عامل بسازه و باهاش تحت ویندوز و لینوکس برنامه نویسی حرفه ای انجام بده دیگه عمرا سمت زبانهای سطح بالا نمیره . مشکل از نظام اموزشی توی دانشگاههاست که اسمبلی را در ترمهای اخر قرار داده اند درحالیکه می بایست در ترم اول قرار بگیره .