Вот мой код:x86 сборка Какие регистры участвуют в умножение и деление
.data
ans1 db 0
ans2 db 0
.data?
in1 db 100 dup(?) ; first input value
in2 db 100 dup(?) ; second input value
.code
start:
; here I have code for input
; I get 2 nums, and I want to multiply and divide them
; here is what I already have to mul/div them:
lea eax, in1
lea edx, in2
imul eax ; multiply in1 and in2
mov ans1, eax ; move result to ans1
xor eax, eax ; clear register
xor edx, edx ; " "
lea eax, in1
lea edx, in2
idiv eax ; divide in1 by in2
mov ans2, eax ; move result to ans2
lea eax, ans1
push eax
call StdOut ; print ans1 (I have include instructions at the start)
lea ebx, ans2
push ebx
call StdOut ; print ans2 ("")
Мой вопрос: 1. Конкретную регистр я помещаю in1
и in2
умножить их? 2. «Разделить их? 3. Где остаток хранится в делении?
И не беспокойтесь об общем заявлении, не могли бы вы просто сказать мне, какие регистры обязательно (как можно ближе) работают в умножении и делении.
ПРИМЕЧАНИЕ: Некоторые может сказать, что этот пост является повторением x86 assembly - masm32: absolute breakdown of multiplication and division, но (поправьте меня, если я ошибаюсь) это уважающее форум сообщества, чтобы сделать новую запись, а не добавлять комментарии к старому и сделать это вне темы.
Правильный ответ на этот вопрос будет таким же, как ответ на связанный вопрос, [RTFM] (http://www.intel.com/content/www/us/en/processors/architectures-software-developer- manuals.html) ... – DCoder