iran_sky
جمعه 19 آذر 1389, 09:21 صبح
با سلام به دوستان عزیز
من میخوام ابتدا رشته abcd را گرفته سپس به این صورت چاپ کند cdab
اما با این کد به این صورت چاپ میکند cda
کد:
datasg segment para 'code'
msg1 db 'Enter a string:',"$"
msg2 db 'Change string is :',"$"
strlist1 label byte ;start of parameter list1
max1 db 5
len1 db ?
buffer1 db 5 dup(' ')
dolar1 db '$'
strlist2 label byte ;start of parameter list2
max2 db 5
len2 db ?
buffer2 db 5 dup(' ')
dolar2 db '$'
datasg ends
codesg segment para 'code'
main proc far
assume ds:datasg, cs:codesg
mov ax, datasg
mov ds, ax
mov ah, 6h ;clear screen
mov al, 25 ;number of rows
mov ch, 0
mov cl, 0
mov dh, 24 ;row
mov dl, 79 ;column
mov bh, 7 ;attribute
int 10h
mov ah, 2h ;cursor move
mov dh, 10 ;row
mov dl, 30 ;column
mov bh, 0 ;page number
int 10h
lea dx, msg1
mov ah, 9h
int 21h
mov ah, 0ah
lea dx, strlist1
int 21h
mov ah, 2h ;cursor move
mov dh, 12 ;row
mov dl, 30 ;column
mov bh, 0 ;page number
int 10h
mov ah, 0
mov dx, offset msg2
mov ah, 9h
int 21h
; output the string char by char
lea bx, buffer1
mov ch, 0
mov cl, len1
sub cl, 2
add bx, cx ; the end of string
;mov cl, 0 ; counter of loop
p1:
mov dl, [bx]
mov ah, 2h
int 21h
inc cl
inc bx
cmp cl,len1
jnz p1
sub cl,4
sub bx,4
mov dl,[bx]
mov ah,2h
int 21h
cmp cl,len1
jnb p1
mov ax, 4c00h
int 21h
main endp
codesg ends
end main
اما میخوام بعد از این کار ابتدا رشته cdab در یک لیست پارامتری قرار بگیرد سپس چاپ شود
من میخوام ابتدا رشته abcd را گرفته سپس به این صورت چاپ کند cdab
اما با این کد به این صورت چاپ میکند cda
کد:
datasg segment para 'code'
msg1 db 'Enter a string:',"$"
msg2 db 'Change string is :',"$"
strlist1 label byte ;start of parameter list1
max1 db 5
len1 db ?
buffer1 db 5 dup(' ')
dolar1 db '$'
strlist2 label byte ;start of parameter list2
max2 db 5
len2 db ?
buffer2 db 5 dup(' ')
dolar2 db '$'
datasg ends
codesg segment para 'code'
main proc far
assume ds:datasg, cs:codesg
mov ax, datasg
mov ds, ax
mov ah, 6h ;clear screen
mov al, 25 ;number of rows
mov ch, 0
mov cl, 0
mov dh, 24 ;row
mov dl, 79 ;column
mov bh, 7 ;attribute
int 10h
mov ah, 2h ;cursor move
mov dh, 10 ;row
mov dl, 30 ;column
mov bh, 0 ;page number
int 10h
lea dx, msg1
mov ah, 9h
int 21h
mov ah, 0ah
lea dx, strlist1
int 21h
mov ah, 2h ;cursor move
mov dh, 12 ;row
mov dl, 30 ;column
mov bh, 0 ;page number
int 10h
mov ah, 0
mov dx, offset msg2
mov ah, 9h
int 21h
; output the string char by char
lea bx, buffer1
mov ch, 0
mov cl, len1
sub cl, 2
add bx, cx ; the end of string
;mov cl, 0 ; counter of loop
p1:
mov dl, [bx]
mov ah, 2h
int 21h
inc cl
inc bx
cmp cl,len1
jnz p1
sub cl,4
sub bx,4
mov dl,[bx]
mov ah,2h
int 21h
cmp cl,len1
jnb p1
mov ax, 4c00h
int 21h
main endp
codesg ends
end main
اما میخوام بعد از این کار ابتدا رشته cdab در یک لیست پارامتری قرار بگیرد سپس چاپ شود