什么是Irvine32库,为什么要使用它?

时间:2019-01-27 09:17:06

标签: assembly x86 irvine32

我想知道Irvine32汇编语言库是

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

1 个答案:

答案 0 :(得分:4)

  

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

Irvine32库是有用功能的集合,您可以检查online documentation以获得它们的列表和更多详细信息。

  

我要辩护,还有我们为什么要使用这个库?

我不知道为什么使用它。

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

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

它还提供了读取和打印整数(例如WriteDec)的库函数,而无需系统调用。因此,这就像一个简化的C库printf。并且ReadDec在EAX中返回一个值,在FLAGS(CF)中返回成功/失败,而C库scanf则要求您传递一个将结果存储在其中的指针 1

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


脚注1:因为scanf可以在一个调用中进行多次转换,并且因为C不能同时将整数和标志作为两个单独的返回值返回。在CF中成功/失败的寄存器中返回值是通常只有asm调用约定可以使用的东西。但是,它并不是Irvine32独有的。例如,Mac OS系统调用可以做到这一点。