這裏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