راهنمایی اسمبلی2

aida-joon

New Member
با عرض سلام
من میخوام برنامه ای بنویسم که کاراکتر های یک رشته رو به شکل خاصی چاپ کنه. برای این کار از حلقه افزایشی استفاده کردم اما بعد ز اجرا تنها در یک سطر چاپ شدن . از رشته ها هم استفاده کردم ولی جوب مورده نظر رو نداد. لطفا در این باره راهنمایی کنید.
(در این برنامه در هر سطر باید به تعداد شماره سطر کاراکتر چاپ کرد ).
تنها راهنمایی کنید که باید چکار کنم که خودم یاد بگیرم
با تشکر:-?
 

the_king

مدیرکل انجمن
با عرض سلام
من میخوام برنامه ای بنویسم که کاراکتر های یک رشته رو به شکل خاصی چاپ کنه. برای این کار از حلقه افزایشی استفاده کردم اما بعد ز اجرا تنها در یک سطر چاپ شدن . از رشته ها هم استفاده کردم ولی جوب مورده نظر رو نداد. لطفا در این باره راهنمایی کنید.
(در این برنامه در هر سطر باید به تعداد شماره سطر کاراکتر چاپ کرد ).
تنها راهنمایی کنید که باید چکار کنم که خودم یاد بگیرم
با تشکر:-?

اگه باید یک رشته رو کاراکتر به کاراکتر بررسی کنید، بهتره که یک رجیستری مثل SI رو به ابتدای رشته اشاره بدهید
و مرحله به مرحله SI رو یک خونه جلو ببرید. فرض را بر این قرار دادم که انتهای رشته مورد نظر به $ ختم می شود.

مثلا :
کد:
LEA	SI, mystring
loop1:
	MOV	AL, [SI]
	CMP	AL, "$"
	JE	next1
	.
	.
	.
	INC	SI
	JMP	loop1
next1:

برای خواندن یک کاراکتر از آدرس SI در AL و جلو بردن SI می توانید از LODSB هم استفاده کنید :
کد:
CLD
LEA	SI, mystring
loop1:
	LODSB
	CMP	AL, "$"
	JE	next1
	.
	.
	.
	JMP	loop1
next1:

برای انتقال به سطر بعدی یا دو کاراکتر 13 و 10 را نمایش دهید و یا یک رشته "$", 10, 13 را
نمایش دهید :
کد:
	MOV	AH, 2
	MOV	DL, 13
	INT	21h
	MOV	DL, 10
	INT	21h
 

SARA_68

New Member
سلام
منم یه همچین سوالی دارم اما متوجه توضیحات جناب کینگ نشدم
اگه میشه کد کاملو بزارید تا منم متوجه بشم آخه استادمون ایناییرو که نوشتید نگفته
 

جدیدترین ارسال ها

بالا