PDA

View Full Version : مبتدی: خطا در هنگام اجرا کردن برنامه در8086 Emu



ali.fanos
شنبه 15 آذر 1393, 19:34 عصر
سلام دوستان،برنامه merg sort رو از net گرفتم هنگام کامپایل کردن با نرم افزار emu8086 هیچ error نداره،ولی هنگام اجرا این ارور زیر رو میده،
126350
و سورس برنامه هم به شرح زیره

data segment
A DB 6,5,2,8,10,14,15,13
Len DB 4
data ends

stack segment
dw 128 dup(0)
stack ends

code segment
start:
MOV AX, data
MOV DS, AX
MOV ES, AX



MOV CH , 0
MOV CL , Len
MOV SI , 1

L1:
MOV AL , A[SI]
MOV DI , SI
While:
CMP DI , 0
JBE End_While

DEC DI
CMP A[DI],AL
INC DI
JBE End_While

DEC DI
MOV AH , A[DI]
INC DI

MOV A[DI] , AH
DEC DI
JMP While

END_While:

MOV A[DI] , AL
INC SI
LOOP L1


MOV AX, 4c00H

INT 21H

code ends

end start

masoud.8086
شنبه 15 آذر 1393, 19:45 عصر
سلام
این خطا نیست !!! این پیام به این این معناس که کنترل برنامه به سیتم عامل بازگشت داده شده!!!
برنامه داره کار میکنه.. ولی مقادیرو داره داخل ارایه a مرتب میشه و نمایش داده نمشه برای دیدن ارایه مرتب شده تو فروم emulat دکمه vars بزن و به تعداد خونه ارایت مقدارش بذار تا بتونی ببینی که داره مرتب میکنه!!!
موفق باشی..

ali.fanos
شنبه 15 آذر 1393, 20:11 عصر
ممنون دوست عزیر من تا حالا با این برنامه کار نکردم،من تو فروم emulat دکمه vars رو میزنم صفحه variable باز میشه،تو این فرم باید چیکار کنم دقیقا متوجه حرفتون نشدم

126352

ali.fanos
شنبه 15 آذر 1393, 20:13 عصر
در واقع من می خوام خروجی بهم نشون بده که عددها رو sort کرده ،خیلی ممنون

masoud.8086
شنبه 15 آذر 1393, 20:19 عصر
خوب ببین قبل اینکه دکمه (run) رو بزنی vars بزن و تو فروم variable اون بالا نوشته elemennt که مقدارش 1 هستو به تعداد خونه های ارایت که 8 هست تغییر بده و بعد مقدار تکس باکس show as رو به unside تغییر بده حالا برنامتو اجرا(run)کن میبینی که ارایه a داره مرتب میشه..
موفق باشی..

ali.fanos
شنبه 15 آذر 1393, 20:31 عصر
ممنون مشکل حل شد دوست عزیز

zigool_m
جمعه 21 آذر 1393, 14:44 عصر
سلام کسی میتونه این کد رو تحلیل کنه که بنظرم اصلا این merg sort نیست!!!!:متفکر:

zigool_m
جمعه 21 آذر 1393, 14:45 عصر
سلام کسی میتونه این کد رو تحلیل کنه که بنظرم اصلا این merg sort نیست!!!!:متفکر:
درواقع در پست اول که دوستمون گذاشتن کسی میتونه بگه دقیقا این کد چیکار میکنه؟

masoud.8086
جمعه 21 آذر 1393, 14:57 عصر
سلام
این کد داره یه ارایه رو مرتب میکنه!! اول میاد طول ارایه رو در میاره بعد به تعداد عانصر ارایه ی حلقه تعریف کرده و عنصر اول و دومو باهم مقایسه میکنه و اگه لازم بود جاهاشونو عوض میکنه به همین ترتیب تا اخر ارایه تا ارایه مرتب بشه.(البته ی خورده مشکل داره)
موفق باشی.

zigool_m
جمعه 21 آذر 1393, 20:48 عصر
پس این کد merg sort نیست درسته؟آقا مسعود
میشه کد رو برام تحلیل کنید؟خط به خط
واقعا ممنون میشم

masoud.8086
جمعه 21 آذر 1393, 22:30 عصر
نه این کد مرتب سازیه!! که ی حلقه که داره 4 بار اجرا میشه و توی این چهار بار اچرا هر با دو اندس از خونه ارایه رو مقایسه میکنه و اگر مقدارش کوچتر بود (عنصر i+1 از عنصر i) جاهاشونو عوض میکنه تا وقتی کارایه مرتب بشه.
موفق باشی.