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
حالا مشکلم اینه که نمیخوام با زدن 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