پرسش و پاسخ در برنامه نویسی اسمبلی

دختر شرقی

کاربر حرفه ای
کاربر ممتاز
با سلام
دوستان عزیز هرگونه سوال متفرقه در زمینه برنامه نویسی به زبان اسمبلی رو میتونید در این تاپیک مطرح نمایید ...
 
آخرین ویرایش:

shazde kuchulo

عضو جدید
کمک کنید

کمک کنید

سلام میبخشید برنامه های اسمبلی را در چه محیطی باید نوشت؟:warn:
 

yamaha R6

کاربر حرفه ای
کاربر ممتاز
سلام میبخشید برنامه های اسمبلی را در چه محیطی باید نوشت؟:warn:
سلام کد برنامه رو تو notepad و تد محیط command با استفاده از برنامه های tasm , tlink می تونی فایل exe شو بسازی البته باید فایل های tasm , tlink رو داشته باشی:D
 

Narciss

عضو جدید
جان من كمك كنيد

جان من كمك كنيد

چرا اول همه ي دستورات اسمبلي دو خط mov AX,Data ,
MOV DS,AX را مي آوريم.:cry:
 

ali.samavi

عضو جدید
نگهداری

نگهداری

سلام واسه این که آدرس محلی که داده ها در آن قرار دارن و توی ds که ثبات data segment قرار بدیم.

برای نگهداری مقادیر اولیه ثبات های فوق ونشان دادن شروع یک برنامه جدید برای سیستم تا سیستم رایانه قاطی نکند
 

Narciss

عضو جدید
مرسي از لطفتون! يه سوال چرا Monazzah , ali جان هميشه با همديگه سوالها رو جواب مي دن؟;)
 

samira222

عضو جدید
برنامه اسمبلي - كمك فوري

برنامه اسمبلي - كمك فوري

سلام بچه ها :
من خيلي خيلي فوري نياز به يك برنامه اسمبلي با موضوع
1- به دست اوردن cos با اين سري :
( a + b) ^ n = ∑ [ n,I ] ( n بالا , i پايين , به توان n-I , و با پايه a ) * n^ i
2- اگر بيتهاي 5و6و7 data1 يك بودند انها را صفر كند و در غير اين صورت بيتهاي 0و1و2و3 را صفر كند .
+ ضرب اعداد علامتدار كه اين يكي خيلي مهمه !!!
لطفا هر كي مي دونه كمك كنه !!! واقعا متشكرم
 

sajad_strant

عضو جدید
پرسش و پاسخ در برنامه نویسی اسمبلی

با سلام

با اجازه مديران تالار

اين تاپيك براي سوال و پاسخ در مورد مباحث پيرامون زبان جذاب اسمبلي مي باشد.
سوالات و مطالب خود را اينجا قرار دهيد.

 
آخرین ویرایش:

baback

کاربر فعال
سلام به بروبچ کامپیوتر

اگر کسی در رابطه با موضوع " فراخوانی توابع سیستم عامل " در زبان اسمبلی مطلبی داره بهم معرفی کنه ممنون میشم .
 

sajad_strant

عضو جدید
سلام به بروبچ کامپیوتر

اگر کسی در رابطه با موضوع " فراخوانی توابع سیستم عامل " در زبان اسمبلی مطلبی داره بهم معرفی کنه ممنون میشم .
سلام
من به صورت پراكنده و موضوعي مطالبي را در كتاب آقايان سيدرضي و پيتر نورتن ديدم.اما اصول كار در اسمبلي در اين موارد برپايه وقفه ها مي باشد كه شماره و كاربرد آنها در مراجع اسمبلي آمده است.به لينك زير هم سري بزنيد:
http://www.hpkclasses.ir/Courses/Assembly/asm1200.html
موفق باشيد
 

narnia-m

عضو جدید
سوال

سوال

سلام .تو زبان اسمبلی چه طور می تونیم یه متغیر رو بعد از انجام اعمال محاسباتی به عنوان خروجی چاپ کنیم؟؟؟یه چیزی مثل cout یا printf
 

fjalili

عضو جدید
سلام .تو زبان اسمبلی چه طور می تونیم یه متغیر رو بعد از انجام اعمال محاسباتی به عنوان خروجی چاپ کنیم؟؟؟یه چیزی مثل cout یا printf

دوست عزیز،

یا باید از اینتراپت مربوطه استفاده کنی و یا مستقیماً روی حافظه صفحه نمایش بنویسی...


موفق باشی...
 
آخرین ویرایش:

fjalili

عضو جدید
سلام .تو زبان اسمبلی چه طور می تونیم یه متغیر رو بعد از انجام اعمال محاسباتی به عنوان خروجی چاپ کنیم؟؟؟یه چیزی مثل cout یا printf

دوست عزیز،
بسته به اینکه چه چیزی را میخواهی چاپ کنی و اینکه در چه محیطی کار می کنی شاید یک کمی فرق کنه. مثلاً string میخواهی چاپ کنی، integer و یا char به هر حال چون از printf گفتی حس کردم که داری توی کامپایلر c کار میکنی، برای همین یک مثال در زیر برایت می آورم که در اینجا در اصل یک آرایه ای از اعداد فلوت را چاپ میکند و با استفاده از توانایی های کامپایلر مربوطه نوشته شده:

برنامه c
کد:
float a[]={1.1,2.2,3.3,4.5,5.2};
for (int i=4;i>=0;i--)
	   printf("%f ", a[i]);

و برنامه معادل اسمبلی در این کامپایلر
کد:
double a[5]={10.0,20.0,30.0,40.0,50.0};
	char myformat[]="%f ";
	__asm {
           
		MOV ECX,5
               //ecx = index of array a, ecx in [4,3,2,1,0]
		ILOOP:
			push ecx
			dec ecx
			push dword ptr [a+ecx*8+4]	//sizeof(double)=8 bytes
			push dword ptr [a+ecx*8]
			//push myformat
			lea eax, myformat
			push EAX
			call dword ptr[printf]
			call dword ptr[_getch]
			pop EAX
			pop EBX
			pop EAX
			POP ECX
		LOOP ILOOP
}

موفق باشی.
 

maryam8712

عضو جدید
مرتب سازی درجی

مرتب سازی درجی

سلام
من دنبال برنامه مرتب سازی درجی به صورت صعودی به زبان اسمبلی هستم
لطفا کمکم کنید:(
 

tiziano

عضو جدید
سلام شرمنده میشه 1مثال در مورد loop در 32 بیتی بزارید.ممنون میشم جدا به عنوان الگو نیاز دارم بهش
 

haniyee

عضو جدید
کمکککککککککککککک

کمکککککککککککککک

سلام .تو زبان اسمبلی چه طور می تونیم یه مثلث و دایره رسم کنیم؟:eek:
 

minoo1_t

عضو جدید
سلام
من یه پروژه کاملمی خوام که حرکت ماوس توی DOS باشه وا با هر کلیک بگه کدوم رو زدیم
و این که تو C با دستورای اسمبلی یه خط چاپ کنه
راستی تا امشب می خوام جوووووووووووووون هر کی دوست داری
 

root

عضو جدید
با سلام ممکنه به این سوال من جواب بدید:
چطور محتویات رکورد راه انداز رو داخل یه ساختار بریزیم و نشون بدیم .اصلا تو اسمبلی ساختار داریم یا نه؟
 

f.imeni

عضو جدید
help

help

سلام من مي خوام بدونم چطوري تو اسمبلي دايره و مثلث بكشم با ابعاد و زاويه متغير؟
من تا 5 روز ديگه فرصت دارم
 

sajad_strant

عضو جدید
سلام
برای هر کدام از اینها باید یک ماکرو تعریف کنی و شماره وقفه ها و ثبات هاش هم موجود است.کافیه به یکی از رفرنس های این زبان مراجعه کنی
موفق باشی
 

roya gh

عضو جدید
سلام
ممنون میشم اگه کمکم کنید...
چرا با وجود روش تقسیمات متوالی برای تبدیل از مبنای ده به دو از روش کد گذاریBCD استفاده می شود؟
 

roya gh

عضو جدید
CPU

CPU

ببخشید یه سوال دیگه!
در اسمبلی وقتی می گوییم سرعت CPUاست 4000MHEمنظورمان چیست؟
 

fififd

عضو جدید
مقایسه رشته ها

مقایسه رشته ها

با سلام
میخواستم ببینم تابعی برای اینکه رشته ها رو مقایسه کنیم وجود داره یا نه؟
مثل strcmp در c
یا اینکه باید تک تک حروف رو چک کنیم؟
ممنون میشم اگه زودتر بهم جواب بدید چون خیلی لازم دارم
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
با سلام
میخواستم ببینم تابعی برای اینکه رشته ها رو مقایسه کنیم وجود داره یا نه؟
مثل strcmp در c
یا اینکه باید تک تک حروف رو چک کنیم؟
ممنون میشم اگه زودتر بهم جواب بدید چون خیلی لازم دارم
با سلام،
برای مقایسه ی دو رشته از دستور CMPS استفاده می کنیم. برای چک کردن یک واحدی باید از شکل CMPSB استفاده کنید.
آدرس رشته های مورد نظر باید در SI و DI قرار بگیره و تعداد واحدها برای مقایسه در CX قرار می گیره!
این دستور رو باید به همراه REPE یا REPNE استفاده کنید. اولی تا زمانی که دو رشته مساویند مقایسه رو ادامه می ده و دومی برعکس!
بعد از این دستور باید فلگ Z رو بررسی کنید و با توجه به مقدار فلگ عمل مربوطه رو انجام بدید. مثلاً در repe cmpsb یک بودن فلگ z یعنی دو رشته با هم برابر بوده اند!
 

mahfak

عضو جدید
سلام يه برنامه بايد بنويسم كه يك ارايه بگيره مينيمم و ماكزيمم رو چاپ كنه بعدش يه عدد بگيره انديسشو بده كمك اين برنامه جواب درستي بهم نميده
 

پیوست ها

  • 1.txt
    1.4 کیلوبایت · بازدیدها: 0

sayyad84

متخصص زبان Assembly
کاربر ممتاز
سلام يه برنامه بايد بنويسم كه يك ارايه بگيره مينيمم و ماكزيمم رو چاپ كنه بعدش يه عدد بگيره انديسشو بده كمك اين برنامه جواب درستي بهم نميده
کد:
; multi-segment executable file template.data segment
    ; add your data here!
    pkey db "press any key...$" 
    Array db 3 dup(db 3 dup(?))
    b db "Enter a search number:$"
    z db "*****:$" 
    s db 0h
    g db 0h
endsstack segment
    dw   128  dup(0)
endscode segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax    ; add your code here 
    lea SI,Array 
    mov bx,0h
    mov dx,[si][bx]
    
    mov cx,9  
    L:
    mov ah,01
    int 21h
    mov [si][bx],al
    inc bx
    loop L 
    
    mov ah,09h
    lea dx,b
    int 21h   
   
    mov ah,01
    int 21h 
    sub al,30h
    mov s,0h 
    
    lea SI,Array  
    mov bx,0h
    mov cx,9  
    L1:
    cmp al,[si][bx]
    JNE L2
    je End1
    
   L2:
   cmp bx,2
   je L3 
   inc bx
   ;loop L2
  ;  inc bx
   
  mm:  loop L1 
    
    L3:
    mov bx,0
    inc s
    add si,3
    cmp cx,0
    jne mm
    
    
    End1:
    mov ah,09h
    lea dx,z
    int 21h   
    
    mov Ah,02h
    mov dx,bx
    add dx,30h
    int 21h
     
    mov Ah,02h
    mov dx,si
    add dx,30h
    int 21h
    
            
    lea dx, pkey
    mov ah, 9
    int 21h        ; output string at ds:dx
    
    ; wait for any key....    
    mov ah, 1
    int 21h
    
    mov ax, 4c00h ; exit to operating system.
    int 21h    
endsend start ; set entry point and stop the assembler.
با سلام،
می شه بگید کدوم قسمتش Min و Max کشف می کنه؟
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
راستش من اينو ننوشتم ميگم جواب درستي نميده :(
این برنامه یه سری عدد یک رقمی می گیره، یه ورودی برای جستجو، و نتیجه ی جستجو رو هم می گه! برنامه رو با شرایطی که گفتم تست کنید!
 

mahfak

عضو جدید
اره عدد يك رقمي ميخوام حالا ماكزيمم و مينيمم نداد مهم نيست اما وقتي 9تا عددو ميگيره دوباره از 4چاپ ميكنه بعدش عدد مورد نظرو وارد ميكنم 0 ميده فقط من مي خوام انديس عددمو تو ارايه بده
 

Similar threads

بالا