PDA

View Full Version : مشکل در مورد کاراکتر $ در یک پروژه



nasleghermez
یک شنبه 05 دی 1389, 15:06 عصر
سلام این کد یه رشته رو میگیره و تعداد کاراکترهاش رو چاپ میکنه
حالا مشکلم اینه که نمیخوام با زدن Enter خوندن کاراکترو تموم کنه بلکه میخوام با زدن $ خوندن رشته رو تموم کنه
و اینکه وقتی اینتر رو میزنم بجای اینکه یک خط بیاد پایین و جواب رو چاپ کنه فقط میاد اول خط
راستش این کد قدیمیه و خیلی وقته با اسمبلی کار نکردم تقریبا یکساله بعضی چیزا فراموشم شده ولی الان احتیاج پیدا کردم اگه ممکنه یه مقدار کمک کنید


.model small

.data

msg db 'enter your string:','$'

;start paremetr list

strlist label byte

max db 20

len db ?

buffer db 20 dup(' ')

dolar db '$'

.code

main proc

mov ax,@data

mov ds,ax

call cls



call printmsg

call readstring

call chap

mov ah,4ch

int 21h

main endp



cls proc

mov ah,6h

mov al,25

mov ch,0

mov cl,0

mov dh,24

mov dl,79

mov bh,7

int 10h

cls endp



printmsg proc

mov dx,offset msg

mov ah,9h

int 21h

printmsg endp



readstring proc

mov ah,0ah

lea dx,strlist

int 21h

readstring endp



chap proc

;lea bx,buffer

mov dl,len

add dl,48

mov ah,2h

int 21h



chap endp

end main

xman_1365_x
یک شنبه 05 دی 1389, 21:00 عصر
سلام این کد یه رشته رو میگیره و تعداد کاراکترهاش رو چاپ میکنه
برنامه شما فقط ورودي ميگيره!
chap proc مشكل داره چون شما اصلا تعداد رو شمارش نكردين كه مقداري بخواد نمايش داده شود!

حالا مشکلم اینه که نمیخوام با زدن Enter خوندن کاراکترو تموم کنه بلکه میخوام با زدن $ خوندن رشته رو تموم کنه
خوب وقتي شما داري بافر مي خوني بايد اينتر بزني براي حل مشكل بايد با وقفه اي كه كاراكتر كاراكتر بگيره انجام بدي و مقايسه كني اكر al برابر با $ بود از حلقه خارج شه!

و اینکه وقتی اینتر رو میزنم بجای اینکه یک خط بیاد پایین و جواب رو چاپ کنه فقط میاد اول خط راستش این کد قدیمیه و خیلی وقته با اسمبلی کار نکردم تقریبا یکساله بعضی چیزا فراموشم شده ولی الان احتیاج پیدا کردم اگه ممکنه یه مقدار کمک کنید

من كه همچين مشكلي نديدم.
اما شما يك proc داري به اسم cls اسم اين پروس براي من پاك كردن صفحه نمايش هست در صورتي كه شما در اون كرسر رو منتقل كردي
و به اشتباه مثلا bh رو مساوي با 7 قرار دادين اين يعني ميره پيج 7 و مشكلاتي از اين دست داره
موفق باشي