dont know exactly what 3c7h is,but the other are used for access to the palette of the VGA-chip in most graphic-modes.in a 256-color mode for example (like 13h) you have 256 possible colors.each color is a entry to the palette which holds the RGB components of the color.you write the palette-index to 3c8h and could use 3c9h in 3reads or 3writes to get/change the contents of this register.
example:
; color #0 is black by default
mov dx,3c8h
out dx,0
mov dx,3c9h
mov al,63 ; the 2 highest bits arent used
out dx,al
out dx,al
out dx,al
; now color #0 is white