[英]What is the Irvine32 library and why do we use it?
我想知道Irvine32匯編語言庫是。
我想要一個定義,以及我們為什么要使用此庫。
我想知道什么是匯編語言中的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系統調用就是這樣做的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.