我用汇编语言制作一个项目,需要使用.lib文件。我使用TASM汇编程序,但无法成功运行程序。
我搜索了有关使用TASM链接.lib文件的信息,但是所有资料都向我展示了如何使用MASM链接.lib文件。我找到了一个简短的教程,我一直在尝试从http://grail.cba.csuohio.edu/~jackie/cis335/tasmInfo.htm中使用它,但是仍然无法运行我的程序。
答案 0 :(得分:0)
IRVINE16.INC
使用TASM无法识别的指令(例如PROTO)。 IRVINE16.LIB
导出修饰后的名称(例如_WriteString@0
)。
首先,您需要使IRVINE16.INC
具有可读性:
.NOLIST
更改为%NOLIST
PROTO
的代码块(显然是一起的两三行)。STRUCT
更改为STRUC
(CursorPosStruc,TimeRecord,FPU_ENVIRON)DWORD
更改为DD
。请勿更改ALIGN DWORD
WORD
更改为DW
BYTE
更改为DB
现在创建一个扩展名为.inc的8.3文本文件。让我们将其命名为beeftasm.inc
:
EXTRN _Clrscr@0:PROC
EXTRN _Crlf@0:PROC
EXTRN _Delay@0:PROC
EXTRN _DumpMem@0:PROC
EXTRN _DumpRegs@0:PROC
EXTRN _GetCommandtail@0:PROC
EXTRN _GetMaxXY@0:PROC
EXTRN _GetMseconds@0:PROC
EXTRN _Gotoxy@0:PROC
EXTRN _IsDigit@0:PROC
EXTRN _Randomize@0:PROC
EXTRN _RandomRange@0:PROC
EXTRN _Random32@0:PROC
EXTRN _ReadHex@0:PROC
EXTRN _ReadInt@0:PROC
EXTRN _ReadChar@0:PROC
EXTRN _ReadFloat@0:PROC
EXTRN _ReadString@0:PROC
EXTRN _SetTextColor@0:PROC
EXTRN _ShowFPUStack@0:PROC
EXTRN _WaitMsg@0:PROC
EXTRN _WriteBin@0:PROC
EXTRN _WriteBinB@0:PROC
EXTRN _WriteChar@0:PROC
EXTRN _WriteDec@0:PROC
EXTRN _WriteHex@0:PROC
EXTRN _WriteHexB@0:PROC
EXTRN _WriteInt@0:PROC
EXTRN _WriteString@0:PROC
EXTRN _WriteFloat@0:PROC
EXTRN _Str_copy@4:PROC
EXTRN _Str_length@2:PROC
EXTRN _Str_compare@4:PROC
EXTRN _Str_trim@4:PROC
EXTRN _Str_ucase@2:PROC
Str_copy = cs:_Str_copy@4
Str_length = cs:_Str_length@2
Str_compare = cs:_Str_compare@4
Str_trim = cs:_Str_trim@4
Str_ucase = cs:_Str_ucase@2
Clrscr = cs:_Clrscr@0
Crlf = cs:_Crlf@0
Delay = cs:_Delay@0
DumpMem = cs:_DumpMem@0
DumpRegs = cs:_DumpRegs@0
GetCommandtail = cs:_GetCommandtail@0
GetMaxXY = cs:_GetMaxXY@0
GetMseconds = cs:_GetMseconds@0
Gotoxy = cs:_Gotoxy@0
IsDigit = cs:_IsDigit@0
Randomize = cs:_Randomize@0
RandomRange = cs:_RandomRange@0
Random32 = cs:_Random32@0
ReadHex = cs:_ReadHex@0
ReadInt = cs:_ReadInt@0
ReadChar = cs:_ReadChar@0
ReadFloat = cs:_ReadFloat@0
ReadString = cs:_ReadString@0
SetTextColor = cs:_SetTextColor@0
ShowFPUStack = cs:_ShowFPUStack@0
WaitMsg = cs:_WaitMsg@0
WriteBin = cs:_WriteBin@0
WriteBinB = cs:_WriteBinB@0
WriteChar = cs:_WriteChar@0
WriteDec = cs:_WriteDec@0
WriteHex = cs:_WriteHex@0
WriteHexB = cs:_WriteHexB@0
WriteInt = cs:_WriteInt@0
WriteString = cs:_WriteString@0
WriteFloat = cs:_WriteFloat@0
遵循一个小的测试程序,该程序调用{{1}}的所有导出函数:
IRVINE16.LIB