我需要一些帮助来将 Irvine32 inc/lib 支持添加到我的 asm 程序中。我将 inc/lib 添加到他们的文件夹中并添加 包括 Irvine32.inc includeLib Irvine32.lib 但与 Irvine32.lib 链接时出现错误。
有没有地方可以下载一个可以运行该库的一体化软件包。
谢谢
如果您使用 masm32 程序,请将 Irvine32.inc 放入 masm32\include 文件夹中,将 Irvine32.lib 放入 masm32\lib 文件夹中。在源文件 asm 中写入
includelib \masm32\lib\Irvine32.lib
include \masm32\include\Irvine32.inc
读这本书的时候我成功了!
您提到的库与 Kip Irvine 的书“x86 处理器的汇编语言”一起使用。它目前是第六版,我发现它是组装的一个很好的介绍。
在前面的章节中(我相信是第 3 章),他回顾了包含过程。它说明了放置文件的位置等,可能对您有一些帮助(我会在这里记录它,但有点复杂)。
干杯,
斯科特
本书的示例附带了一个演示项目,您可以使用该项目作为您的项目的基础。您还应该检查链接器设置,并确保 Irvine32 库的路径包含在附加库依赖项属性中。我曾经遇到过这个问题,只是使用 Kip 书中附带的默认项目创建了一个模板项目。
访问我的博客设置 vs10 以使用 masm32 进行编程,了解有关如何将库添加到 masm32 项目的详细信息。
标题 MASM 模板(Template.asm)
包括 Irvine32.inc
.数据 销售 DWORD 7050、8020、3502、6750、4435、5000、7800、5100、6350、8300、2750、7340 计算 EQU 长度销售量 总计双字 72397 平均双字? 最高双字? msgTotal BYTE "总销售额为:", 0 msgAvg BYTE "平均销售额为:", 0 msgHighest BYTE "最高销售额是:", 0
.代码 主要过程
; TOTAL sales
mov ecx, COUNT
mov edi, 0
L1:
mov eax, sales [edi] ; EAX = Sales[0]
add TOTAL, eax ; Total = Total + EAX
add edi, TYPE sales ; EDI = EDI + 4
loop L1
; AVERAGE sales
mov eax, TOTAL
mov ecx, COUNT
div ecx ; EAX = EAX / COUNT
mov AVG, eax
mov edx, OFFSET msgAVG
call writestring
mov eax, AVG
call writestring
call writedec
call Crlf
; HIGHEST sales
mov ecx, COUNT
mov edi, 0
L2:mov eax,销售[edi]; EAX = 销售额[0] cmp eax,最高 L3 ; EAX > 销售 跳转L4; EAX < SALES
L3:mov销售,eax;销售额=EAX jmp L4
L4:添加edi,TYPE 销售;电子数据交换 = 电子数据交换 + 4 循环L2
mov edx, OFFSET msgHighest
call writestring
mov eax, HIGHEST
call writedec
call Crlf
exit
主要ENDP 主线结束