vb或汇编怎样能对CPU发送HLT指令? 只要代码哦。(因为搜不到,可能没人回答,所以有追加分。)
展开全部
首先要弄明白这个指令是干什么的
HLT 执行操作后,使机器暂停工作,使处理器CPU处于停机状态,以等待一次外部中断到来,中断结束后,程序继续执行,CPU继续工作。
在vb这样的高级语言中,没法控制中断,中断随时都在产生,所以这个指令没什么实际意义。
如果你非要用这个,可以通过驱动程序来实现。还可以通过修改exe文件来实现。网上也有通过修改vb 的编译程序来内嵌汇编的文章,你自己找来看。
总之,这个指令用处不大。
HLT 执行操作后,使机器暂停工作,使处理器CPU处于停机状态,以等待一次外部中断到来,中断结束后,程序继续执行,CPU继续工作。
在vb这样的高级语言中,没法控制中断,中断随时都在产生,所以这个指令没什么实际意义。
如果你非要用这个,可以通过驱动程序来实现。还可以通过修改exe文件来实现。网上也有通过修改vb 的编译程序来内嵌汇编的文章,你自己找来看。
总之,这个指令用处不大。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、查intel 手册HLT指令的操作码为F4,没有操作数;
2、汇编语言中对于编译器不支持的指令,可以在代码段直接用定义数据的方法实现。
3、以下程序可以利用masm5编译:
assume cs:ABC
ABC segment
start:
mov ax,0e31h
int 10h
db 0f4h ;HLT指令
ret
end start
ABC ends
2、汇编语言中对于编译器不支持的指令,可以在代码段直接用定义数据的方法实现。
3、以下程序可以利用masm5编译:
assume cs:ABC
ABC segment
start:
mov ax,0e31h
int 10h
db 0f4h ;HLT指令
ret
end start
ABC ends
追问
求汇编写的HLT指令代码示例,把程序自身优先级设为低,常驻内存,连续发送HLT指令(可以叫循环吗?)
如果没有把程序自身优先级设为低这个步骤也可以。谢谢哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-07-10
展开全部
普通的汇编编译器中, hlt 就是 hlt指令。就这一行,没了。
vb........这个是很上层的东西,而且编译方式很奇葩,不支持内联汇编(除非特殊方式),所以,没有hlt一说。。。
vb........这个是很上层的东西,而且编译方式很奇葩,不支持内联汇编(除非特殊方式),所以,没有hlt一说。。。
追问
那可以把vb编译好的程序用汇编代码修改,加入HLT命令吗?
实在不行有没有汇编写的HLT指令代码示例?(简单地说,就是把程序自身优先级设为低,常驻内存,连续发送HLT指令)如果有,真的要谢谢哦
我对汇编基本不是很懂,恶补中……
追答
我想知道的是,你为什么要在vb里加HLT。。。
如果HLT。。。至少还得考虑操作系统的问题:VB编译出来的EXE,需要Windows的线程/进程调度,HLT一下,全都拜拜了。。。
一般情况下,HLT是操作系统该干的事,不是用户态程序干的。对于一般的工作, Windows 提供了大量的 API ,而且用起来都绝对比汇编简单。你可以参考一下MSDN上的文档,看看你所需要的功能能否利用操作系统自身的某些API实现。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询