ورود

View Full Version : شمارش (loop دستی)



aleas2
چهارشنبه 04 اردیبهشت 1392, 23:14 عصر
دوستان بنده میخوام loop دستی پیاده سازی کنم

یا به عبارتی میخوام یه برنامه بنویسم که یک عدد از ورودی بگیره مثلا 7 بعد
1+2+3+4+5+6+7
مجاسبه کنه جواب چاپ کنه
و فقط میخوام از دستورات

dec
add
jcxz
jmp


استفاده کنم


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


mov cl,10
mov ch,0

l1:
add a,1
jcxz l2

dec cx


jmp l1


l2:

mov dx,a
mov ah,9h
int 21h

این کدم نوشتم چیزی چاپ نمیکنه


mov cx , 10
mov ax, 0
l1:
add ax , cx
jcxz l2
dec cx
jmp l1
l2:


mov dx,ax
mov ah,9h
int 21h





ضمنا" دوستان این برنامه به هیچ عنوان پروژ یا برنامه ای استاد داده باشه نیسته فقط خودم جهت یاد گیری میخوام


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

m.j_banitaba
پنج شنبه 05 اردیبهشت 1392, 07:51 صبح
مشکل در استفاده از سرویس 0x9 از وقفه 0x21 است ورودی این سرویس یک اشاره گر به رشته است. ابتدا شما باید حاصل جمع را به رشته تبدیل کنید سپس چاپ کنید.

aleas2
پنج شنبه 05 اردیبهشت 1392, 07:57 صبح
اگر ممکنه بگین چطور حاصل جمع به رشته تبدیل کنم برای چاپ

m.j_banitaba
پنج شنبه 05 اردیبهشت 1392, 08:04 صبح
این یک نمونشه:
http://www.winasm.net/forum/index.php?showtopic=1298
اینم یه جور دیگس:
http://stackoverflow.com/questions/15792702/convert-byte-to-string-in-x86-assembly-language