امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
خروجي تابع
نویسنده پیام
dreamvbfox آفلاین
در حال پیشرفت
***

ارسال‌ها: 426
موضوع‌ها: 44
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 236
( 1251 تشکر در 361 ارسال )
ارسال: #1
خروجي تابع
سلام
خسته نباشيد
يه سوال در مورد اسمبلي داشتم. مي خواستم ببينم چه جوري مي شه خروجي يه تابع رو تشخيص داد. مي خوام تابع MessageBoxA‌رو صدا بزنم بعد ببينم مقدار خروجيش چنده ؟ مثلا yes يا no زده و ...


ممنون ميشم كمك كنيد .
خدانگهدار

Biggrin Use Google instead of asking stupid questions Biggrin

[/url]
CMC Automation System


آموزش زبان c++
[url=http://www.iranled.com/forum/thread-13923.html]

۰۵-آذر-۱۳۸۸, ۲۰:۴۹:۰۱
وب سایت ارسال‌ها
پاسخ
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #2
RE: خروجي تابع
فکر نمی کنم تو اسمبلی، تابع خروجی داشته باشه!!
متغیرها هم که تو اسمبلی بصورت گلوبال تعریف می شن. پس کافیه یه متغیر رو به عنوان خروجی فرض کنی و اونو مقدار بدی.

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
۰۶-آذر-۱۳۸۸, ۰۰:۳۶:۵۶
ارسال‌ها
پاسخ
تشکر شده توسط : dreamvbfox
saeedsmk آفلاین
مدیر بخش کرک و کامپیوتر
*****

ارسال‌ها: 506
موضوع‌ها: 74
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 677
( 1179 تشکر در 348 ارسال )
ارسال: #3
RE: خروجي تابع
سلام
خوب هستيد
تيو اسمبلي معمولا خروجي ها در eax برگردونده ميشه
و يا در edx:ecx برگردونده ميشه
به اميد ديدار

در دنياي كه مرگ شكارچي ان است بايد شكارچي بود - تعليمات دون خوان نوشته كارلوس كاستاندار
۰۶-آذر-۱۳۸۸, ۰۱:۳۸:۴۵
ارسال‌ها
پاسخ
تشکر شده توسط : dreamvbfox
dreamvbfox آفلاین
در حال پیشرفت
***

ارسال‌ها: 426
موضوع‌ها: 44
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 236
( 1251 تشکر در 361 ارسال )
ارسال: #4
RE: خروجي تابع
(۰۶-آذر-۱۳۸۸, ۰۱:۳۸:۴۵)saeedsmk نوشته است: سلام
خوب هستيد
تيو اسمبلي معمولا خروجي ها در eax برگردونده ميشه
و يا در edx:ecx برگردونده ميشه
به اميد ديدار

سلام
ميشه يه مثال بزنيد . من كه هر كاري كردم نشد !!!

ممنون

Biggrin Use Google instead of asking stupid questions Biggrin

[/url]
CMC Automation System


آموزش زبان c++
[url=http://www.iranled.com/forum/thread-13923.html]

۰۶-آذر-۱۳۸۸, ۱۹:۱۴:۰۶
وب سایت ارسال‌ها
پاسخ
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #5
RE: خروجي تابع
اسمبلی که تو دانشگاه درس می دن معمولا 8086/85 و eax نداره!!

فکر می کنم منظورشون همون بود که من گفتم. نتیجه رو تو یه متغیر یا ثبات(مثل Ax یا EAX ) بذار...

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
(آخرین ویرایش در این ارسال: ۰۶-آذر-۱۳۸۸, ۱۹:۵۸:۰۸، توسط محمد حسینی.)
۰۶-آذر-۱۳۸۸, ۱۹:۵۷:۵۱
ارسال‌ها
پاسخ
dreamvbfox آفلاین
در حال پیشرفت
***

ارسال‌ها: 426
موضوع‌ها: 44
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 236
( 1251 تشکر در 361 ارسال )
ارسال: #6
RE: خروجي تابع
(۰۶-آذر-۱۳۸۸, ۱۹:۵۷:۵۱)Sp!d3rm4n نوشته است: اسمبلی که تو دانشگاه درس می دن معمولا 8086/85 و eax نداره!!

فکر می کنم منظورشون همون بود که من گفتم. نتیجه رو تو یه متغیر یا ثبات(مثل Ax یا EAX ) بذار...

سلام
اگر ميشه يه مثال بزنيد يه سورس كد بديد من متوجه بشم !!

ممنون

Biggrin Use Google instead of asking stupid questions Biggrin

[/url]
CMC Automation System


آموزش زبان c++
[url=http://www.iranled.com/forum/thread-13923.html]

۰۶-آذر-۱۳۸۸, ۲۰:۰۳:۴۲
وب سایت ارسال‌ها
پاسخ
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #7
RE: خروجي تابع
چیزی نداره که مثال بزنم!
کد:
.MODEL SMALL
.STACK
.CODE
MAIN PROC FAR
    
    ;INITIALIZE BL
    CALL ADD1
    ;PRINT AL
    .EXIT
MAIN ENDP

ADD1 PROC NEAR
    INC BL
    MOV AL, BL    ;RETURN TO AL
    RET
CAL ENDP

END MAIN

تابع add1 به bl یمی اضاقه می کنه و کپی می کنه تو al

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
۰۶-آذر-۱۳۸۸, ۲۲:۵۹:۵۰
ارسال‌ها
پاسخ
تشکر شده توسط : dreamvbfox
saeedsmk آفلاین
مدیر بخش کرک و کامپیوتر
*****

ارسال‌ها: 506
موضوع‌ها: 74
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 677
( 1179 تشکر در 348 ارسال )
ارسال: #8
RE: خروجي تابع
سلام
خوب هستيد
وقتي تابعي مثل MessageBoxA صدا زده بشه يعني اسمبلي تحت ويندوز است . يعني برنامه نويسي 32 بيتي پس خروجي توي ثبات هاي Eax و... برگردانده ميشه .
کد:
.386
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib kernel32.lib
include \masm32\include\user32.inc
includelib user32.lib

.data
MsgCaption db "Shadow's Messagebox test",0
MsgBoxText db " [Select OK or Cancle] !",0
MsgBoxTex2 db "You Press OK!",0

.code
start:

invoke MessageBox, NULL,addr MsgBoxText, addr MsgCaption, 1

.IF eax==1


invoke MessageBox, NULL,addr MsgBoxTex2, addr MsgCaption, 0

.ENDIF

invoke ExitProcess,NULL ; if the user closes our window
end start
كه ديباگش توي اولي ديباگر ميشه
کد:
00401000 ms> $ 6A 01 PUSH 1 ; /Style = MB_OKCANCEL|MB_APPLMODAL
00401002 . 68 00304000 PUSH 403000 ; |Title = "Shadow's Messagebox test"
00401007 . 68 19304000 PUSH 403019 ; |Text = " [Select OK or Cancle] !"
0040100C . 6A 00 PUSH 0 ; |hOwner = NULL
0040100E . E8 25000000 CALL 00401038 ; \MessageBoxA
00401013 . 83F8 01 CMP EAX, 1
00401016 . 75 13 JNZ SHORT 0040102B ; msgbox2.0040102B
00401018 . 6A 00 PUSH 0 ; /Style = MB_OK|MB_APPLMODAL
0040101A . 68 00304000 PUSH 403000 ; |Title = "Shadow's Messagebox test"
0040101F . 68 32304000 PUSH 403032 ; |Text = "You Press OK!"
00401024 . 6A 00 PUSH 0 ; |hOwner = NULL
00401026 . E8 0D000000 CALL 00401038 ; \MessageBoxA
0040102B > 6A 00 PUSH 0 ; /ExitCode = 0
0040102D . E8 00000000 CALL 00401032 ; \ExitProcess
00401032 $- FF25 00204000 JMP NEAR DWORD PTR DS:[402000] ; kernel32.ExitProcess
00401038 $- FF25 08204000 JMP NEAR DWORD PTR DS:[402008] ; USER32.MessageBoxA
به اميد ديدار


فایل‌(های) پیوست شده
.zip   msgbox2.zip (اندازه: 540 bytes / تعداد دفعات دریافت: 118)

در دنياي كه مرگ شكارچي ان است بايد شكارچي بود - تعليمات دون خوان نوشته كارلوس كاستاندار
(آخرین ویرایش در این ارسال: ۰۷-آذر-۱۳۸۸, ۰۰:۴۸:۱۳، توسط saeedsmk.)
۰۷-آذر-۱۳۸۸, ۰۰:۴۷:۳۴
ارسال‌ها
پاسخ
تشکر شده توسط : dreamvbfox, محمد حسینی, lord_viper
dreamvbfox آفلاین
در حال پیشرفت
***

ارسال‌ها: 426
موضوع‌ها: 44
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 236
( 1251 تشکر در 361 ارسال )
ارسال: #9
RE: خروجي تابع
(۰۶-آذر-۱۳۸۸, ۲۲:۵۹:۵۰)Sp!d3rm4n نوشته است: چیزی نداره که مثال بزنم!
کد:
.MODEL SMALL
.STACK
.CODE
MAIN PROC FAR



;INITIALIZE BL

CALL ADD1

;PRINT AL

.EXIT
MAIN ENDP

ADD1 PROC NEAR

INC BL

MOV AL, BL
;RETURN TO AL

RET
CAL ENDP

END MAIN

تابع add1 به bl یمی اضاقه می کنه و کپی می کنه تو al
سلام
دست شما درد نكنه.
البته منظور من رو شما نفهميديد !!! من مي خوام خروجي تابع MessageBoxA‌رو بررسي كنم نه تابعي كه خودم نوشتم !!! اين تابع MessageBoxA يه سري آرگومان ميگيره با دستور Push بعد Call ميشه . حالا ميخوام ببينم بعد از صدا زدن خروجي چي شده!!! ايا اصلا پيغامي اومده يا جواب كاربر چي بوده ؟؟

آقا سعيد دستشون تو كاره بهتر متوجه ميشن!!! اميدوارم كه جوابم رو بدن.

خدانگهدار
(۰۷-آذر-۱۳۸۸, ۰۰:۴۷:۳۴)saeedsmk نوشته است: سلام
خوب هستيد
وقتي تابعي مثل MessageBoxA صدا زده بشه يعني اسمبلي تحت ويندوز است . يعني برنامه نويسي 32 بيتي پس خروجي توي ثبات هاي Eax و... برگردانده ميشه .
کد:
.386
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib kernel32.lib
include \masm32\include\user32.inc
includelib user32.lib

.data
MsgCaption db "Shadow's Messagebox test",0
MsgBoxText db " [Select OK or Cancle] !",0
MsgBoxTex2 db "You Press OK!",0

.code
start:

invoke MessageBox, NULL,addr MsgBoxText, addr MsgCaption, 1

.IF eax==1


invoke MessageBox, NULL,addr MsgBoxTex2, addr MsgCaption, 0

.ENDIF

invoke ExitProcess,NULL ; if the user closes our window
end start
كه ديباگش توي اولي ديباگر ميشه
کد:
00401000 ms> $ 6A 01 PUSH 1 ; /Style = MB_OKCANCEL|MB_APPLMODAL
00401002 . 68 00304000 PUSH 403000 ; |Title = "Shadow's Messagebox test"
00401007 . 68 19304000 PUSH 403019 ; |Text = " [Select OK or Cancle] !"
0040100C . 6A 00 PUSH 0 ; |hOwner = NULL
0040100E . E8 25000000 CALL 00401038 ; \MessageBoxA
00401013 . 83F8 01 CMP EAX, 1
00401016 . 75 13 JNZ SHORT 0040102B ; msgbox2.0040102B
00401018 . 6A 00 PUSH 0 ; /Style = MB_OK|MB_APPLMODAL
0040101A . 68 00304000 PUSH 403000 ; |Title = "Shadow's Messagebox test"
0040101F . 68 32304000 PUSH 403032 ; |Text = "You Press OK!"
00401024 . 6A 00 PUSH 0 ; |hOwner = NULL
00401026 . E8 0D000000 CALL 00401038 ; \MessageBoxA
0040102B > 6A 00 PUSH 0 ; /ExitCode = 0
0040102D . E8 00000000 CALL 00401032 ; \ExitProcess
00401032 $- FF25 00204000 JMP NEAR DWORD PTR DS:[402000] ; kernel32.ExitProcess
00401038 $- FF25 08204000 JMP NEAR DWORD PTR DS:[402008] ; USER32.MessageBoxA
به اميد ديدار

سلام
دمت گرم داداش . كارت مثل هميشه حرف نداره Shy

ممنون

Biggrin Use Google instead of asking stupid questions Biggrin

[/url]
CMC Automation System


آموزش زبان c++
[url=http://www.iranled.com/forum/thread-13923.html]

(آخرین ویرایش در این ارسال: ۰۷-آذر-۱۳۸۸, ۰۰:۵۲:۲۹، توسط dreamvbfox.)
۰۷-آذر-۱۳۸۸, ۰۰:۴۹:۰۰
وب سایت ارسال‌ها
پاسخ
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #10
RE: خروجي تابع
عجب ! ما هنوز به اینجاهاش نرسیدیم!! Biggrin بحث تابع جلسه پیش شروع شده ...

یه سوالم من بپرسم :

وقفه دریافت ساعت و تاریخ سیستم چیه؟
عجله دارم. باید پروژه رو تموم کنم. خیلی گشتم پیدا نشد. چندتایی پیدا کردم نگفته بود خروجی تابع کجا میره و چجوریه ...
یه سایت یا مرجع کامل می شناسید که همه وقفه های اسمبلی رو داشته باشه؟

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
(آخرین ویرایش در این ارسال: ۰۷-آذر-۱۳۸۸, ۰۱:۲۵:۰۹، توسط محمد حسینی.)
۰۷-آذر-۱۳۸۸, ۰۱:۱۷:۰۷
ارسال‌ها
پاسخ
saeedsmk آفلاین
مدیر بخش کرک و کامپیوتر
*****

ارسال‌ها: 506
موضوع‌ها: 74
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 677
( 1179 تشکر در 348 ارسال )
ارسال: #11
RE: خروجي تابع
سلام
خوب هستيد
http://www.htl-steyr.ac.at/~morg/pcinfo/...te1at0.htm
http://spike.scu.edu.au/~barry/interrupts.html
به اميد ديدار

در دنياي كه مرگ شكارچي ان است بايد شكارچي بود - تعليمات دون خوان نوشته كارلوس كاستاندار
(آخرین ویرایش در این ارسال: ۰۹-آذر-۱۳۸۸, ۰۱:۴۰:۰۴، توسط saeedsmk.)
۰۹-آذر-۱۳۸۸, ۰۱:۳۹:۰۹
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [سوال] پیدا کردن تابع event کلیک (؟) salehjg 5 3,914 ۱۶-بهمن-۱۳۹۱, ۰۱:۰۷:۵۴
آخرین ارسال: salehjg
  معکوس الگوریتم این تابع چی میشه ؟ ayat2006 1 2,247 ۰۸-اسفند-۱۳۹۰, ۰۹:۰۵:۰۵
آخرین ارسال: ayat2006

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 3 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS