да, [a] означает взять значение по адресу, а размер регламентируется либо приемником (в данном случае это 8 байт - rax), либо задание размера источника равным приемнику, mov eax,dword[a]
И еще как я понял можно вместо преобразования записывать каждую переменную под размер нужного регистра? Так?