PDA

View Full Version : نوشتن یه متن



marjan_gh
یک شنبه 10 دی 1391, 13:41 عصر
چه جوری می تونم یه متن خاص رو توی اسمبلی بنویسم
مثلا با یه کاراکتر خاص
باید چه جوری مختصات ها رو پیدا کنم
اسمبلی در حد خیلی جزئی می دونم اگه ممکنه کمکم کنید

mofid002006@gmail.com
یک شنبه 10 دی 1391, 14:14 عصر
باید از interop (وقفه) استفاده کنی
فکر کنم interop های مختلفی واسه این کار هست
به طور مثال : int 21H

marjan_gh
یک شنبه 10 دی 1391, 14:39 عصر
باید برای هر ستاره ای که می خوام نمایش بدم یه مختصات در نظر بگیرم؟

marjan_gh
یک شنبه 10 دی 1391, 15:49 عصر
یه ره دیگشم اینه که با یه زبان دیگه مثه سی بنویسم بعد تبدیلشم کنم به اسمبلی
کسی هست نحوه تبدیل کد سی به اسمبلی رو بدونه؟

marjan_gh
یک شنبه 10 دی 1391, 16:16 عصر
دوستان من فقط ایدشو می خوام ! بازم نمی تونید کمک کنید؟

mofid002006@gmail.com
یک شنبه 10 دی 1391, 17:03 عصر
به این لینک حتما یه سر بزن :
http://roomzoom.persianblog.ir/post/13

Abolfazl.E
دوشنبه 11 دی 1391, 20:33 عصر
میتونید از ماکرو هم استفاده کنید. یه ماکرو برای چاپ بنویسین. یه ماکرو هم برای مختصات. به این صورت مثلا:

CURSOR MACRO ROW,COLUMN
MOV DX,0000H
MOV AH,02H
MOV BH,00
MOV DH,ROW
MOV DL,COLUMN
INT 10H
ENDM
PRINT MACRO STR
MOV AH,09H
LEA DX,STR
INT 21H
ENDM
حالا متنتون رو در بخش data تعریف کنین مثلا:

PAYAM DB 'SALAM','$'
در بدنه برنامه هم به این صورت از ماکرو ها استفاده کنید:

CURSOR 12,20
PRINT PAYAM
برای اینکه برای هر پیام هی مختصات ندی میتونی تو بخش دیتا یه متغیر تعریف کنی مثلا I با مقدار ؟ حالا با استفاده از دستور INC I و جامپ ها همینطور درست کردن حلقه، پیام ها رو مرتب تو سطر و ستون های مختلف چاپ کن.

Delphi Coder
چهارشنبه 13 دی 1391, 16:12 عصر
وقفه 21h تابع شماره 9 آدرس DS:DX رو رشته ای در نظر میگیره که انتهای اون به $ ختم شده و اون رشته رو در صفحه نمایش میده. برنامه زیر با tasm قابل اسمبل و اجراس tasm و makefile برنامه رو attach کردم براتون. برای آشنایی با سرویسهایی که وقفه ها در اختیارتون قرار میدن میتونید از برنامه HelpPC (http://barnamenevis.org/showthread.php?90984-%D9%85%D8%B1%D8%AC%D8%B9-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA-8086-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%84%DB%8C%D8%B3%D8%AA-%D9%88%D9%82%D9%81%D9%87-%D9%87%D8%A7-%D9%88-%D9%BE%D9%88%D8%B1%D8%AA-%D9%87%D8%A7%DB%8C-%D8%B3%D8%AE%D8%AA-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%DB%8C) کنید.

.model tiny
.code
org 100h
start:
mov ah,9
lea dx,mystr
int 21h
ret
mystr db 'hello world. assembly programming is fun.$'
end start