ورود

View Full Version : درخواست راهنمایی در مورد شیوه راه اندازی برنامه های اسمبلی



anything
یک شنبه 01 اردیبهشت 1387, 11:38 صبح
سلام و خسته نباشید خدمت دوستان بزرگوار .

اگر ممکنه در مورد شیوه راه اندازی و اسمبل کردن برنامه های اسمبلی منو راهنمایی کنید .

با سپاس فراوان :قلب:

behzad24be
سه شنبه 03 اردیبهشت 1387, 15:12 عصر
برای کامپایل کردن و اجرای کدهای اسمبلی ابتدا باید اسمبلر TASM رو که یه اسمبلر 16 بیتی هستش روی سیستمتون نصب کنید ، بعدش کدتون رو توی پوشه ی Bin جایی که اسمبلر نصب شده کپی کنید . بعد از این کار ، توی خط فرمان ویندوز(همون کنسول DOS ) برید به همون پوشه ی Bin ، مثلا :

<F:\TASM\BIN

برای کامپایل کردن کدتون بعد از کلمه ی TASM اسم فایل کدتون رو بنویسید ، مثل :


F:\TASM\BIN>tasm mycode.asm


بعد از این که کد رو کامپایل کردین اسمبلر یه فایل با پسوند obj ، هم نام با اسم فایل کد ایجاد میکنه که باید اون فایل رو با استفاده از TLINK ، لینک کنیم تا فایل قابل اجرای exe تولید بشه :

F:\TASM\BIN>tlink mycode.obj


حالا میتونین برنامتون رو اجرا کنین :

F:\TASM\BIN>mycode.exe

javad.software
چهارشنبه 11 اردیبهشت 1387, 12:24 عصر
راه حل داده شده درسته ولي گاهي اوقات فايل exe هم ساخته ميشه ولي با اينكه از تابع 08h واسه نگه داشتن و مشاهده نتيجه استفاده شده بازم فايل exe چيزي نشون نمي ده!!!!!!!!!!! نظر شما چيه؟؟؟؟؟؟؟؟؟؟
مثلا به اين برنامه دقت كنين...................
برنامه ايي كه كاراكتري از ورودي دريافت كند و تعيين كند حرف كوچك است يا نه

.model small
.stack 100h
.data
msg1 db "input a character : " , "$"
msg2 db 13 , 10, "the char is small" , "$"
msg3 db 13 ,10, "the char isn't small" , "$"
chr db ?
.code
main proc far
mov ax,@data
mov ds,ax
mov ah,09h
lea ax,msg1
int 21h
mov ah,08h
int 21h
mov chr,al
cmp chr,'a'
jb is_not_small
cmp chr,'z'
ja is_not_small
is_small :
mov ah,09h
lea ax,msg2
int 21h
jmp finish
is_not_small :
mov ah,09h
lea ax,msg3
int 21h
finish :
mov ah,08h
int 21h
mov ah,4ch
int 21h
main endp
end main

نظر شما چيه؟

hoax3r
چهارشنبه 11 اردیبهشت 1387, 17:54 عصر
با سلام

برای استفاده از وقفه 21 تابع 09 آدرس رشته رو باید داخل ثبات dx بریزید
مثلا این خط


mov ah,09h
lea ax,msg1
int 21h

باید به این صورت بشه


mov ah,09h
lea dx,msg1
int 21h

بقیه رو هم درست کنید باید مشکل حل بشه.