PDA

View Full Version : سوال: برنامه بنویسید که رشته ای از ورودی دریافت کرده و آن را در وسط صفحه چاپ کند



hamedv90
دوشنبه 02 خرداد 1390, 14:36 عصر
برنامه بنویسید که رشته ای از ورودی دریافت کرده و آن را در وسط صفحه چاپ کند

میشه بگید مشکل این کد چیه؟ ممنون :قلب:

stksg segment stack
stksg ends

datasg segment para 'data'
paralist label byte
maxlen db 20
actlen db ?
kbdata db 20 dup(' ')
datasg ends

codesg segment para 'code'
main proc far
assume ds:datasg,cs:codesg
;----
mov ah , 0ah
lea dx , paralist
int 21h
;----
mov ax,0600h
mov bh,71h
mov cx,000h
mov dx,184fh
int 10h
;----
mov ah,02h
mov bh, 00
mov dh,08h
mov dl,0fh
int 10h
;----
mov ah,09h
lea dx, paralist
int 21h
;----
mov ax,4c00h
int 21h
main endp
codesg ends

end main

armin0282
دوشنبه 02 خرداد 1390, 18:04 عصر
کدت رو تغییر دادم . با int 21h,ah 02h من اجرا گرفتم و یه کمی تغییر.


stksg segment stack
stksg ends

datasg segment para 'data'
paralist db 100 DUP($)
maxlen db 20
actlen db ?
kbdata db 20 dup(' ')
datasg ends

codesg segment para 'code'
main proc far
assume ds:datasg,cs:codesg
;----

mov di,0
;Get Char:------------------------;
Insert: ;
mov ah,0 ;
int 16h ;
;
mov ah,0eh ;Print Input ;
int 10h ;
;
Cmp al,0Dh ;
mov paralist[di],al ;
je exit ;Check for Press ENTER ;
inc di ;
jmp Insert ;
;---------------------------------;
exit:
mov ax,0600h
mov bh,71h
mov cx,000h
mov dx,184fh
int 10h
;----
mov ah,02h
mov bh, 00
mov dh,08h
mov dl,0fh
int 10h
;----
mov di,0
;----
;Print:-----------------;
LOOP1: ;
mov al,paralist[di] ;
cmp al,0Dh ;
je E ;
mov dl,al ;
mov ah,02h ;
int 21h ;
inc di ;
JMP LOOP1 ;
;-----------------------;
E:mov ax,4c00h
int 21h
main endp
codesg ends

end main

موفق باشید

hamedv90
دوشنبه 02 خرداد 1390, 19:09 عصر
خیلی ممنون آرمین جان :قلب: