كمك ! چطوري برنامه اسمبلي رو با اين دو فايل masmو link اجرا كنم
Printable View
كمك ! چطوري برنامه اسمبلي رو با اين دو فايل masmو link اجرا كنم
با سلام
به این صورت:
برای اسمبلر کردن
برای پیوند:کد:masm -c file.asm
کد:link file.obj
سلام
منم همين مشكل رو دارم
يه برنامه نوشتم با پسوند .asm ذخيره كردم حالا هچي ميرم تو Cmd و اين كدها رو مي نويسم خطا ميده چيكار كنم؟
با سلامنقل قول:
اگر بتونید سورستون رو بزارین بهتر میشه نظر داد
شاد باشید
اين عكس خطاي من است:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
این بخاطر اینه که شما مسیر کامل masm رو مشخص نمیکنید
شما باید به این صورت بدین
ولی اگه بخواین فقط با زدن masm بدون مسیر سرس رو اسمبل کنید فایلی به نام NEW-VARS.BAT تو شاخهکد:c:\masm611\masm /c file.asm
c:\masm611\bin یا c:\masm611\binr وجود داره که با یکبار اجرا این امکان رو بهتون میده
شاد باشید
سلام بازم نشد
عكسا رو براتون مي فرستم
اگه ميتونين كمكم كنين چون اصلا در اين زمينه وارد نيستم
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اينم عكس خطايي كه داده
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اينم عكس و مسير فايل اسمبلي من
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
خوب چیزی که مشخصه این مجموعه اصلا masm611 نیست حالا نمی دونم یه نسخه دستکاری شده است
یا شما خودتون اینوجوری درست کردین
به هر حال این دستورات رو تست کنید اگر جواب داد که هیچ اگه نداد بهتره نسخه درست masm611 رو پیدا کنید.
برای اسمبل کردن:
و برای پیوند:کد:c:\80x86\Software\ml /c file.asm
شاد باشیدکد:c:\80x86\Software\link file.obj
سلام
ممنون اون اشكال بر طرف شد اما حالا فايل اسمبلي رو نميشناسه چيكار كنم؟
نرم افزاري كه دارم استاد بهم داده نميدونم چيه اما اگه صلاح ميدونين عوضش كنم بگين از كجا دانلودش كنم و اسمش رو بگين
ممنون
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
مشکل بازم سره ندادن مسیر هست شما باید مسیر فایل ها رو رو کامل بدین
برای مثال فایل file.asm در درایو d :
مسیر هر چی بود خودتون تغییر بدینکد:c:\80x86\Software\ml /c d:\file.asm
در مورد masm هم باز میگم اگه با اینی که خودتون دارین مشکلی ندارید لازم نیست این فایل رو دانلود کنید
چون قالبا با همون دو فایل ml و link همه کار رو میشه انجام داد
لینک masm 6.11
برای نصبش هم شما محتویات همه فایلهای داخل پوشه DISK1 تا DISK5 رو داخل یه پوشه بکنید و بعد اقدام به نصب کنیدکد:http://www.phatcode.net/res/175/files/masm611.zip
شاد باشید
سلام
این لینک Masm ورژن 5.1 هست که یه محیط برنامه نویسی خیلی ساده داره که میتونه به شما کمک کنه چون نیازی به کار با خط فرمان(Command Line) نداره.
بعد از اکسترکت کردن پوشه و اجرای فایل Install توی درایو C و داخل پوشه Masm برنامه Easy_Assemble رو اجرا کنید.
کد:http://www.irshare.net/download.php?file=6a067b6003f096aa2e43dbc11217a253
راستی حجم فایل هم 632 کیلو بایته.
سلام بچه ها
خيلي خيلي ممنون اشكالم برطرف شد و فهميدم چشيكار كنم
فقط بازم يه اشكال داره كه فكر كنم خطا از برنامه هست عكسش رو مي ذارم شما هم نظر بدين ممنون ميشم
ميشه يه كم درباره ي چارچوب برنامه ي اسمبلي بهم بگين كه مثلا با چي شروع بشه و ...
اخه كد هايي كه نوشتم ميدونم كه درسته شايد اشكال از شروع و پايان برنامه باشه
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
با سلام
خوب من یه مثال میزارم شما خودتون برسیش کتید
برای پیوند شما باید فایل file.obj که بعد اسمبل کردن ایجاد شده رو با دستور link پیوند بدینکد:sseg segment
db 32 dup(?)
sseg ends
dseg segment
msg db "Hello world!!", '$'
dseg ends
cseg segment
main proc far
assume cs:cseg, ds:dseg, ss:sseg
mov ax, dseg
mov ds, ax
lea dx, msg
mov ah, 09h
int 21h
mov ax, 4C00h
int 21h
main endp
cseg ends
end main
شاد باشید
خوب اول اینکه اگه کدت رو کپی میکردی بعد اینجا قرار میدادی بهتر بود و برای شما هم راحتتر تا اینکه عکس بگیرین
مشکل تو خطی هست که begin procfar رو به هم چسبوندین باید به صورت begin proc far بشه
سلام بچه ها
ببخشيد باز مزاحم شدم
يه برنامه به زبان اسمبلي دارم كه راحت اسمبل ميشه اما لينك نميشه
اگه ممكنه كمكم كنيد
ضمنا برنامه رو ميدونم كه كاملا درسته
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اينم از كدهاش:
;************************************************* *******
.MODEL SMALL
.STACK 64
;------------
.DATA
LEFTCOL EQU 28
RIGHTCOL EQU 52
TOPROW EQU 10
BOTROW EQU 14
MAXQLEN DB 6
ACTQLEN DB ?
QTYFLD DB 6 DUP(?)
MAXRLEN DB 6
ACTRLEN DB ?
RATEFLD DB 6 DUP(?)
PROMPT1 DB 'Quantity? '
PROMPT2 DB 'Rate? '
PROMPT3 DB 'Product = '
ASCPROD DB 10 DUP(30H)
PROMPT4 DB 'Press any key to continue or Esc to quit'
ADJUST DW ?
BINPROD DW 00
BINQTY DW 00
BINRATE DW 00
COL DB 00
DECIND DB 00
MULT10 DW 01
NODECIMS DW 00
ROW DB 00
SHIFT DW ?
TENWD DW 10
;----------------------------------------------------------------
.CODE
MAIN PROC FAR
MOV AX,@data
MOV DS,AX
MOV ES,AX
;*** start ***
MOV AX,0003H
INT 10H
A20: CALL WINDOW
CALL INPUT
CALL QTY
CALL RATE
CALL MULT
CALL PROD
CALL FORMAT
CALL PAUSE
CMP AL,1BH
JNE A20
;*** end ***
MOV AX,4C00H
INT 21H
MAIN ENDP
;************************************************* *******
WINDOW PROC NEAR
MOV AX,0600H
MOV BH,00H
MOV CX,0000H
MOV DX,184FH
INT 10H
MOV AX,0605H
MOV BH,16H
MOV CH,TOPROW
MOV CL,LEFTCOL
MOV DH,BOTROW
MOV DL,RIGHTCOL
INT 10H
RET
WINDOW ENDP
;************************************************* *******
INPUT PROC NEAR
MOV ROW,TOPROW+1
MOV COL,LEFTCOL+3
LEA BP,PROMPT1
MOV CX,15
CALL DISPLY
MOV AH,0AH
LEA DX,MAXQLEN
INT 21H
MOV COL,LEFTCOL+3
INC ROW
LEA BP,PROMPT2
MOV CX,15
CALL DISPLY
MOV AH,0AH
LEA DX,MAXRLEN
INT 21H
INC ROW
RET
INPUT ENDP
;************************************************* *******
DISPLY PROC NEAR
MOV AX,1301H
MOV BX,0016H
MOV DH,ROW
MOV DL,COL
INT 10H
RET
DISPLY ENDP
;************************************************* *******
QTY PROC NEAR
MOV NODECIMS,00
MOV CH,00H
MOV CL,ACTQLEN
LEA SI,QTYFLD-1
ADD SI,CX
CALL ASCBIN
MOV AX,BINPROD
MOV BINQTY,AX
RET
QTY ENDP
;************************************************* *******
ASCBIN PROC NEAR
PUSH DX
MOV MULT10,0001
MOV BINPROD,00
MOV DECIND,00
XOR BX,BX
J20: MOV AL,[SI]
CMP AL,'.'
JNE J30
MOV DECIND,01
JMP J40
J30: AND AX,000FH
MUL MULT10
ADD BINPROD,AX
MOV AX,MULT10
MOV DX,10
IMUL DL
MOV MULT10,AX
CMP DECIND,00
JNZ J40
INC BX
J40: DEC SI
LOOP J20
CMP DECIND,00
JZ J90
ADD NODECIMS,BX
J90: POP DX
RET
ASCBIN ENDP
;************************************************* ********
RATE PROC NEAR
MOV CH,00H
MOV CL,ACTRLEN
LEA SI,RATEFLD-1
ADD SI,CX
CALL ASCBIN
MOV AX,BINPROD
MOV BINRATE,AX
RET
RATE ENDP
;************************************************* ********
MULT PROC NEAR
PUSH BX
MOV CX,10
LEA DI,ASCPROD
MOV AL,30H
CLD
REP STOSB
MOV SHIFT,10
MOV ADJUST,00
MOV CX,NODECIMS
CMP CL,06
JA E40
SUB CX,02
JLE E30
MOV NODECIMS,02
MOV AX,01
E20: MOV BX,10
IMUL BL
LOOP E20
MOV SHIFT,AX
SHR AX,1
MOV ADJUST,AX
E30: MOV AX,BINQTY
MUL BINRATE
ADD AX,ADJUST
ADC DX,00
CMP DX,SHIFT
JB E50
E40: XOR AX,AX
JMP E70
E50: CMP ADJUST,00
JZ E80
DIV SHIFT
E70: XOR DX,DX
E80: POP BX
RET
MULT ENDP
;************************************************* ********
PROD PROC NEAR
LEA SI,ASCPROD+7
MOV BYTE PTR[SI],'.'
ADD SI,NODECIMS
F30: CMP BYTE PTR[SI],'.'
JNE F40
DEC SI
F40: CMP DX,00
JNZ F50
CMP AX,0010
JB F60
F50: DIV TENWD
OR DL,30H
MOV [SI],DL
DEC SI
SUB DX,DX
JMP F30
F60: OR AL,30H
MOV [SI],AL
RET
PROD ENDP
;************************************************* ********
FORMAT PROC NEAR
MOV COL,LEFTCOL+3
MOV CX,09
LEA SI,ASCPROD
G20: CMP BYTE PTR[SI],30H
JNE G30
MOV BYTE PTR[SI],20H
INC SI
LOOP G20
G30: LEA BP,PROMPT3
MOV CX,20
CALL DISPLY
RET
FORMAT ENDP
;************************************************* ********
PAUSE PROC NEAR
MOV COL,20
MOV ROW,22
LEA BP,PROMPT4
MOV CX,40
CALL DISPLY
MOV AH,10H
INT 16H
RET
PAUSE ENDP
END MAIN
ممنون ميشم كمكم كنيد
راستي
دوست عزيز admiral من به لينكي كه لطف كرده بودين و گذاشته بودين رفتم و دانلود كردمو اكستركت كردم اما داخل پوشه masm در درايو c چيزي نبود
اگه لطف كني و يه كم راجع به اين توضيحبدي ممنون ميشم
ياحق
با سلام
شما PAUSE رو به یه اسم دیگه تبدیل کنید درست میشه، البته این مشل فقط داخل masm هست اگه با tasm کامپایل بشه مشکلی ایجاد نمیشه
این خطها :
کد:CALL PAUSE
کد:PAUSE PROC NEAR
شاد باشیدکد:PAUSE ENDP
سلام
hoax3r عزيز اين مشكل رو هم رفع كردم اما هنوز خطاي لينك ميده
ميتوني كمكم كني [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
شما موقع لینک دادن باید فایل رو file.obj بدین نه file.asm
شاد باشید
سلام
hoax3r عزيز اين مشكل رو هم رفع كردم اما هنوزم خطاي لينك ميده
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
عجیبه باید کار کنه
شما ببینید بعد اینکه دستور ml رو وارد میکنید فایل obj. مربوطه ایجاد میشه
چه جوري بايد بفهمم؟
شما بعد اینکه دستور زیر رو وارد میکنید
اگه کد مشکلی نداشته باشه یک فایل با نام 7 و فرمت obj. تو همون مسیر که برای شما درایو d هست ایجاد میشهکد:c:\80x86\software\ml /c d:\7.asm
ببینید همپین فایل بعد وارد کردن دستور بالا ایجاد میشه؟
نه همچين فايلي ايجاد نشده
فهمیدم مشکل چیه
فایل اسمبل شده شما لان باید در مسیر زیر باشه
جالا کاری به اینجا نداریمکد:c:\Document and Settings\Dear-User
شما همیشه از طریق command prompt وارد مسیری بشین که فایل asm. اونجا هست به این صورت(البته اگه مسیر متقاوت بود باید به اون مسیر برین)
بعد این دستور رو وارد کنیدکد:d:
و بعد این دستورکد:c:\80x86\software\ml /c 7.asm
کد:c:\80x86\software\link 7.obj
سلام
haorox عزيز
حالا ديگه اسمبل هم نمي كنه
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
من مثل شرایط کامپیوتر شما باهمون مسیر هایی که برای شما هست توی کامپیوتر خودم این کارو انجام دادم
و یه عکس گرفتم تا بهتر متوجه بشین
ما فقط به سه تا فایل ML.exe و ML.err و LINK.exe احتیاج داریم مطمعن بشین که اینا رو دارین
مطابق شکل دستورات رو دنبال کنید
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اگه نشه بهتره masm رو دوباره نصب کنید.
شاد باشید
haorox عزيزسلام
من فايل ml.err رو ندارم دوباره هم نصب كردم
يه سوال ديگه من بايد خودم فايل هاي تو درايو d رو بسازم يا با اجراي برنامه بايد بيان
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
بعد وارد شدن اون دو دستور به ترتیب اون دو تا فایل هم در درایو d شما ایجاد میشه
فایل ml.err در عکسی که در صفحه اول قرار داده بودین در پوشه software شما وجود داشت
ولی تصویری که حالا قرار دادین به نظر میاد پاک شده!!
من براتون این سه فایل ml.exe و ml.err و link.exe رو آپلود میکنم شما داخل پوشه Software قرارشون بدین
اینا نسخه جدیتر ورژن 6.14 هستن
امیوارم مشکلتون حل بشهکد:http://hoax3r.persiangig.com/Other/MASM.zip
شاد باشید
سلام
ممنونم haorox عزيز
بالاخره درست شد
خيلي خيلي ممنون از لطفت
يه خواهش ديگه دارم يه برنامه اسمبلي مينويسم ميتوني بهم تو ويرايشش كمك كني
اخه دفعه اولم هست!!!
بازم ممنون
يا علي
اگه اشكال نداره تو ويرايشش بهم كمك كنيد ممنون ميشم
اينم لينكش هست:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
با سلام
شما خودت اینو نوشتی پس کو بقیش
فایل ناقصه، سه ماکرو به نام های output و inputs و atoi هست که تو کد شما قرار نداره
به جز اینا یکسری ایارد دیگه هم هست
1- این خط چون n1 یه مقدار ثابت هست مورد قبول نیست، یا باید ثبات باشه یا یه آدرس حافظه(متغیر)
2- این خط هم مثل بالایی دستور عمل یا باید باید ثبات باشه یا یه آدرس حافظهکد:div n1
3- اینم مثل قبلیاکد:imul n2
4- تو این خط هم یکی از دستورعمل ها باید ثبات باشهکد:imul n1
شاد باشیدکد:cmp x2,x1
haorox عزيز
سلام
شرمنده ، ببخشيد چند روزي نتونستم بيام تا امروز كه امتحانمو دادم
عيد بزرگ غدير خم رو به شما و خانوادتون تبريك ميگم
ممنون از اينكه جواب دادي