jjzjj

windows - Tasm 对名称较长的文件给出错误

我试图用tasm编译一个名为addTwoNumbers.asm的文件,但收到错误“命令行:找不到文件:addTwoNumbers.asm”。在我将文件的名称更改为更短的名称(如add.asm)后,它编译没有任何错误,为什么? 最佳答案 因为TASM(即使是最后一个版本)是一个非常古老的DOS程序,不支持WindowsLFN/VFAT/(随心所欲)。它只接受普通的旧DOS8.3文件名。一个选择是将TASMADDTWO~1.ASM(假设您没有其他名称以AddTwo开头的文件)作为文件名。另一个-放弃长文件名。第三种-使用更新的东西,可能

windows - TASM 打印字符串的字符

我试图逐个字符地打印一个字符串,遍历它。这是我得到的:.MODELSMALL.STACK64.DATAstringDB'Something',0lenequ$-string.CODExorbx,bxmovsi,offsetstringChar:moval,byte[si+bx]incbxcmpbx,lenjeFinmovah,2movdl,alint21hjmpCharFin:movax,4c00hint21hEND我不知道我是否获得了正确的字符串内存引用,因为它只显示了奇怪的符号。我尝试将30添加到dl,认为这是因为ascii表示。如何逐个打印一个字符?

如何知道装配代码是否具有特定的语法(EMU8086,NASM,TASM,...)?

我想知道,通过浏览示例源代码,如何认识使用的语法是EM8086,TASM还是NASM?我是一个新的集会。.我想进一步了解EMU8086。看答案NASM/Yasm很容易与MASM/TASM/EMU8086区分开。Yasm使用NASM语法,其对常数和指令的接受程度有一些较小的差异。我不知道如何将MASM与Tasm或EMU8086或FASM区分开,因此我将留下另一个答案来解决。在NASM中,在内存操作数之类的东西上的明确尺寸使用dword或者byte。以tasm/masm风格,您必须写dwordptr或者byteptr.在MASM(我认为TASM/EMU8086)中,裸露的符号名称指的是内容。你必须