PDA

View Full Version : چگونه علامت $ را چاپ کنیم



salarblacklove
جمعه 24 آذر 1391, 18:40 عصر
سلام دوستان کسی هست که کمکی کنه من می خوام در انتهای رشته علامت $ رو چاپ کنم.اما نمیتونم میشه کمکی کنید؟!
درواقع فرض کنیم این عبارت رو در اسمبلی تعریف کردیم



SSK db "My Name Is Kian Bagheri.","$"

حال می خوام وقتی که عمل چاپ انجام میشه یک علامت $ هم در انتهای اون چاپ بشه و نتیجه بصورت زیر بشه
My Name Is Kian Bagheri$

shahmohammadi
جمعه 24 آذر 1391, 19:03 عصر
سلام.
كدي رو كه براي چاپ استفاده مي كنيد اينجا بگذاريد تا جواب بديم.

salarblacklove
جمعه 24 آذر 1391, 19:09 عصر
سلام.
كدي رو كه براي چاپ استفاده مي كنيد اينجا بگذاريد تا جواب بديم.

سلام و ممنون دوست عزیز
چاپ با این ماکرو انجام میشه


printstr macro x
mov ah,9
lea dx,x
int 21h
endm

shahmohammadi
جمعه 24 آذر 1391, 20:16 عصر
فكر مي كردم كاراكتر به كاراكتر چاپ مي‌كنيد. خوب چاره‌ش اينه كه كاراكتر به كاراكتر چاپ كنيم. بايد حلقه رو درست بنويسيم.
dsg segment para public 'data'
msg db "my messge", "$"
dsg ends

ssg segment para stack 'stack'
dw 100 dup(?)
ssg ends

csg segment para public 'code'
main proc far
assume cs:csg,ds:dsg,ss:ssg,es:nothing
push ds
sub ax,ax
push ax
mov ax,dsg
mov ds,ax

mov ax,offset msg ;آفست ام‌اس‌جي در اي‌اكس قرار بگيره
mov si,ax ; اس‌آي به آدرس رشته اشاره كند

loop1:
mov dl,[si] ; گرفتن كاراكتر از رشته و دادن آن به دي‌ال
mov ah,02
int 21h ;چاپ كاراكتر موجود در دي‌ال
inc si ; به كاراكتر بعدي برو
cmp dl,'$' ;كاراكتر چاپ شده را مقايسه كن. دي‌اي هنوز كاركتر قبلي است و با افزايش اس‌آي عوض نشده
jne loop1

mov ah,01
int 21h ;getch() return will be the character in al
ret
main endp
csg ends
end main



با masm نوشتم.

تغييرات---------------------
توضيحات فارسي بعدا افزوده شد.

xman_1365_x
شنبه 25 آذر 1391, 10:56 صبح
سلام دوستان کسی هست که کمکی کنه من می خوام در انتهای رشته علامت $ رو چاپ کنم.اما نمیتونم میشه کمکی کنید؟!
برای سرعت بیشتر از وقفه21 و تابع 9 برای چاپ رشته استفاده کنید در انتهاش هم از وقفه 21 و تابع 2 استفاده کنید برای چاپ کاراکتر دالر

bhasoft
شنبه 02 دی 1391, 19:23 عصر
با سلام.
دوست عزیز تا اونجائی که یادم میاد کلاس های وقفه ی دیگه ای هستن که برای چاپ $ میتونن استفاده بشن.دقیق یادم نیست ولی مطمئن هستم که برای چاپ خود کاراکتر دلار وقفه ای وجود داره که ازش بشه استفاده کرد...