That can be simply drawn with TikZ (see the first code). The second code is just for a comparison with Asymptote.

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usepackage{asymptote}
\begin{document}
\begin{tikzpicture}
\draw
(0,0) grid (1,3)
(1,.5) coordinate (A1)
(1,1.5) coordinate (A2)
(1,2.5) coordinate (A3);
\draw[shift={(2.5,0)}]
(0,0) grid (3,3)
(0,.5) coordinate (B1)
(0,1.5) coordinate (B2)
(0,2.5) coordinate (B3);
\foreach \i in {1,2,3}
\draw[->,shorten >=1mm,shorten <=1mm] (A\i)--(B\i);
\end{tikzpicture}
\hspace{1cm}
\begin{asy}
unitsize(1cm);
import geometry;
pair[] A={(1,.5),(1,1.5),(1,2.5)};
add(grid(1,3,red));
transform t=shift(2.5,0);
pair[] B={(0,.5),(0,1.5),(0,2.5)};
add(t*grid(3,3,blue));
for(int i=0; i<A.length;++i){
pair p=relpoint(A[i]--tB[i],.1);
pair q=relpoint(A[i]--tB[i],.9);
draw(p--q,Arrow(TeXHead));
}
\end{asy}
\end{document}