如果我要在汇编程序的中间,退出当前程序应该怎么编指令?
我是要设计一个汇编指令 包括机器指令也要设计, 功能是当出现这个汇编符号时 就退出当前汇编程序
还有 我在网上看END伪指令, 这个一般怎么用?
------解决方案--------------------
end 汇编中的程序结束的标志,同时也可以标志着代码段的开始位置,需要用标签来标记代码开始位置
如:
start: mov ax,ds:[0] ;代码执行的开始标签
……
end start ;标记代码从那开始执行
------解决方案--------------------
mov ax,4c00h
int 21h
DOS里是这样,这两条指令功能上应该和C语言中的main函数的return 0;是一样的。如果是在windows里的话,可能需要做很多工作,包括一些清理的工作和调用特定的API。
------解决方案--------------------
END配合其他伪指令只是告诉编译器需要编译哪些汇编指令,它无法控制你的程序在内存中执行时的行为。而mov ax,4c00h int 21h则是在程序在内存中运行的过程中通知操作系统回收本程序占用的资源以及让操作系统重新获取控制权的。另外如果是在没有操作系统的系统上执行的话,就没有退出一说了,这种时候你可能需要把系统切换到低功耗模式或者直接断电。
------解决方案--------------------
你的意思是你想做虚拟机么?
如果这样的话那就应该属于没有操作系统的计算机了吧?这个可能真是无法退出的。或者说你想在执行这条退出指令之后关闭你做的虚拟机环境?如果是的话那就相当于关机了。
------解决方案--------------------
你是想调试别的程序???
可以使用CPU提供的 TF 标志寄存器
CPU每执行一条指令就产生一个中断了