Hello, I am suppose to write a program in which you can enter grades for a certain number of students. I am using NASM.

I declare unassigned memory like that:

.UDATA

student resb 20*300 ; for the array of student names
grades resw 20*4 ; and for the array of grades

This is how I try to enter the student names:

mov ax,0 ; and clear ax
start:
;
nwln ;
PutStr msg1 ; inc ax ;
PutInt ax ;
PutCh ":" ;
mov dx,[student] ;
GetStr dx,30 ;
add dx,30 ;
cmp ax,cx ;
jl start ;

once I entered all student names and I assigned grades to it (the same way) I try to retrieve the names like this:

mov dx,[student] ;
PutStr dx ;
add dx,30 ; for 30 character
..and repeat the whole thing

Obviously I am doing something wrong.
Can anybody give me an advice or an example on how to read / retrieve strings and numbers ?
Any help is appreciated.