多分、乗算と除算の動作がx86アセンブリでどのように機能するのか混乱しています。たとえば、以下のコードは8ビットの扱いが難しいとは思われません。x86アセンブリの乗算命令と除算命令のオペランド、16ビット以上
8ビット乗算:
; User Input:
; [num1], 20
; [num2] , 15
mov ax, [num1] ; moves the 8 bits into AL
mov bx, [num2] ; moves the 8 bits into BL
mul bl ; product stored in AX
print ax
しかし、あなたは、2つの16ビット数を乗算したいときに何が起こりますか?どのようにして2つの16ビットの数値に8ビットの数値をかけたのと同じ方法をかけることができますか?
値が格納されるレジスタについては混乱します。それらはALとAHに格納されるのでしょうか、または単にAXに16ビットの数値を格納するだけでしょうか。私が何を意味するのかを示す:
誰かが乗算と除算の仕組みをちょっと説明できますか? (具体的には、16ビットと32ビットの数で?私は値が低いALとAHに格納されている場合のビットを回転させる必要がありますか?
またはax
とbx
にできるもの単にmov num1
とnum2
それぞれとは、それらを乗算?eax
あなたは読んでみてくださいました[documenta (http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html)? –