x86 汇编器中的除法

Pet*_*Pan 2 x86 assembly

我的大学给了我一个练习:

1.在Jasmin中创建一个新文档

2. 使用 AL 寄存器将 9 加到 8。

3. 减去 2。

4. 除以 7。

我的解决方案是:

mov al,9
add al,8
sub al,2
Run Code Online (Sandbox Code Playgroud)

但如何除以 7 呢?我尝试过类似的方法,div al,7但这不起作用。

Iły*_*sov 7

div操作将 AX、DX:AX 或 EDX:EAX 寄存器中的值(被除数)除以(无符号)源操作数(除数),并将结果存储在 AX (AH:AL)、DX:AX 或 EDX 中: EAX 寄存器。

来源

因此,要将价值划分为 al,您需要执行以下操作:

mov ah, 0 # clean up ah, also you can do it before, like move ax, 9
mov bl, 7 # prepare divisor
div bl # al = ax / bl, ah = ax % bl
Run Code Online (Sandbox Code Playgroud)

之后 al 将包含商,ah 将包含余数