用 bat或 vbs 脚本编写一个编译链接并运行 asm 文件的程序
时间: 2023-11-22 08:54:00 浏览: 207
bat脚本编写
4星 · 用户满意度95%
以下是一个使用 bat 脚本编译、链接和运行 asm 文件的示例程序:
```
@echo off
set filename=test
set objname=%filename%.obj
set exe=%filename%.exe
echo Assembling %filename%.asm...
ml /c /coff %filename%.asm
echo Linking %objname%...
link /SUBSYSTEM:CONSOLE %objname%
echo Running %exe%...
%exe%
echo Cleaning up...
del %objname%
del %exe%
```
解释一下:
1. 第1行的 `@echo off` 意味着关闭命令行窗口的回显,使输出更加整洁。
2. 第2行和第3行设置了文件名和对象文件名。
3. 第5行使用 `ml` 命令(即 Microsoft Assembler)来编译汇编文件为对象文件。
4. 第7行使用 `link` 命令来将对象文件链接为可执行文件。`/SUBSYSTEM:CONSOLE` 表示生成一个控制台应用程序。
5. 第9行运行可执行文件。
6. 第11行清理对象文件和可执行文件。
如果你想使用 vbs 脚本来实现同样的功能,可以使用以下代码:
```
Set WshShell = CreateObject("WScript.Shell")
filename = "test"
objname = filename & ".obj"
exe = filename & ".exe"
WshShell.Run "cmd /c ml /c /coff " & filename & ".asm", 0, True
WshShell.Run "cmd /c link /SUBSYSTEM:CONSOLE " & objname, 0, True
WshShell.Run exe, 1, True
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.DeleteFile objname
FSO.DeleteFile exe
```
这个脚本使用 `WScript.Shell` 对象来运行命令行命令和可执行文件。在运行命令时,第二个参数为 0 意味着隐藏命令行窗口,第三个参数为 True 意味着等待命令执行结束后再继续执行脚本。最后,使用 `Scripting.FileSystemObject` 删除对象文件和可执行文件。
阅读全文