我在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;发布于 2014-06-10 22:26:33
我找到了决心。请看一下。在hla div编译器的Windows版本上,所有的东西都不能正常工作。应该是这样的。我希望它能对某人有所帮助;)
mov(Distance, eax);
mov(15000, ebx);
div(ebx);
mov(eax, age);发布于 2014-11-13 16:46:24
mov(0, edx)
mov(15000, eax);
div(distance, edx:eax);您需要将零扩展到edx,因为保存剩余部分的是寄存器。
https://stackoverflow.com/questions/24128013
复制相似问题