0

Integer overflow进去了HLA nasm。我想编写一个简单的程序,将提供Distance的变量除以 15000 并显示它的评估,但我遇到了这个问题。我根本不明白除法的想法HLA。预先感谢您的帮助。

program zad2;
#include( "stdlib.hhf");

static
    f    :  int32   := 15000;
    s    :  int32   := 300000;
    Distance: int32;

begin zad2;

        stdout.put("Give car distance", nl);
        stdin.get(Distance);
        if (Distance<150000) then
            MOV(15000, eax);
            div(Distance, EDX:EAX );
                stdout.put("div evaluation:",eax ,nl);
                    jmp menu0;
            endif
end zad2;
4

2 回答 2

2
mov(0, edx)
mov(15000, eax);
div(distance, edx:eax);

您需要将零扩展到 edx,因为它是保存剩余部分的寄存器。

于 2014-11-13T16:46:24.093 回答
0

我找到了我的解决方案。请看一下。所有的东西都不能在hla 编译器hla div的版本上正常工作。Windows它应该看起来像这样。我希望它可能对某人有所帮助;)

mov(Distance, eax);
mov(15000, ebx);
div(ebx);
mov(eax, age);
于 2014-06-10T22:26:33.173 回答