Я новичок здесь так же, как я новичок в сборке.Я надеюсь, что вы можете помочь мне начать.Я использую 32-битную (i686) Ubuntu для создания программ на ассемблере, используя компилятор gcc.
Я знаю, что регистры общего назначения имеют максимальный размер 32-битных (4 байта), но что, когда мне нужно работать на 64битовые числа?В инструкции Intel сказано, что старшие биты хранятся в% edx, а младшие в% eax. Отлично ... Так как я могу что-то сделать с этим числом из 2-х регистров?Я должен преобразовать 64-битное десятичное в шестнадцатеричное, затем сохранить его в памяти и показать на экране.
Как сделать 64-битное четырехзначное слово при запуске программы в разделе .data?
РЕДАКТИРОВАТЬ:Когда я определил глобальную переменную llu (long long unsigned) в C и скомпилировал для сборки, он сделал:
.data
a:
.long <low bits>
.long <high bits>
Это потому, что параметры сохраняются в стеке в обратном направлении или что-то еще?