۳۰-فروردین-۱۳۹۲, ۱۸:۱۴:۰۱
۳۰-فروردین-۱۳۹۲, ۱۸:۲۳:۰۱
متوجه نشدم! یعنی چی؟ میخوایین تا جایی که اینتر هستش جاپ کنه؟ یا اینترو جاپ کنه ؟ و ....
یه مثال بزنین
یه مثال بزنین
۳۰-فروردین-۱۳۹۲, ۲۱:۱۳:۰۹
بله میخوام تا جایی که اینتر است چاپ کنه
به اینصورت تعریف میکنم
به این صورت کاربر رشته را وارد میکنه اینتر میزنه
به اینصورت چاپ میکنه
وقتی هم چاپ میکنه میدونین اینتری هم که کاربر وارد کرده چاپ میکنه حالا میخوام بدونم پایان رشته بجای '$' نمیشه اینتر گذاشت که تا اینتر فقط چاپ کنه یعنی خود اینتر چاپ نکنه؟
به اینصورت تعریف میکنم
کد:
str label byte
max db 20
len db ?
buf db 20 dup('$')
به این صورت کاربر رشته را وارد میکنه اینتر میزنه
کد:
mov Dx,offset str
mov ah,0ah
int 21h
به اینصورت چاپ میکنه
کد:
mov dx,offset buf
mov ah,9h
int 21h
وقتی هم چاپ میکنه میدونین اینتری هم که کاربر وارد کرده چاپ میکنه حالا میخوام بدونم پایان رشته بجای '$' نمیشه اینتر گذاشت که تا اینتر فقط چاپ کنه یعنی خود اینتر چاپ نکنه؟
۳۰-فروردین-۱۳۹۲, ۲۲:۲۱:۲۴
خب الا شما داری قضیه رو از دید سخت نگاه میکنی!
الا شما میخوایین که از کاربر ورودی بگیری و اونو چاپ کنی؛ اما اینترش چاپ نشه! درست؟
الا شما میخوایین که از کاربر ورودی بگیری و اونو چاپ کنی؛ اما اینترش چاپ نشه! درست؟
۳۰-فروردین-۱۳۹۲, ۲۲:۴۹:۳۲
بله همینطوره میخوام اینترش چاپ نشه
۳۱-فروردین-۱۳۹۲, ۱۱:۰۱:۰۱
البته منت امتحان کردم؛ واسه من اینتر چاپ نمیشه ها! یعنی نمیره خط بعدی! ولی به هر حال:
شما وقتی رشته رو بگیری؛ طول رشته میره داخل len ؛ عددی که توی len هستش درواقع طول کل رشته + اون اینتر پایانی هست!
شما باید کاراکتر ها رو یکی با تایع 02 از وقفه 21 به اندازه len -۱ بار چاپ کنی!
شما وقتی رشته رو بگیری؛ طول رشته میره داخل len ؛ عددی که توی len هستش درواقع طول کل رشته + اون اینتر پایانی هست!
شما باید کاراکتر ها رو یکی با تایع 02 از وقفه 21 به اندازه len -۱ بار چاپ کنی!
۳۱-فروردین-۱۳۹۲, ۱۳:۱۸:۵۰
خسته نباشید عزیز این راه های میانبر خودم بلدم ! کلا برای یادگیری میخواستم بدونم روش خیلی ساده هم برای اینکار وجود داره که که اصلا اینتر ذخیره نکنه که بعدا چاپ کنه
یا جای $ که علامت پایان رشته هسته اینتر گذاشت که تا اینتر چاپ کنه
یا جای $ که علامت پایان رشته هسته اینتر گذاشت که تا اینتر چاپ کنه
۳۱-فروردین-۱۳۹۲, ۲۰:۲۲:۱۳
اون $ ثابتیه که برای وقفه ۲۱ و تابع ۰۹ درست شده! اگه میخوایین از این تابع استفاده کنید باید به قوانینش هم پایدار باشید
اگه نمیخوایین ازش استفاده کنید
باید کاراکتر ها رو یکی چاپ کنی و قبل از چاپ با کد هگز اینتر چکشون کنی؛ اگه مساوی هم نبودند چاپشون کن
اگه نمیخوایین ازش استفاده کنید
باید کاراکتر ها رو یکی چاپ کنی و قبل از چاپ با کد هگز اینتر چکشون کنی؛ اگه مساوی هم نبودند چاپشون کن
۱۶-اردیبهشت-۱۳۹۲, ۱۹:۱۰:۳۵
سلام
با دستور تغییر مکان نما هر کاری که بخواهی میتونی انجام بدی.
در اسمبلی همیشه پایان رشته $ ختم میشه، نمیتونی در حالت عادی این قضیه تغییر بدی.
و کاراکتر $ هم اصلا نمیتونی چاپ کنی برای این که پایان رشته مشخص می کنه.
البته برای هر قضیه ای راهی هم وجود دارد.
موفق باشی.
با دستور تغییر مکان نما هر کاری که بخواهی میتونی انجام بدی.
در اسمبلی همیشه پایان رشته $ ختم میشه، نمیتونی در حالت عادی این قضیه تغییر بدی.
و کاراکتر $ هم اصلا نمیتونی چاپ کنی برای این که پایان رشته مشخص می کنه.
البته برای هر قضیه ای راهی هم وجود دارد.
موفق باشی.
۱۹-اردیبهشت-۱۳۹۲, ۱۹:۵۵:۰۵