- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经 inherited一个相当古老的大而复杂的代码库,用于最初针对 MSDOS 的程序。事实证明,这个程序的某些部分是用一种叫做“Phar Lap 汇编程序”的 x86 汇编程序的晦涩方言编写的,以生产汇编程序的公司和产品命名。我进行了相当深入的谷歌搜索,但我找不到原始的汇编程序,也找不到有关它的任何信息或文档。 (虽然我在 Experts Exchange 上发现了一些相当令人沮丧的页面,人们提出了类似的问题)。
所以基本上,在我找到 PharLap 汇编器 (386asm.exe) 的副本,或者找到足够的有关方言的信息以将其翻译成更“标准”的语言之前,我无法编译它MASM 喜欢方言。要么那样,要么尝试通过阅读来弄清楚它。
或者,如果这一切都不可能,那么我只需要一些帮助来解决这个问题,我至少应该能够编译程序的一部分。
.c 文件中有一个结构声明,如下所示:
//static struct bhash *bhash;
typedef struct bhash_control {
void *cachedata;
Rgb3 *ctab;
int rederr;
int grnerr;
int bluerr;
ULONG drgb; // temp var used by dithering, blackbox to us here
#ifdef SHOW_STATS
int calls, hits1, hits2, fhits, misses;
#endif
} BhashCtl;
BhashCtl bhashctl; // global so assembler code can see it.
然后有一些看起来像这样的汇编程序,它大概是在尝试进行相同的类型声明,以便某些汇编程序代码可以使用相同的类型:
BhashCtl struct
cachedata dd ? ; pointer to alloc'd cache data area
ctab dd ? ; contains vb.pencel->cmap->ctab
rederr dd ? ; error diffusion dithering variables...
grnerr dd ?
bluerr dd ?
drgb dd ? ; rgb value with dithering rolled in
;calls dd ? ; cache stats...
;hits1 dd ? ; to use these, you also need to
;hits2 dd ? ; uncomment a few lines below.
;fhits dd ? ; search for 'bhashctl.' to find them.
;misses dd ?
BhashCtl ends
extern bhashctl:BhashCtl ; the one-and-only lives in bhash.c
最后一行编译时出现错误,如下所示(watcom 汇编程序):
Error! E518: External definition different from previous one
所以基本上,我认为这是在说这个结构的汇编版本与这个结构的 C 版本不匹配。我已经在汇编程序中尝试了 WORD 和 DWORD 的多种不同组合来代替 dd,但我无法克服这个小问题。也许如果我能找到一种方法使这两个声明完美匹配,我对有关 pharlap 的信息的需求就会减少。
此外,如果有人能为这个庞大的问题想出更好的标题,我愿意接受想法。
编辑:好的,事实证明我浏览了一些重要信息。这是一个最初为 Phar Lap 汇编器(我没有)编写的文件,我正在尝试使用 watcom assember (wasm) 进行汇编。事实证明,该特定错误的问题在于 Phar Lap 似乎区分大小写,而 watcom 则不区分大小写。所以它将 bhashctl 视为与 BhashCtl 相同。在我姐夫的帮助下解决了这个问题。我从没想过不区分大小写是造成这种情况的原因。
最佳答案
一些 Phar Lap 手册的 ZIP(包括 386|ASM 手册)位于:
关于c - Phar Lap 汇编程序 : I Need information/documentation and binaries if possible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/764623/
我已经为这个问题烦恼了一段时间,我有一个计时器,它有 4 个按钮开始、停止、重置和圈数,当我调用 Stopwatch.start(); 时,Stopwatch.stop(); 或 Stopwatch.
我正在尝试检查我的程序是否正确分配内存 - 所以我有一系列不同类型的指针, pData1 = 0x844c458(malloc 的结果(5 * (double*) 的大小) pData2 = 0x84
安卓 我在表格的一行中有两个标签。我试图将这两个标签设置为垂直,但 firstLabel 与第二个标签重叠。因为 firstLabel 的高度是“auto”并且它包含动态文本,例如10 行,20 行。
我有一个在 Linx 中启动时运行的启动脚本: /etc/init/selfconfig #! /bin/sh # /etc/init.d/selfconfig USER=root HOME=/ro
我不明白我怎么能这样写查询 select * from product where name like 'Lap%' 在 Entity Framework 中 我的 dbcontext 是 dbFo
我在尝试安装这 2 个库(Cython_bbox 和 lap)时遇到了这些奇怪的错误,它们是我在运行 pip install -r requirements.txt 时需要的其他库的一部分。 , 其中
我已经 inherited一个相当古老的大而复杂的代码库,用于最初针对 MSDOS 的程序。事实证明,这个程序的某些部分是用一种叫做“Phar Lap 汇编程序”的 x86 汇编程序的晦涩方言编写的,
问题是:我的客户想要设置一个负载平衡的 wordpress 服务器来处理不断增加的访问者。 2 个 Web 服务器将具有以下设置: 负载平衡器 x 1 服务器 #1:Linux、Apache、PHP
The APIM is running 24/7 on my server, sometimes I have experienced below response. But in the ve
我是一名优秀的程序员,十分优秀!