PDA

View Full Version : مبتدی: ارور error 85: End of file, no END directive



slr560
پنج شنبه 15 آبان 1393, 19:33 عصر
سلام دوستان
من assembly رو به تازگی شروع کردم
هر کدی که مینویسم ارور error 85: End of file, no END directive رو میده و .obj ساخته نمیشه
مشکل کجاست؟؟؟
مثلا به برنامه ساده زیر رو نگاه کنید:

codesg segment 'code'
assume cs:codesg
main proc far


mov ah,06
mov al,0
mov bh,21h
mov cl,0
mov ch,0
mov dl,79
mov dh,24
int 10h

mov ah,02
mov dh,10
mov dl,30
mov bh,00
int 10h


main endp
codesg ends
end main


آبجکتش ساخته نمیشه و این ارور رو میده:

Microsoft (R) Macro Assembler Version 4.00 11/6/14 20:06:22


Page 1-1



end main
1.ASM(26) : error 85: End of file, no END directive
Microsoft (R) Macro Assembler Version 4.00 11/6/14 20:06:22


Page 1-1





0000 codesg segment 'code'
assume cs:codesg
0000 main proc far


0000 B4 06 mov ah,06
0002 B0 00 mov al,0
0004 B7 21 mov bh,21h
0006 B1 00 mov cl,0
0008 B5 00 mov ch,0
000A B2 4F mov dl,79
000C B6 18 mov dh,24
000E CD 10 int 10h

0010 B4 02 mov ah,02
0012 B6 0A mov dh,10
0014 B2 1E mov dl,30
0016 B7 00 mov bh,00
0018 CD 10 int 10h


main endp
001A codesg ends
end main
1.ASM(26) : error 85: End of file, no END directive
Microsoft (R) Macro Assembler Version 4.00 11/6/14 20:06:22


Symbols-1



Segments and Groups:


N a m e Size Align Combine Class


CODESG . . . . . . . . . . . . . 001A PARA NONE 'CODE'


Symbols:


N a m e Type Value Attr


MAIN . . . . . . . . . . . . . . F PROC 0000 CODESG Length = 001A




25 Source Lines
26 Total Lines
24 Symbols


50518 Bytes symbol space free


1 Warning Errors
1 Severe Errors

masoud.8086
جمعه 16 آبان 1393, 00:20 صبح
model small.
data.
در این قسمت دیتای برنامتو تعریف کن
stack.



code.
start proc far


mov ax, @data
mov ds, ax
mov es, ax


در این قسمت کدتو بنویس
start endp
end
========================
به این مدل نوشتم میگن دات مدل

slr560
جمعه 16 آبان 1393, 09:00 صبح
این دفه از همه Syntax ها ارور گرفت . میشه برای مثال همین برنامه پست ۱ رو توی قالب دات مدل بهم نشون بدی؟؟؟
MASM v4 این مدل رو پشتیبانی میکنه؟

masoud.8086
جمعه 16 آبان 1393, 09:44 صبح
model small.
data.


a db 3




stack.


code.
start proc far




mov ax, @data
mov ds, ax
mov es, ax


mov ah,02
mov dh,10
mov dl,10
mov bh,0
int 10h
mov cx,5


mov ah,02
mov dl,a
l:int 21h
loop l
mov ax,4ch
int 21h
start endp
end

===================
این قطعه کد کارکتر قلبو 5 بار چاپ میکنه
داخل emu8086 هم جواب میده تست کن

======

تمام نقطه ها باید اول کلمه ها باشه
علاوه بر emu8086 با این ورن masm هم تست کن

همچنین کد خودتم درسته ارورتم مال end main که گذاشتی main رو برداری برنامت درست میشه یعنی فقط end باشه
موفق باشی