当前位置: 代码迷 >> 汇编语言 >> , ,汇编终止程序指令如何编? END指令如何用
  详细解决方案

, ,汇编终止程序指令如何编? END指令如何用

热度:471   发布时间:2016-05-02 04:50:09.0
紧急求助, 在线等,汇编终止程序指令怎么编? END指令怎么用?
如果我要在汇编程序的中间,退出当前程序应该怎么编指令? 

我是要设计一个汇编指令  包括机器指令也要设计, 功能是当出现这个汇编符号时  就退出当前汇编程序  

还有  我在网上看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指令 然后通过一个汇编语言程序来解析,看cpu指令是否设计正确

也就是说我要先设计一个汇编指令 然后自己设计出这个汇编指令的机器代码, 然后拿这些机器代码来设计我的CPU指令 ,然再用那个汇编指令程序来验证这个CPU指令是否正确

那么我现在编写的汇编程序是有三个分支,

符合条件1取值1 
符合条件2取值2  并且执行语句1
符合条件3取值3

但是汇编是顺序执行的, 我想只要取到了其中某个值(不管是值1,还是值3或者 值2 并且执行语句1)就退出程序

现在比如符合条件1 那么就取到了值1 , 这时我就想退出程序了 这时这个退出命令怎么写是我的问题所在
因为取了值1 如果没有退出指令 , 因为汇编是顺序执行, 那么必然会执行 后面的判断 和程序体的分析 

备注: 符合条件1 的时候有可能也符合条件2 , 但是当不符合条件1时, 也有可能符合条件2 ,所以当符合条件1时 我就想终止不要继续执行后面的条件2,3 

不管是否符合条件2, 都有可能符合条件3  如果没有符合条件2 而符合条件3 那么就取值3, 如果不符合条件1 ,但同时符合条件2,3 那么就执行取值2 并执行语句1, 就退出,而不去执行符合条件3中的取值3  

你的意思是你想做虚拟机么?
如果这样的话那就应该属于没有操作系统的计算机了吧?这个可能真是无法退出的。或者说你想在执行这条退出指令之后关闭你做的虚拟机环境?如果是的话那就相当于关机了。
------解决方案--------------------
你是想调试别的程序???
可以使用CPU提供的 TF 标志寄存器
CPU每执行一条指令就产生一个中断了
  相关解决方案