VMRUN Run Virtual Machine

VMRUN是一个SVM指令,用于执行虚拟机的客户指令流。它保存主机状态,从VMCB加载客户状态,然后执行直至遇到拦截事件。当拦截发生时,处理器会更新VMCB并恢复主机执行。该指令要求CPU支持SVM,否则会产生#UD异常。在系统管理模式下,VMRUN不可用,其行为未定义。
摘要由CSDN通过智能技术生成

开始执行客户指令流。 描述guest虚拟机的虚拟机控制块(VMCB)的物理地址取自rAX寄存器(用于形成地址的RAX部分由有效地址大小决定)。 VMCB的物理地址必须在4K字节边界上对齐。

VMRUN将主机处理器状态的子集保存到VM_HSAVE_PA MSR中物理地址指定的主机状态保存区域(这个区域存储的值可以直接修改,结果未知,)。 然后,VMRUN从VMCB以rAX中指定的物理地址加载客户处理器状态(和控制信息)。 然后,处理器执行客户指令,直到触发了几个拦截事件(在VMCB中指定)中的一个。当拦截事件发生时,处理器将访客状态的快照存储回VMCB,重新加载主机状态,并在VMRUN之后的指令处继续执行主机代码指令。

这是一个安全虚拟机(SVM)指令。 CPUID Fn8000_0001_ECX [SVM] = 1表示支持SVM体系结构和SVM指令。有关使用
CPUID指令,请参见CPUID指令的参考页(第160页)。

如果未启用SVM,则此指令会生成#UD异常。 请参阅“AMD64架构程序员手册”第2卷:系统说明中的“启用SVM”,订购号为#24593。

系统管理模式不支持VMRUN指令。 尝试从SMM处理程序中执行此指令导致的处理器行为未定义。

Action
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值