PDA

View Full Version : مشکل برنامه اسمبلی



taherbaghal
جمعه 16 فروردین 1387, 13:52 عصر
سلام
یه برنامه دارم با اسمبلی که یه پیغام بگیره و در 3 سطر به این صورت که در سطر اول 1 بار و سطر دوم 2 بار و سطر سوم 3 بار پشت سر هم چاپ کنه برنامه رو نوشتم ولی در هر سطر یک بار چاپ میشه



.model small
.stack
.data
str db "entermessage:",'$'
temp db "?"
msg db 0Dh,0Ah,"press any key...",0Dh,0Ah,'$'
lf db 10,13,'$'

strlist label byte
max db 20
len db ?
buffer db 20 dup('$')
dolar db '$'

.code
main proc

mov ax,@data
mov ds,ax

mov ah,9
lea dx,str
int 21h

mov ah,0ah
lea dx,strlist
int 21h

mov ah,9
lea dx,lf
int 21h





mov ah,9
lea dx,buffer
int 21h

mov ah,9
lea dx,lf
int 21h





mov ah,9
lea dx,buffer
int 21h

mov ah,9
lea dx,buffer
int 21h

mov ah,9
lea dx,lf
int 21h





mov ah,9
lea dx,buffer
int 21h

mov ah,9
lea dx,buffer
int 21h

mov ah,9
lea dx,lf
int 21h





mov dx, offset msg
mov ah, 9
int 21h

mov ah, 0
int 16h

mov ax,4c00h
int 21h


main endp
end main

hoax3r
شنبه 17 فروردین 1387, 22:49 عصر
شما تو خطهایی که می خوای دو یا سه رشته پشت سر هم چاپ کنی باید موقعیت مکان نما رو هم به اندازه طول رشته بصورت ستونی تغییر بدی، البته قبلش باید موقعیت فعلی رو بگیری بعد
بیای موقعیت جدید رو بدست بیاری یعنی موقعیت فعلی به علاوه طول رشته

وقفه 10 تابع 2 و 3 برای گرفتن و تغییر موقعیت مکان نماست.

taherbaghal
یک شنبه 18 فروردین 1387, 13:49 عصر
دوسـت عزیز من این کار رو انجام دادم ولی کرسر بعد از چاپ رشته به جلو نمیره مشکل منم همینه

hoax3r
یک شنبه 18 فروردین 1387, 18:56 عصر
با سلام
فکر مکینم منظوره من رو درست متوجه نشدین
شما بعد اینکه به خط دوم رسیدی و رشته اول رو چاپ کردی حالا می خوای رشته دوم رو
چاک کنید باید موقعیت مکان نما هم به اندازه طول رشته تغییر کنه، چون بعد چاپ موقعیت مکان نما صفر میشه یعنی اول خط برای همین رشته مورد نظر در هر سطر یک بار چاپ میشه
این یه نمونه برای چاپ در خط دوم :



mov ah,9
lea dx,buffer
int 21h

;get cursor position
mov ah, 03h
mov bh, 0
int 10h

;set cursor position
add dl, len
mov ah, 02h
mov bh, 0
int 10h

mov ah,9
lea dx,buffer
int 21h

mov ah,9
lea dx,lf
int 21h


برای خط سه هم همینطو
موفق باشید