ورود

View Full Version : تعویض محتویات یک رشته با ستاره



hamedv90
پنج شنبه 25 خرداد 1391, 22:06 عصر
با سلام،
من یک نمونه سئوال دارم که فکر میکنم اشتباه هست، میشه لطفا این کد رو درست کنید چون برای امتحان باید بخونمش. ممنون :قلب:

فرض کنید یک رشته از کاراکتر ها درون سگمنت داده، تعریف شده است که نام اولین byte آن A میباشد و آخرین کاراکتر رشته نیز با $ مشخص شده است. دستوراتی بنویسید که محتویات این رشته را با ستاره پر کند؟



.
.
.
.code
start: mov ax, @data
mov ds, ax
mov es, ax
.
.
.
mov cx, 0
lea si, a
cld
L1: lodsb
cmp al, '$'
je L2
inc cx
jmp L1
mov al, '*'
dec SI
rep stosb
.
.
.


لطفا فقط این قسمت ها رو که هست درست بفرمایید یا اگر درست هست میشه یک توضیح مختصری بفرمایید. با تشکر :قلب:

hamedv90
جمعه 26 خرداد 1391, 13:23 عصر
کسی نیست منو راهنمایی کنه؟

ssbostan
شنبه 27 خرداد 1391, 16:07 عصر
با سلام؛
در كد بالا شما ابتدا بوسيله عملگر lodsb اومديد مقادير رشته رو به al منتقل كرديد و در صورت اينكه با $ برابر نبود و به عبارتي آخر رشته نبود مقدار cx رو افزايش داديد.
در مرحله بعد * رو در al ريختيد و به تعداد cx به وسيله عملگر stosb مقدار al يعني * رو به رشته منتقل كرديد.

موفق باشيد.

hamedv90
شنبه 27 خرداد 1391, 16:12 عصر
با سلام؛
در كد بالا شما ابتدا بوسيله عملگر lodsb اومديد مقادير رشته رو به al منتقل كرديد و در صورت اينكه با $ برابر نبود و به عبارتي آخر رشته نبود مقدار cx رو افزايش داديد.
در مرحله بعد * رو در al ريختيد و به تعداد cx به وسيله عملگر stosb مقدار al يعني * رو به رشته منتقل كرديد.

موفق باشيد.

سلام، خیلی ممنون. میشه توضیح بدید دستور JMP L1 چه کاربردی داره؟ و آیا الزامی هست؟ با تشکر

ssbostan
شنبه 27 خرداد 1391, 16:27 عصر
با سلام؛

عملگر jmp براي پرش هست و اينجا براي بدست آوردن طول رشته الزاميست.

موفق باشيد.

hamedv90
شنبه 27 خرداد 1391, 16:30 عصر
با سلام؛

عملگر jmp براي پرش هست و اينجا براي بدست آوردن طول رشته الزاميست.

موفق باشيد.

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