PDA

View Full Version : The cpu has encountered an illegal instruction



badguy
یک شنبه 19 تیر 1390, 00:44 صبح
سلام بچه ها

آقا این استاد در اسمبلی ما آفتاب زده به مخش به جای برنامه نویسیه سخت افزار از ما پروژه ی حل N معادله ی N مجهولی با استفاده از زبان اسمبلی رو میخواد!!!

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

برنامه من شامل 5 منو هست همه منو ها به جز یکیش نوشته شده ولی وقتی تو آخرین منو ایی که میخوام کاملش کنم اگه حتی یه خط بیشتر کد بنویسم برنامه درست اسمبل نمیشه یه وقتی میرم تو منویه 1 معالاتی که میخوام جل کنم رو مینویسم وقتی میخوام بر گردم به منو اصلی این ارور رو میده [به پیوست نگاه کنید]:


در حالی که من در منویه 3 کد اضافی نوشتم که به هیچ عنوان هیچ ربطی به بقیه ی برنامه نداره!!!! اشکال از چیه؟؟؟

اینم کدی هست تو منو 3 مینویسم[اگه نگا نکنید اون کد هایه زیر ستاره هیچ تاثیری به برنامه نداره چون اون کدا هیچ وقت اجرا نمیشن!!! قبل از اینکه اجرا شن از زیر برنامه میاد بیرون, من دیگه واقعا نمیدونم باید چکار کنم!!!]


CALL BACKUP_TABLES
LEA BX,BTABLE1
CALL DETERMINANT
CALL PRINT_RESULTS
RET
;*************IN PAK SHE KAR MIKONE, NASHE NA!!!! :O*************
COPYW TMPR1,R1
COPYW TMPR2,R2
COPYW TMPR3,R3
XOR DI,DI
MOV CL,EQU_SIZE
MOV I,0
MOV J,0
PCURSOR 0,0,02
.SLV:
MOV AL,TABLE2[DI]
PUSH DI
LOAD2D I,J,EQU_SIZE
MOV BTABLE2[DI],AL
POP DI
INC J
INC DI
CMP J,CL
JL .SLV
PUSHA
LEA BX,BTABLE1
CALL DETERMINANT
PRINT PRESS
_WAIT
CALL PRINT_RESULTS
RET
CALCULATE ENDP


خیلی ممنون میشم اگه کمک کنید, تو این چند روز باید پروژم رو تحویل بدم:sad:

xman_1365_x
یک شنبه 19 تیر 1390, 21:32 عصر
دو تا کار میتونید انجام بدین :
1-اول برنامه بنویسید
.model huge
البته فکر نمیکنم برنامتون اینقدرا بزرگ باشه که نیاز به مدل huge باشه پس این لینک (http://en.wikipedia.org/wiki/Intel_Memory_Model) رو مطالعه کنید
اگر درست نشد
2-برنامتون رو در چند فایل بنویسید و توابع به صورت far باشه و به صورت FAR هم در برنامه اصلی فراخوانی میشه
در این ارتباط نیاز به extern و public دارید.
موفق باشی

badguy
دوشنبه 20 تیر 1390, 04:39 صبح
مرسی
من تو اول برنامه نوشتم
.model huge
ولی کلی از این ارور میده!!
error A2071: Forward needs override or FAR
و همچنین
error A2006: Phase error between passes
من باید چکار کنم؟؟:متفکر:

xman_1365_x
دوشنبه 20 تیر 1390, 18:00 عصر
سورستون رو بزارید ببنیم چه مشکلی در کد هست.(احتمالا قالب رو اشتباه نوشتین)

tdkhakpur
دوشنبه 20 تیر 1390, 19:34 عصر
error A2071: Forward needs override or FAR

برای مدل huge توابع را به far ختم کنید مثل این


main proc far
iret
main endp