MASM使用寄存器作为mod运算符之间的表达式

时间:2012-01-23 12:30:17

标签: masm masm32

我在masm32中完全是新手,我想要实现这样的想法,这在以下(不正确的)代码行中描述:

  

mov ebx,(eax mod any_number)

编译器给出了错误A2026:预期的常量

我读到mod操作不能在寄存器之间使用,那么哪些方法可以帮助我执行相同的想法?

希望得到你的帮助。

2 个答案:

答案 0 :(得分:2)

9%5 = 4 模数是什么意思?这是除以2个数字之后的余数

    mov     eax, 9 mod 5

xor     edx, edx
mov     eax, 9
mov     ecx, 5
div     ecx

现在edx包含模数

答案 1 :(得分:0)

我想用我的答案练习《汇编语言指南:简明介绍》(James T. Streib)的练习2.b

;result = number % amount

mov eax,number  
cdq             ;copy or propagate the sign bit into the edx register
idiv amount     
mov result,edx  ;the remainder in the edx register and the  
                ;quotient in the eax register