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