PDA

View Full Version : فرستادن رشته بدون واسطه



Tarrah
دوشنبه 15 خرداد 1385, 19:53 عصر
سلام
مشکل این کد کجاست؟



; chape string be surate mostagim va bedune vasete
printstring macro strname
lea dx,strname
mov ah,9h
int 21h
endm

clrscr macro z,t
mov ax,t
mov bh,z
mov cx,0000h
mov dx,184fh
int 10h
endm

curs macro x1,y1
mov ah,2h
mov dh,x1
mov dl,y1
mov bh,0
int 10h
endm

putsi macro SomeText
local Printst,SkipData
jmp SkipData
Printst db SomeText,'$'
SkipData:
lea dx,Printst
mov ah,9h
int 21h
endm

reads macro name1
mov ah,0ah
lea dx,name1
int 21h
endm

.model small
.stack
.data
strlist label byte
max db 20
len db ?
buffer db 20 dup('$')

.code
main proc far
mov ax,@data
mov ds,ax
clrscr 17h,0600h
curs 10,30
putsi 'pleas enter a string: '
reads strlist
curs 12,30
putsi 'you entered this string: '
printstring buffer
mov ah,4ch
int 21h
main endp
end main

Younes
سه شنبه 16 خرداد 1385, 14:33 عصر
سلام شما اعلام نکردید که به چه مشکلی برمی خورید اما بنظر می آید که پیغامهایتان را باید قبلا بصورت db در سگمنت داده معرفی بکنید بعد در صدا کردن macro از آن استفاده نمایید زیرا این پیغام بدون تعریف ، هیچ آفستی ندارد که شما بتوانید آنرا در dx گذاشته و برای نوشتن به وقفه 21h بفرستید.

Tarrah
چهارشنبه 17 خرداد 1385, 16:48 عصر
مشکل حل شد
باید سگمنت ها رو push و pop کرد.