PDA

View Full Version : برنامه Paint با اسمبلی 8086



user addi
دوشنبه 02 آبان 1384, 05:00 صبح
سلام
این برنامه رو برای اینکه بتونم راحت تر debuge کنم در محیط C و تماما با دستورات اسمبلی نوشتم .
ولی متاسفانه نمی تونم به اسمبلی خالص تبدیلش کنم چون اسمبلر من V.5 کم میاره و میگه فایل خیلی بزرگه ( 3161 خط در C ) حالا فکرشو بکنید تو اسمبلی خالص چقدر می شه!!!!!

اگه کسی می دونه چه طوری میشه یک فایل بزرگ رو با اسمبلی کامپایل کرد لصفا به من بگه.

در ضمن این برنامه روی مانیتور های 17 اینچ یه ذره دیر بالا میاد و شما میتونید نحوه چیده شدن قسمت های مختلفش رو ببینید ولی رو مانیتور های 15 اینچ سریع بالا میاد. دلیلش رو هم نمیدونم!!!!!!!!

امیدوارم خشتون بیاد.

aakh1361
پنج شنبه 05 آبان 1384, 03:14 صبح
اگه کسی می دونه چه طوری میشه یک فایل بزرگ رو با اسمبلی کامپایل کرد لصفا به من بگه.

می تونی برنامه تون رو به چند فایل تقسیم کنی بعد هرکدوم رو کا مپایل کنی و سپس فایل تولید شده رو با فایلهای دیگه لینک کنی

برنامه واقعا جالب بود ایول داره کارت :تشویق: :تشویق: :تشویق: :قهقهه:

user addi
پنج شنبه 05 آبان 1384, 19:06 عصر
خیلی ممنون
میشه یه کم بیشتر توضیح بدی.
من میدونم که با include میشه از یه فایل دیگه تو برنامه استفاده کرد ولی نمیدونم چه طوری استفاده کنم.
اینم که چه طوری جند تا فایل کامپایل شده رو هم با هم لینک کنم بلد نیستم.

لطفا یه مثال بزنید.

aakh1361
جمعه 06 آبان 1384, 03:09 صبح
من میدونم که با include میشه از یه فایل دیگه تو برنامه استفاده کرد ولی نمیدونم چه طوری استفاده کنم.

include NameFile
به همین راحتی :چشمک:



اینم که چه طوری جند تا فایل کامپایل شده رو هم با هم لینک کنم بلد نیستم.

اول باید تابعهای که در خارج از فایل اصلی قرار میدی رو به برنامه معرفی کنی



.model small
extrn Printf:proc
.data
.code
org 256
start:
Jmp Main
msg db 'Hello World',10,13,'$'
Main:

mov bx,seg msg
mov ax,offset msg
push bx
push ax
call Printf
add sp,4

mov ah,4ch
int 21h
end start
end



بعد در فایل دیگه که تابع اونجا تعریف شده تابع رو به صورت عمومی تعریف می کنیم



.model small
.code
org 100h
public Printf

proc Printf
push bp
mov bp,sp

push ds
mov ax,[bp+6] ; Ds
mov ds,ax
mov dx,[bp+4] ; Dx
mov ah,9
int 21h
pop ds

pop bp
ret
endp
end


حالا هر دو فایل رو مثلا با
Tasm
کامپایل می کنیم
بعدش با لینکر
TLINK
اونها رو به هم لینک می کنیم



TLINK File1 + File2 , NameFileExe

ساده بود نه :گیج: :گیج: :گیج:

موفق باشید

aakh1361
جمعه 06 آبان 1384, 03:13 صبح
راستی برنامه
Paint
اپن سورس هست دیگه
:لبخند: :متفکر:

user addi
دوشنبه 09 آبان 1384, 10:57 صبح
راستی برنامه
Paint
اپن سورس هست دیگه
:لبخند : :متفکر:

خیلی ممنون از راهنمایی شما
امیدوارم مشکلم با این روش حل بشه

برنامه این سورس هم هست:لبخند ( مگه میشه این همه زحمت بکشی بعد سورسشو نداشته باشی!!!)

aakh1361
چهارشنبه 11 آبان 1384, 08:54 صبح
منظورم
Open Source
بود
یعنی دیگران هم می تونند از کدی که شما نوشتید استفاده کنند
:لبخند: :لبخند:

hamid1234
جمعه 31 خرداد 1387, 12:37 عصر
آفرین
واقعا عالیه
اگه میشه سورسش را بذار

kazifasa
یک شنبه 18 اردیبهشت 1390, 20:11 عصر
سلام دوست عزیز امکانش هست سورس هم بگذارید

kazifasa
جمعه 23 اردیبهشت 1390, 10:17 صبح
کسی نبود جواب بده

simin naghilu
سه شنبه 27 اردیبهشت 1390, 13:25 عصر
عالی بود ولی بدون سورسش به درد من نمی خوره
اگه میشه سورسشم بزارین

kazifasa
جمعه 30 اردیبهشت 1390, 22:37 عصر
واقعا کسی نیست کمک کنه