如何在HLA组件中正确划分数字

时间:2014-06-09 20:00:36

标签: assembly nasm hla

我在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;

2 个答案:

答案 0 :(得分:2)

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

你需要将其扩展到edx,因为它是保存余数的寄存器。

答案 1 :(得分:0)

我找到了解决方案。请看一下。 hla div的所有内容在Windows版本的hla编译器上无法正常工作。它看起来应该是这样的。我希望它可能以某种方式对某人有帮助;)

mov(Distance, eax);
mov(15000, ebx);
div(ebx);
mov(eax, age);