Borland x86 内联汇编器;获取标签的地址?

2023-11-28

我使用 Borland Turbo C++ 和一些内联汇编代码,因此大概是 Turbo Assembler (TASM) 风格的汇编代码。我希望做到以下几点:

void foo::bar( void )
{
    __asm
    {
      mov eax, SomeLabel
      // ...
    }
    // ...
SomeLabel:
    // ...
}

所以SomeLabel的地址被放入EAX中。这不起作用,编译器抱怨:未定义的符号“SomeLabel”。

在 Microsoft Assembler (MASM) 中,美元符号 ($) 用作当前位置计数器,这对我的目的很有用。但这似乎在 Borlands Assember 中不起作用(表达式语法错误)。

更新:更具体一点,我需要编译器在编译/链接期间而不是在运行时生成它移动到 eax 中的地址作为常量,因此它将像“mov eax,0x00401234”一样编译。

有人能建议如何让它发挥作用吗?

更新:为了回答 Pax 的问题(请参阅评论),如果 Windows 加载程序在运行时更改基址,则 DLL/EXE PE 映像仍将由 Windows 加载程序重新定位,并且标签地址将在运行时通过以下方式进行修补加载器使用重新基地址,因此使用标签地址的编译/链接时间值不是问题。

提前谢谢了。


上次我尝试使一些汇编代码与 Borland 兼容时,我遇到了不能前向引用标签的限制。不确定这是否是您在这里遇到的情况。

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

Borland x86 内联汇编器;获取标签的地址? 的相关文章

  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new

随机推荐

  • REST 复杂/复合/嵌套资源 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我正在尝试解决基于 REST 的 API 中的概念的最佳方法 不包含其他资源的扁平资源没有问题 我遇到麻烦的是复杂的资源 例如 我有一本漫画书的资源 ComicBook上面有各种
  • 不平衡数据和加权交叉熵

    我正在尝试使用不平衡数据训练网络 我有 A 198 个样本 B 436 个样本 C 710 个样本 D 272 个样本 我已经阅读了有关 weighted cross entropy with logits 的内容 但我找到的所有示例都是用
  • TableRow 跨度不适用于动态添加的行

    我在将行动态添加到滚动视图内的 TableLayout 时遇到以下问题 这些行遵循以下模式 第 1 行 单元格横跨整个表格第 2 行 两个单元格第 3 行 单元格横跨整个表格 N 行 两个单元格 问题在于 具有一个单元格跨越该行的行实际上根
  • 重写 ApplicationRecord 初始化,是个坏主意吗?

    我正在创建一个foo像这样的对象 foo Foo new foo params foo bar Bar where name baz first or create 但我还需要其他对象来执行此操作 所以 我想到了重写Foo初始化方法执行如下
  • 如何在运行时从一个应用程序切换到另一个应用程序

    是否有可能使用 Appium 在运行时从一个应用程序切换到另一个应用程序 Thanks 终于我找到了准确的答案 希望它对某些人有用 source https www linkedin com grp post 6669152 6027319
  • 如何在执行某个动作后自动触发回车键按下事件?

    I m writing some unit test in my web apps and I want to automatically trigger an Enter key pressed event from my page af
  • 是否有维护插入顺序的 IdentityHashMap 实现?

    我需要一个 HashMap 1 通过对象引用匹配键 并且 2 迭代时保持插入顺序 这些功能分别在 IdentityHashMap 和 LinkedHashMap 中实现 有没有办法获得适合我需要的数据结构 Java 标准或第 3 方库 如
  • Angular 6 中 MatDialog 关闭且数据库中的数据更新后如何刷新组件?

    我正在学习 Angular 6 的 MEAN 堆栈应用程序 在这里 我想在添加新的客户端 汽车 司机 预订或更新新的客户端 汽车 司机 预订后刷新组件 但是添加新值后 显示所有值的组件不会更新或刷新 当时无法看到当前值 但是当我在组件之间路
  • 什么是伞头?

    伞头基本上是什么 它有什么用 我收到如下所示的警告 这是什么意思
  • 什么是 UnsafeMutablePointer?如何修改底层内存?

    我正在尝试使用 SpriteKit 的SKMutableTexture类 但我不知道如何工作UnsafeMutablePointer lt Void gt 我有一个模糊的想法 它是指向内存中一系列字节数据的指针 但我该如何更新呢 这在代码中
  • 获取对象名称和函数名称

    这实际上是2个问题 1 有没有一种通用的方法来获取实例的类名 所以如果我有一个类 class someClass object 我想要一种内置的方式来给我一个字符串 someClass 2 与函数类似 如果我有 def someFuncti
  • C++ 没有指针或引用的虚函数调用

    据我所知 虚函数调用通常需要指针或引用 所以我对下面的代码感到非常惊讶 include
  • 上传意图函数 Dialogflow V2

    我正在尝试开发一个API来上传意图DialogflowV2 我已经尝试过下面的代码片段 但是如果尝试与它进行通信 它不起作用Dialogflow它确实有效 检测意图 并且确实得到了回复Dialogflow以便查询 允许 我是管理员 gt 服
  • 将 FopFactoryBuilder baseURI 设置为 jar 类路径

    我正在将 Apache FOP 1 0 项目升级到 Apache FOP 2 1 在此项目中 所有必需的文件都打包在 jar 文件中 我添加了新的 FopFactoryBuilder 来生成 FopFactory FopFactoryBui
  • CKEditor4:使文本不同于 HTML

    I add StrInsert plugin to my CKEditor It basically adds a button which in my editor is labeled CRM Field 该按钮的作用是将一个值附加到我
  • 首先将文本小写,然后大写。用CSS可以吗?

    首先将文本小写 然后大写 用CSS可以吗 编辑 示例 HELLO WORLD gt Hello World Edit2 我有一个全部大写的国家 地区列表 例如UNITED KINGDOM 我必须让它看起来像United Kingdom Ye
  • 在 ScrollViewer 中使用 WPF DataGrid 虚拟化

    我知道 DataGrid 支持虚拟化 因此它仅为可见行创建网格单元 但是 这似乎仅在 DataGrid 大小受到限制的情况下才有效 在我的场景中 DataGrid 放置在滚动查看器内 如下所示
  • 如何将 \x00 作为参数传递给程序?

    我有一个小程序 我希望将 shellcode 作为参数传递 在shellcode中 需要传递 x00 我尝试了以下命令 program python c print x01 x00 x00 x00 x9c xd8 xff xbf 但 x00
  • ag-网格行未删除

    我正在尝试从我的 ag Grid 中删除一行 如下所示 let alertRow RowNode this gridApi getRowNode rowIndex console log alertRow this gridApi upda
  • Borland x86 内联汇编器;获取标签的地址?

    我使用 Borland Turbo C 和一些内联汇编代码 因此大概是 Turbo Assembler TASM 风格的汇编代码 我希望做到以下几点 void foo bar void asm mov eax SomeLabel SomeL