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

My *_*afe 2 x86 assembly irvine32

我想知道Irvine32汇编语言库是。

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

Ped*_*d7g 5

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

Irvine32 库是有用函数的集合,您可以查看在线文档以获取它们的列表和更多详细信息。

我想要辩护以及为什么我们使用这个图书馆?

我不知道为什么使用它。

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

此外,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 系统调用就是这样做的。