Sp|R|T
دوشنبه 16 خرداد 1390, 19:29 عصر
سلام
من یک برنامه ای به زبان اسمبلی نوشتم کارش اینه که یک عدد رو میگیره اگر عدد از بین 20 تا 10 بود A رو چاپ کنه ، اگر از 10 تا 5 بود B و 5 تا 0 هم C چاپ کنه و حلقه هم با وارد کردن 0 میاد بیرون
این از کد:
; Example assembly language program
; Author: R. Detmer
; Date: revised 7/97
.386
.MODEL FLAT
ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD
INCLUDE io.h ; header file for input/output
cr EQU 0dh ; carriage return character
Lf EQU 0ah ; line feed
.STACK 4096 ; reserve 4096-byte stack
.DATA ; reserve storage for data
gread WORD ?
nmsg BYTE "Plz Enter a number: ",cr, lf, 0
amsg BYTE "A",cr, lf, 0
bmsg BYTE "B",cr, lf, 0
cmsg BYTE "C",cr, lf, 0
value BYTE 16 DUP (?)
Result BYTE 11 DUP (?),0
.CODE ; start of main program code
_start:
output nmsg
input value,16
atoi value
mov gread,ax
beginofwhile:
cmp gread,0
jnle endofwhile
cmp gread,20
output amsg
jmp beginofwhile
cmp gread,10
output bmsg
jmp beginofwhile
cmp gread,5
output cmsg
jmp beginofwhile
endofwhile:
itoa result,ax
output result
INVOKE ExitProcess, 0 ; exit with return code 0
PUBLIC _start ; make entry point public
END ; end of source code
یه نگاهیش بکنین ببینین کجاش اشکال داره
اسمبلینگ میشه ولی موقع Link کردن ارور میده
این هم پیغام ارور:
LINK : fatal error LNK1181: cannot open input file "subsystem:console.obj"
یک کد که 100% مطمئنم درسته موقع لینک کردن باز همین ارور رو میده :افسرده:
این هم از فرمانی که برای Link کردن استفاده میکنم:
link subsystem:console entry:start example.obj io.obj kernel32.lib
پ.ن: فکر کنم مشکل از اسمبلرم باشه چون اسمبلر رو از بچه ها گرفتم و وقتی توی کامپیوترم زدم آنتی ویروسم یکی از فایل ها رو پاک کرد - کسی اگه اسمبلرش رو داره لطف کنه بزاره ، شدید لازم دارم :ناراحت:
من یک برنامه ای به زبان اسمبلی نوشتم کارش اینه که یک عدد رو میگیره اگر عدد از بین 20 تا 10 بود A رو چاپ کنه ، اگر از 10 تا 5 بود B و 5 تا 0 هم C چاپ کنه و حلقه هم با وارد کردن 0 میاد بیرون
این از کد:
; Example assembly language program
; Author: R. Detmer
; Date: revised 7/97
.386
.MODEL FLAT
ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD
INCLUDE io.h ; header file for input/output
cr EQU 0dh ; carriage return character
Lf EQU 0ah ; line feed
.STACK 4096 ; reserve 4096-byte stack
.DATA ; reserve storage for data
gread WORD ?
nmsg BYTE "Plz Enter a number: ",cr, lf, 0
amsg BYTE "A",cr, lf, 0
bmsg BYTE "B",cr, lf, 0
cmsg BYTE "C",cr, lf, 0
value BYTE 16 DUP (?)
Result BYTE 11 DUP (?),0
.CODE ; start of main program code
_start:
output nmsg
input value,16
atoi value
mov gread,ax
beginofwhile:
cmp gread,0
jnle endofwhile
cmp gread,20
output amsg
jmp beginofwhile
cmp gread,10
output bmsg
jmp beginofwhile
cmp gread,5
output cmsg
jmp beginofwhile
endofwhile:
itoa result,ax
output result
INVOKE ExitProcess, 0 ; exit with return code 0
PUBLIC _start ; make entry point public
END ; end of source code
یه نگاهیش بکنین ببینین کجاش اشکال داره
اسمبلینگ میشه ولی موقع Link کردن ارور میده
این هم پیغام ارور:
LINK : fatal error LNK1181: cannot open input file "subsystem:console.obj"
یک کد که 100% مطمئنم درسته موقع لینک کردن باز همین ارور رو میده :افسرده:
این هم از فرمانی که برای Link کردن استفاده میکنم:
link subsystem:console entry:start example.obj io.obj kernel32.lib
پ.ن: فکر کنم مشکل از اسمبلرم باشه چون اسمبلر رو از بچه ها گرفتم و وقتی توی کامپیوترم زدم آنتی ویروسم یکی از فایل ها رو پاک کرد - کسی اگه اسمبلرش رو داره لطف کنه بزاره ، شدید لازم دارم :ناراحت: