我在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;
答案 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);