الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عجزت عن تنفيذ كود بسيط في masm32

مغلق
بدأه fafe0 في 25 مارس 2006 · 2 رد · 543 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

حاولت كثيراً بالأمس من أجل تنفيذ برنامج آخر من خلال برنامجي، استمرت المحاولات الفاشلة حوالي 30 دقيقة، لغاية ما عجزت وقررت أسأل

هذا هو الكود:

.386
.model flat, stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\shell32.inc
includelib \masm32\lib\shell32.lib
include  \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
include \masm32\include\user32.inc 
includelib \masm32\lib\user32.lib 


.data

malaf db "c:\palsound.txt",0

.code

start:
    invoke ShellExecute, NULL, "open", addr malaf, NULL, NULL, SW_SHOW
    invoke ExitProcess, 0
end start

طبعاً جربت كثيراً من الاختيارات، يعني مثلاً:

قمت بإضافة user32 مع أني شبه متأكد أنها لا علاقة لها بمثل هذا البرنامج.

غيرت addr إلى offset

غيرت 386 إلى 486

غيرت ShellExecute إلى ShellExecuteA

وغيرها SW_SHOW إلى 5 حسب ما موجود في windows.inc

والكثير الكثير

لكن دون جدوى

هل من مساعدة بارك الله فيكم !!!

أكاد أجن من هذه المشكلة،

البرنامج يتجمع بشكل ممتاز، لكن لا يعمل، في الrun time تحصل مشكلة، الله أعلم ما هي، ويتوقف البرنامج عن العمل، قبل أن ينفذ الملف المطلوب تشغيله.

جربوا الكود السابق، وستلاحظوا نفس النتيجة.

بانتظاركم...

والسلام عليكم ورحمة الله وبركاته.

#2

المشكلة لديك في الـ verb, قم بتغييره الى NULL

او غير "open" الى addr verb

وفي قسم .data اضف verb db "open", 0

لانك في مثالك تدفع البارامتر على انه قيمة وسيكون عبارة عن بايتات

تم تعديل هذه المشاركة بواسطة Xacker في 25 مارس 2006 في 15:29

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#3

جزاك الله خيراً أخي Xacker

الآن كل شي تمام :)

فرجت عني هذا الهم، الله يفرج عنك كل هم .

السلام عليكم.

هذا الموضوع مغلق.

مواضيع مشابهة