如何制作一个自动构建、链接和执行 .asm 文件的批处理文件?

2023-12-13

我在大学里使用 DosBox 模拟器。我们使用 MASM 构建 .asm 文件。我非常厌倦每次都必须使用 masm 构建 .asm 文件,然后按 Enter 键 4 次,然后输入 link .obj,然后输入 4 次。然后运行实际的.exe。我想自动执行此操作,经过一段时间的搜索,我知道我需要制作一个批处理文件。目前看起来像这样

@echo off

set arg1=%1
masm %arg1%.asm
%SendKeys% ("echo off{ENTER}")
%SendKeys% "echo off{ENTER}"
%SendKeys% "echo off{ENTER}"
%SendKeys% "echo off{ENTER}"
link %arg1%.obj
%SendKeys% "echo off{ENTER}"
%SendKeys% "echo off{ENTER}"
%SendKeys% "echo off{ENTER}"
%SendKeys% "echo off{ENTER}"
%arg1%.exe
%SendKeys% "echo off{ENTER}"

SendKeys 部分不起作用。当我在网上搜索时,我对所发现的内容感到不知所措。我只是想要一种简单的方法(如果有的话)来模拟每次都必须手动按下的四个回车键。


您可以放置​​一个分号;结束时masm.exe and link.exe命令行使程序使用提示的默认文件名。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何制作一个自动构建、链接和执行 .asm 文件的批处理文件? 的相关文章

  • 遍历内存编辑每个字节

    我正在编写汇编代码 提示用户输入一串小写字符 然后输出包含所有大写字符的相同字符串 我的想法是迭代从特定地址开始的字节 并从每个字节中减去 20H 将小写变为大写 直到到达具有特定值的字节 我对 Assembly 相当缺乏经验 所以我不确定
  • C++ 中的 CPUID 实现

    我想知道这里是否有人有一些可以从任何托管 net 语言引用的 C CPUID 实现的好示例 另外 如果情况并非如此 我是否应该注意 X86 和 X64 之间的某些实现差异 我想使用 CPUID 来获取运行我的软件的机器上的信息 崩溃报告等
  • 取消的分支与常规分支有何不同?

    特别是对于 SPARC Assembly 取消的分支与常规分支有何不同 我一直认为 当我需要填充分支指令的 nop 延迟槽时 需要取消分支指令 但是 我认为我在这一部分上是不正确的 因为您可以在不取消分支的情况下填充 nop 如果不采用分支
  • NASM 轮班操作员

    您将如何在寄存器上进行 NASM 中的位移位 我读了手册 它似乎只提到了这些操作员 gt gt lt lt 当我尝试使用它们时 NASM 抱怨移位运算符处理标量值 您能解释什么是标量值并举例说明如何使用 gt gt and lt lt 另外
  • 为什么 Visual Studio 使用 xchg ax,ax

    我正在查看程序的反汇编 因为它崩溃了 并注意到很多 xchg ax ax 我用谷歌搜索了一下 发现它本质上是一个 nop 但是为什么 Visual Studio 会执行 xchg 而不是 noop 该应用程序是一个C NET3 5 64位应
  • 为什么 RISC-V S-B 和 U-J 指令类型以这种方式编码?

    我正在读一本书 计算机组织与设计RISC V版 我遇到了 S B 和 U J 指令类型的编码 我上面提到的那些类型有奇怪的编码立即字段 S B 类型将直接字段分为两部分 这是有道理的 因为所有指令编码都必须相似 但我无法理解为什么立即字段以
  • 在 x86-64 CPU 上通过交叉修改代码重现意外行为

    Question 对于可能在 x86 或 x86 x64 系统上触发意外行为的交叉修改代码有哪些想法 在这些系统中 交叉修改代码中的所有操作均已正确完成 但在执行处理器之前执行序列化指令除外修改代码 如下所述 我有一个 Core 2 Duo
  • 两个基本的 ANTLR 问题

    我正在尝试使用 ANTLR 来获取简单的语法并生成汇编输出 我在 ANTLR 中选择的语言是 Python 许多教程看起来非常复杂或详细阐述与我无关的事情 我真的只需要一些非常简单的功能 所以我有两个问题 将值从一个规则 返回 到另一规则
  • 有没有办法使用 i387 fsqrt 指令获得正确的舍入?

    有没有办法使用 i387 fsqrt 指令获得正确的舍入 除了改变精确模式在 x87 控制字中 我知道这是可能的 但这不是一个合理的解决方案 因为它存在令人讨厌的重入型问题 如果 sqrt 操作中断 精度模式将出错 我正在处理的问题如下 x
  • 为什么我的空循环在 Intel Skylake CPU 上作为函数调用时运行速度是原来的两倍?

    我正在运行一些测试来比较 C 和 Java 并遇到了一些有趣的事情 在 main 调用的函数中 而不是在 main 本身中 运行具有优化级别 1 O1 的完全相同的基准代码 导致性能大约翻倍 我正在打印 test t 的大小 以毫无疑问地验
  • 如何在 Linux x86_64 上模拟 iret

    我正在编写一个基于 Intel VT 的调试器 由于当 NMI Exiting 1 时 iret 指令在 vmx guest 中的性能发生了变化 所以我应该自己处理vmx主机中的NMI 否则 guest会出现nmi可重入错误 我查了英特尔手
  • 如何使用movntdqa避免缓存污染?

    我正在尝试编写一个 memcpy 函数 该函数不会将源内存加载到 CPU 缓存中 目的是避免缓存污染 下面的 memcpy 函数可以工作 但会像标准 memcpy 一样污染缓存 我正在使用带有 Visual C 2008 Express 的
  • 为什么 clang 使用 -O0 生成低效的 asm(对于这个简单的浮点和)?

    我正在 llvm clang Apple LLVM 版本 8 0 0 clang 800 0 42 1 上反汇编此代码 int main float a 0 151234 float b 0 2 float c a b printf f c
  • 如何仅使用单个数组在 JavaScript 中模拟调用堆栈

    我正在看维基百科页面 https en wikipedia org wiki Call stack在调用堆栈上 并尝试理解这个图像 据我所知 哈哈 const memory memory 0 3 top of stack pointer m
  • 这种没有推送寄存器的交换有多安全?

    我对汇编非常陌生 下面的代码应该通过两个不同的函数交换两个整数 首先使用swap c然后使用swap asm 但我怀疑 我是否需要push 我的意思是保存 汇编代码之前寄存器的每个值和pop稍后 就在返回之前 main 换句话说 如果我返回
  • 为什么我的代码显示垃圾?

    当我也想打印列表中的每个数字时 我的代码显示垃圾 有什么问题吗 输出应如下所示 给定的数组是 2G 4 PT为什么这是垃圾总数是 7 Code ASSUME CS CODE DS DATA SS STK ORG 0000H DATA SEG
  • 如何使用 Bochs 运行汇编代码?

    我想使用 Bochs 作为 8086 模拟器 是否有捷径可寻 我想要的是类似 emu8086 的东西 http www emu8086 com http www emu8086 com 如果程序的初始部分适合 512 字节 并且您不介意将自
  • LC3 LEA指令和存储的值

    我对这个问题感到困惑 指令后寄存器0中存储的值是多少 LEA R0 A 被处决了吗 为什么答案是x370C 我认为应该将A的地址加载到R0中 如果是这样我们怎么知道地址 有人可以帮忙吗 非常感谢 ORIG X3700 LEA R0 A LD
  • 高效memcspn

    有谁知道 memcspn 函数的有效实现吗 它的行为应该类似于 strcspn 但在内存缓冲区中查找跨度 而不是在以 null 结尾的字符串中查找跨度 目标编译器是 VisualC 谢谢 卢卡 一种近乎最佳的实现 size t memcsp
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12

随机推荐

  • 从 Android 中以编程方式创建的父视图中查找子视图

    对于 Android 应用程序 我使用 GridView 并扩展 BaseAdapter 来组织其内容 对于我在扩展 BaseAdapter 类中重写的函数 getView 我创建了一个 LinearLayout 并在其中附加了一个 Ima
  • Android 模拟器和嵌套虚拟化

    我有个问题 我使用 hyper v 虚拟机来隔离开发过程 我在虚拟机上使用Windows 10 但我无法在我的虚拟机上安装虚拟机管理程序 如何在没有 hyper v 的情况下调试 xamarin forms 应用程序 Thanks 快速回答
  • 取消转义 mvc 应用程序返回的转义不可编码字符串的简单方法

    我已经检查了其他类似的问题 他们要么建议使用 WebUtility HtmlDecode 要么逐个字符替换编码部分 或者假设一些已知的正则表达式模式等 他们不回答这个特定的查询 我有一个 C 控制台应用程序 它将一些数据发送到 MVC 应用
  • 如何从 lldb 调试器类型切换到 gdb 调试器类型?

    我已经找了很长一段时间试图找出如何从 lldb 切换到 gdb 但找不到任何关于如何在 Xcode 6 1 中在两者之间切换的信息 我正在尝试调试我的应用程序 如果我使用 gdb 而不是 lldb 我也许能够弄清楚它 但我不知道它是否会对我
  • Material UI - 将图标作为道具传递

    我正在尝试通过 prop 将material ui 图标插入到我的组件中 请让我知道我做错了什么 但是 我不确定如何在 JSX 中传递图标 这是我的无效尝试 这个片段是我尝试将图标作为道具传递给类别组件
  • 元素在拖动后变得随机不可调整大小

    选择并拖动多个元素后 其中一些元素不再可调整大小 调整大小图标从右上角消失 可调整大小的图标保留在旧位置 并且不会移动已移动的元素 要重现 请运行下面的代码 使用套索选择所有元素并拖动选定的元素 之后 调整大小图标将从随机元素中消失 并且这
  • java Playframework GlobalSettings 弃用 onStart

    我遇到了 Playframwork 已弃用的烦人问题GlobalSettings问题 我想把我的 conde 移到里面onStart按照建议的方式 但实际上我无法完成此操作 文档没有任何意义 而且我不知道如何解决这个问题 我花了几天又几天的
  • 如何获取未读 Gmail 邮件的数量(在 Android 上)

    请注意 有一种新方法可以做到这一点 我一直在尝试获取未读 Gmail 邮件的数量 但没有成功 我读了Gmail java and gmail4j从这个问题中取出的两个链接 Android 如何找出用户有多少未读电子邮件 但在阅读了所有这些内
  • 用于精细监控编辑器更改的 Eclipse 插件

    因此 我希望为 Eclipse 4 2 开发一个插件 用于监视用户对其文件所做的编辑 这是我的第一个 Eclipse 插件 为了做好准备 我浏览了 Eclipse 插件开发备忘单 HelloWorld 并花了很多时间在 help eclip
  • FileSystemWatcher 触发后 - 线程池还是专用线程?

    我即将实现原型 FileSystemWatcher 解决方案 我有一个目录来监视文件创建 以及吸收创建的文件并将其插入数据库的任务 粗略地说 这将涉及读取和处理 6 或 7 80 个字符的文本文件 这些文本文件以 150 毫秒的速率出现 每
  • ORM 和 ORDBMS 之间有什么区别?

    他们看起来和我很相似 我不明白其中的区别也许是 ORDBMS 的编程示例 ORM 只是编程语言中的对象与关系数据库中的关系之间的转换层 这是notRDBMS 这里没有什么可以管理数据库 只是一个转换 映射层 阅读tag info of or
  • python sqlalchemy 在元组数据结构中插入多行

    我一直在研究如何将包含 7 个元素 列 的约 500 个元组 行 的列表插入到数据库中 我阅读了 stackoverflow 以及其他论坛上的各种帖子 我发现了以下内容 它建议使用 executemany 方法 但我不太清楚如何使用 我是否
  • python setup.py build ctypes.CDLL:无法打开共享对象文件:没有这样的文件或目录

    我已经实现了一个名为 api c 的 ctypes 包装器 并且具有以下结构 lib api c foo py setup py 手动编译api c并调用ctypes CDLL path lib api so inside foo py工作
  • 活动模型禁止属性错误

    有人能够帮助我理解这个错误吗 我正在尝试按照构建网络应用程序教程在 Rails 中创建联系表单 我按照以下步骤生成了消息支架 然后我修改了我的路线 接下来它说将其放入消息控制器显示操作中 if message save flash noti
  • 如何使用android实现验证码

    任何人都可以提供一些在 android 中实现验证码的建议吗 有点无耻的自我推销 但我最近也有同样的问题 在梳理了 StackOverflow com 后 我意识到所有的解决方案都是基于 Remote API 的 这需要我的简单应用程序需要
  • 在 Rails 中将编辑值 contenteditable 字段从视图传递到控制器

    我正在使用 Rails 3 1 构建一个 Web 表单 其中包含一个可以编辑单元格的表格以及其他字段 我需要将编辑的单元格的文本保存在数据库中 我正在考虑使用 HTML5 属性 contenteditable 我可以使用单元格的innerH
  • 检测ListBox的滚动事件?

    当列表框开始滚动时是否会触发事件 我目前有以下代码 可以从列表框中无缝拖放
  • 所有转义字符是什么?

    我知道Java中的一些转义字符 例如 n Newline r Carriage return t Tab Backslash 某处有完整的列表吗 您可以找到完整列表here t此时在文本中插入制表符 b此时在文本中插入退格键 n此时在文本中
  • 使用 C 预处理器将 int 连接到字符串

    我正在尝试弄清楚如何连接 define d int 到 define d 字符串使用C预处理器 我的编译器是 CentOS 5 上的 GCC 4 1 该解决方案也适用于 MinGW 我想将版本号附加到字符串上 但让它工作的唯一方法是复制定义
  • 如何制作一个自动构建、链接和执行 .asm 文件的批处理文件?

    我在大学里使用 DosBox 模拟器 我们使用 MASM 构建 asm 文件 我非常厌倦每次都必须使用 masm 构建 asm 文件 然后按 Enter 键 4 次 然后输入 link obj 然后输入 4 次 然后运行实际的 exe 我想