ورود

View Full Version : مبتدی: اشکال این کد



gh_mohammady
جمعه 30 فروردین 1392, 09:38 صبح
با عرض سلام خدمت اساتید و دوستان گرامی
میشه خواهش کنم راهنماییم کنید تا اشکال این کد را متوجه بشم ؟
چاپ باینری یک عدد


dseg segment 'data'
str1 db "PLZ enter number",'$'
str2 db 10,13,"result is:",'$'
num db 40 dup(?)
dseg ends
cseg segment 'code'
assume cs:cseg,ds:dseg
main proc far
mov ax,cs
mov ds,ax
lea dx,str1
call print
lea dx,num
call read
lea si,num
call tobin
lea dx,str2
call print
lea dx,num
call print
mov ax,4c00h
int 21h
main endp
print proc near
mov ah,9h
int 21h
ret
print endp
read proc near
mov ah,0ah
int 21h
ret
read endp
tobin proc near
mov ax,0
l1:
mov bl,[si]
cmp bl,0
je end
mov dx,10
mul dx
sub bl,'0'
mov bh,0
add ax,bx
inc si
jmp l1
end:
ret
tobin endp
cseg ends
end main






از همکاری شما سپاس گزارم

programer-ir
جمعه 30 فروردین 1392, 12:00 عصر
مثل همیشه شما ثبات داده رو اشتباه مقدار دهی می کنید
mov ax,dseg

gh_mohammady
جمعه 30 فروردین 1392, 13:46 عصر
سپاس گزارم اون یه اشکال تایپی بود، دیگه یاد گرفتم به خدا
اما اشکال برنامه چیز دیگه ست، read درست اجرا نمیشه دلیلش چیه ؟

gh_mohammady
شنبه 31 فروردین 1392, 14:24 عصر
اشکالش در مورد read هم درست شد ولی بازم خروجی نمیده

xman_1365_x
دوشنبه 02 اردیبهشت 1392, 10:03 صبح
چاپ باینری یک عدد
با راه های زیادی میشه انجامش داد،ساده ترین راهش اینه عدد رو شیفت کنید بیت به بیت اگر صفر یا یک بود صفر و یک اسکی در حافظه قرار بدین و انتهاش به دالر ختم شه و با وقفه 9 نمایش بدین

اشکالش در مورد read هم درست شد ولی بازم خروجی نمیده
دو تا مشکل میبینم

شما از تابع 10 برای گرفتن بافر ورودی درست استفاده نکردین،میتونید در سایت جستجو کنید بارها جواب داده شده(در حالت کلی قبل از ایجاد تاپیک با عنوان مناسب،در سایت جستجو کنید )
تابع tobin مشکل داره که با الگوریتمی که بالا گفتم میتونید انجامش بدین


موفق باشی