Assembly 什么是Irvine32库?我们为什么使用它?

Assembly 什么是Irvine32库?我们为什么使用它?,assembly,x86,irvine32,Assembly,X86,Irvine32,我想知道Irvine32汇编语言库是什么 我想要一个定义,以及我们为什么使用这个库 我想知道什么是汇编语言中的Irvine32库 Irvine32库是一些有用函数的集合,您可以查看它们的列表和更多详细信息 我想要一个辩护,还有我们为什么要使用这个图书馆 我不知道你为什么用它 通常,人们希望使用它来避免编写自己提供该功能的代码。由于复制某些功能的汇编代码可能需要数十行或数百行代码(对于非常复杂的函数,甚至需要数千行代码),因此每次编写汇编代码可能会很麻烦 此外,Irvine32函数提供的API通常

我想知道Irvine32汇编语言库是什么

我想要一个定义,以及我们为什么使用这个库

我想知道什么是汇编语言中的Irvine32库

Irvine32库是一些有用函数的集合,您可以查看它们的列表和更多详细信息

我想要一个辩护,还有我们为什么要使用这个图书馆

我不知道你为什么用它

通常,人们希望使用它来避免编写自己提供该功能的代码。由于复制某些功能的汇编代码可能需要数十行或数百行代码(对于非常复杂的函数,甚至需要数千行代码),因此每次编写汇编代码可能会很麻烦

此外,Irvine32函数提供的API通常比OS服务提供的类似API更易于使用,因此使用Irvine32而不是直接调用OS服务可能更简单

它还提供了读取和打印整数(如)的库函数,而不需要系统调用。所以它就像一个简化的C库
printf
。并在EAX中返回一个值,在标志(CF)中返回成功/失败,而C库要求您传递一个指针,将结果存储在哪里1

它是为初学者和简单程序设计的,不是为了提高效率。例如,Irvine32使用它自己的调用约定,不使用任何调用阻塞寄存器,因此您可以在循环中打印内容,而不必考虑将循环计数器保留在它不会踩到的寄存器中


脚注1:因为scanf可以在一个调用中进行多次转换,并且因为C不能将整数和标志作为两个单独的返回值返回。在CF中使用success/fail返回寄存器中的值是只有asm调用约定才能正常使用的。不过,这并不是Irvine32所独有的。例如,Mac OS系统调用就是这样做的