у тебя исчезает не второй, а именно первый.
если бы ты воспользовался пошаговой отладкой (или хотя бы посмотрел в регионе памяти как это все выглядит)то ты понял бы.
допустим
rdi = 11 11 11 11 11 11 11 11, а
rbx = 22 22 22 22 22 22 22 22.
тогда, после срабатывания первой инструкции
mov [base_addres],rdi
у тебя в регионе памяти запишется правильный адрес
11 11 11 11 11 11 11 11, но после, срабатывания второй инструкции
mov [base_addr],rbx
у тебя в регионе памяти будет так
11 22 22 22 22 22 22 22 22
т.е. второй адрес будет правильным, а первый ты повредишь.