an module is executed in guest using vmcall instruction. then host handler the vmcall exit and read the registers value. but ax,cx,dx get the correct values while bx and si get the worong. what is the problem.
code in guest is :
__asm__ ("mov $10,%ax");
__asm__ ("mov $20,%bx");
__asm__ ("mov $30,%cx");
__asm__ ("mov $40,%dx");
__asm__ ("mov $50,%si");
__asm__ ("vmcall");
host output :
HYPER CALL IS CALLED AND THE NR IS 10,bx is -526778348,cx is 30,dx is 40,si is -1017839566
so ax(NR) ,cx,dx values are correct .but bx and si values are wrong.why?
Post new comment