色色一区二区三区,一本大道道久久九九AV综合,国产香蕉97碰碰视频va碰碰看,综合亚洲国产2020

    <legend id="mljv4"><u id="mljv4"><blockquote id="mljv4"></blockquote></u></legend>

    <sub id="mljv4"><ol id="mljv4"><abbr id="mljv4"></abbr></ol></sub>
      <mark id="mljv4"></mark>

      為什么Amiga庫有負(fù)面的入口點(diǎn)?

      2021-02-24 17:12

      如這些答案所述,AmigaOS庫中包含的函數(shù)的跳轉(zhuǎn)表偏移量始終為負(fù)值。這樣做的原因?qū)ξ襾碚f并不直觀,但我懷疑Carl Sassenrath有很好的理由這樣做(而不是僅僅使用

      解答動(dòng)態(tài)

      • TL;DR: 通過將這些偏移量設(shè)置為基址的負(fù)值,可以獲得什么功能或方便?
        它提供了對(duì)兩個(gè)列表的簡(jiǎn)單訪問,這兩個(gè)列表可以在將來的版本中用一個(gè)指針擴(kuò)展。
        長(zhǎng)閱讀: A單曲指針只能指向一個(gè)內(nèi)存位置(是的,聽起來很明顯,但請(qǐng)留下來)。所以乍一看,指針只能指向一個(gè)數(shù)據(jù)結(jié)構(gòu)。對(duì)于Amiga庫,它是描述庫及其用法的庫結(jié)構(gòu)。
        但是要訪問函數(shù),需要有第二個(gè)數(shù)據(jù)結(jié)構(gòu)來保存入口點(diǎn)(直接或作為地址(*1))。添加入口點(diǎn)/跳轉(zhuǎn)表等內(nèi)容的兩種傳統(tǒng)方法是:在庫結(jié)構(gòu)之后定位所有入口點(diǎn)并使用從那里開始的偏移量打開。添加一個(gè)指向庫結(jié)構(gòu)的入口點(diǎn)表的指針,并使所有相對(duì)于該地址的偏移量。 1解決方案會(huì)使結(jié)構(gòu)的任何擴(kuò)展變得相當(dāng)困難,因?yàn)槊看尾僮飨到y(tǒng)更改/擴(kuò)展頭時(shí),它都會(huì)更改函數(shù)的偏移量。對(duì)于向上兼容的庫系統(tǒng)不是一個(gè)好主意。
        解決方案2是大多數(shù)操作系統(tǒng)(包括Windows)使用的解決方案之一。它避免了版本依賴的陷阱。另一方面,它附帶了一條額外的指令(其實(shí)不是什么大問題)和兩個(gè)指針的用法。一個(gè)用于標(biāo)識(shí)庫,另一個(gè)用于處理入口點(diǎn)表。這看起來并不多,正如前面提到的,許多操作系統(tǒng)確實(shí)是這樣做的,但Amiga操作系統(tǒng)卻不是這樣。他們確實(shí)采用了第三種方法:在兩個(gè)方向上使用地址空間的一維特性。想想看,記憶是(不是真的)無限的記憶細(xì)胞序列,不僅可以向上,而且可以向兩個(gè)方向移動(dòng)。用一個(gè)指針實(shí)現(xiàn)兩個(gè)結(jié)構(gòu)的尋址-只要它們背對(duì)背。
        要查看效果,請(qǐng)看一看RichF在上述問題的答案中已經(jīng)給出的漂亮圖片問題:
        使用在兩個(gè)方向上的一維性質(zhì)提供了幾個(gè)優(yōu)點(diǎn)。
        這兩種結(jié)構(gòu)都可以以新的形式生長(zhǎng)無需侵入的版本可以使用新的庫版本添加新的入口點(diǎn)庫結(jié)構(gòu)可以針對(duì)較新的OS版本進(jìn)行擴(kuò)展無需為跳轉(zhuǎn)表計(jì)算第二個(gè)指針無需處理兩個(gè)指針(庫和入口表)關(guān)于該庫的所有內(nèi)容只有一個(gè)指針1最后一個(gè)點(diǎn)不能強(qiáng)調(diào)夠了。一個(gè)指針就是該庫的所有用戶需要。不程序員將有機(jī)會(huì)使用錯(cuò)誤的一個(gè)它為加載的庫 創(chuàng)建一個(gè)唯一的標(biāo)識(shí)符當(dāng)然這只適用于允許負(fù)偏移量的ISA-方便的是68k正是這樣做的:)說到68k:
        中沒有目標(biāo)地址的間接跳轉(zhuǎn)memoryRegister間接加(負(fù))偏移量JSR的18時(shí)鐘速度與絕對(duì)JSR一樣快行:當(dāng)優(yōu)點(diǎn)可能看起來很小,但在系統(tǒng)設(shè)計(jì)的簡(jiǎn)單性方面,它們幫助很大,可用性和向上性兼容性。和所有這些都沒有任何缺點(diǎn)(在68k. *1上),這里要記住Amiga是一臺(tái)相當(dāng)慢的機(jī)器。以今天的標(biāo)準(zhǔn)來看,慢得令人難以置信。每個(gè)周期都很重要。同時(shí),Amiga OS試圖盡可能的干凈和清晰。

        • End

        免責(zé)聲明:

        本頁內(nèi)容僅代表作者本人意見,若因此產(chǎn)生任何糾紛由作者本人負(fù)責(zé),概與琴島網(wǎng)公司無關(guān)。本頁內(nèi)容僅供參考,請(qǐng)您根據(jù)自身實(shí)際情況謹(jǐn)慎操作。尤其涉及您或第三方利益等事項(xiàng),請(qǐng)咨詢專業(yè)人士處理。