从汇编语言(.asm,x86)执行shell脚本



我想从我的.asm文件中执行一个shell脚本(就像下面的代码中提到的那样),但是在汇编中找不到下面几行代码的替代方法。我正在使用masm611来汇编和编译这些文件。

System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = "myscript.sh";
proc.Start();

首先,不要说明是哪种架构;所以这是无法回答的。一个简单的解决方案应该是用C编写代码,然后编译成汇编代码——这是所有流行的C编译器都有的一个开关——然后移植到你自己的代码,链接到适当的库。

免责声明:我不从事汇编工作。

由于您的示例是在。net中,并且您提到了MASM,我假设您在Windows上工作。在Windows上,您可以使用Win32 API来启动进程,也可以使用C RTL。无论哪种方式,您都必须链接到静态(.lib)库并调用函数。在Win32 API中,ShellExecute()是最容易使用的(也有CreateProcess(),但调用顺序很麻烦)。在劳教区,有_execl()及其亲属。详细了解如何从汇编中使用静态库。

。. NET代码,如您提到的Process.Start()代码,根本不能转换为x86汇编。

我可以问一下为什么这必须从汇编完成?"汇编"one_answers"shell脚本"很少结合在一起。注意:在Windows上,shell脚本具有。bat或。cmd扩展名。.sh,另一方面,是*nix或MacOS的特征。

最新更新