• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 79  文章 - 58  trackbacks - 0
            <2014年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿(9)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊

            搜索

            •  

            積分與排名

            • 積分 - 295356
            • 排名 - 87

            最新評論

            閱讀排行榜

            評論排行榜

            (1)存儲模型說明偽指令

            在使用簡化的段定義方式之前,必須使用存儲模式說明偽指令來描述源程序所采用的存儲模式。該偽指令說程序所使用的存儲模式,匯編程序?qū)⒂迷摯鎯δJ缴上鄳?yīng)的ASSUME和GROUP語句,同時也為其它的簡化段創(chuàng)建等價的預(yù)定義。

            程序存儲模式說明偽指令的格式如下:

            .MODEL  存儲模式[,語言類型] [,操作系統(tǒng)類型] [,堆棧類型]

            程序可選的存儲模式有:TINY、SMALL、COMPACT、MEDIUM、LARGE、HUGE和FLAT。

            偽指令.MODEL必須寫在源程序的首部,且只能出現(xiàn)一次,其前內(nèi)容只能是注釋。

            如果用偽指令來指定程序所遵循的語言類型,那么,將不允許子程序的嵌套定義。

            一、存儲模式

            如果要用匯編語言編寫被高級語言調(diào)用的子程序,那么,該匯編程序的存儲模式必須與該高級語言編譯(或解釋)程序所使用的存儲模式相匹配。匯編語言程序所能使用的存儲模式、符號及其相關(guān)信息如表6.2所列。

            在程序中,還可偽指令OPTION SEGMENT和SEGMENT來指定段的規(guī)模。

            有關(guān)存儲模式的具體規(guī)定如下:

            、TINY

            在匯編程序MASM 6.11和TASM 4.0,該存儲類型是為編寫COM文件類型而設(shè)置的。程序員還可用匯編命令行選項/AT和連接命令選項/TINY來達(dá)到此目的。

            、SMALL

            所有的數(shù)據(jù)變量必須在一個數(shù)據(jù)段之內(nèi),所有的代碼也必須在一個代碼段之內(nèi)。在這種模型下,數(shù)據(jù)段寄存器的內(nèi)容保持不變,所有轉(zhuǎn)移也都是段內(nèi)轉(zhuǎn)移。

            該存儲類型是獨(dú)立匯編語言源程序常用的存儲模型。

            、MEDIUM

            所有的數(shù)據(jù)變量必須在一個數(shù)據(jù)段之內(nèi),但代碼段可以有多個。在這種模型下,數(shù)據(jù)段寄存器的內(nèi)容保持不變,轉(zhuǎn)移可以是段間轉(zhuǎn)移。

            、COMPACT

            數(shù)據(jù)段可以有多個,但代碼段只能有一。

            、LARGE

            數(shù)據(jù)段和代碼段都可以有多個,但一個數(shù)組的字節(jié)數(shù)不能超過64KB。

            、HUGE

            數(shù)據(jù)段和代碼段都可以有多個,一個數(shù)組的字節(jié)數(shù)也可以超過64KB。

            、FLAT

            FLAT存儲模式在創(chuàng)建執(zhí)行文件時,將使該程序僅含一個包括程序數(shù)據(jù)和代碼的32位段,并且只能在80386及其以后的計算機(jī)系統(tǒng)中運(yùn)行。該程序的文件類型為EXE。

            在使用該存儲模式之前,必須先用偽指令.386、.486或其它偽指令來說明更高性能的CPU類型。也就是說:FLAT模式僅在386及其以后CPU模式下才能使用。

            在該程序中,所有代碼和數(shù)據(jù)位距的缺省值都是NEAR,子程序的類型也是NEAR,并且標(biāo)識符@CodeSize,@DataSize和@Model的值分別為:0、0和7。

            在FLAT存儲模式下,程序?qū)⒉皇褂枚渭拇嫫鱂S和GS。匯編程序在處理說明語句“.MODEL  FLAT”時,將自動生成下列段寄存器說明語句:

            ASSUME  CS:FLAT, DS:FLAT, SS:FLAT, ES:FLAT, FS:ERROR, GS:ERROR

            當(dāng)然,程序員也可把該段寄存器說明語句寫在其指令序列之中。

            二、語言類型

               如C。

            三、操作系統(tǒng)類型

            OS_DOS是當(dāng)前唯一支持的選項值,也是該選項的缺省值。

            四、堆棧類型

            堆棧類型的值主要影響偽指令.STARTUP所生成的指令序列。該選項有二個可選值:NEARSTACK和FARSTACK。其中:NEARSTACK是該選項的缺省堆棧類型。

            、NEARSTACK——堆棧段和數(shù)據(jù)段是同一段;

            、FARSTACK——堆棧段和數(shù)據(jù)段是不同的段,且堆棧不在段組DGROUP中。

            例如:

            .MODEL  SMALL, C, OS_DOS, FARSTACK

            (2)具體的偽指令說明形式及其功能描述如下:

            1、代碼段定義

            .CODE

            作用:說明其下面的內(nèi)容是代碼段中內(nèi)容。

            2、堆棧段定義

            .STACK  [堆棧字節(jié)數(shù)]

            其中,“堆棧字節(jié)數(shù)”可以不寫,其缺省值為1024B。

            3、數(shù)據(jù)段定義

            .DATA / .DATA? / .CONST

            作用:說明其下面的內(nèi)容是數(shù)據(jù)段中的變量定義。

            在一個源程序中,可以有多個偽指令.DATA定義的數(shù)據(jù)段,這就好象在源程序中定義多個同段名的數(shù)據(jù)段一樣。

            偽指令.DATA?說明下面是一個未初始化數(shù)據(jù)段的開始,偽指令.CONST說明下面是一個常數(shù)數(shù)據(jù)段的開始。這二條偽指令很少使用,除非在與高級語言編寫的程序相結(jié)合時,為了遵守高級語言的某些約定,而需要特殊說明時才使用。

            匯編程序在處理簡化的堆棧段和數(shù)據(jù)段定義時,它會自動地把偽指令.STACK、.DATA、.DATA?和.CONST所定義的段組合成一個段組。如果想定義一個獨(dú)立的、不與其它段組合在一起的數(shù)據(jù)段的話,那么,就可選用下面的數(shù)據(jù)段定義方式。

            4、遠(yuǎn)程數(shù)據(jù)段定義

            .FARDATA  [段名] / .FARDATA?  [段名]

            其中:“段名”是可選項,如果不指定的話,則該段名就取其缺省段名。

            作用:說明一個獨(dú)立的數(shù)據(jù)段。

            偽指令.FARDATA?說明下面是一個未初始化的、獨(dú)立數(shù)據(jù)段的開始。

            posted on 2007-07-16 20:46 merlinfang 閱讀(2344) 評論(0)  編輯 收藏 引用 所屬分類: 匯編語言
            7777久久久国产精品消防器材| 国产欧美久久久精品影院| 久久精品国产亚洲综合色| 青青草原1769久久免费播放| 狠狠色丁香婷婷久久综合不卡| 色综合久久天天综合| 精品久久久久久国产三级| 伊人久久大香线蕉精品不卡| 99蜜桃臀久久久欧美精品网站| 97久久超碰成人精品网站| 国产三级精品久久| 亚洲国产精品无码久久SM| 免费观看成人久久网免费观看| 伊人 久久 精品| 亚洲成人精品久久| 久久棈精品久久久久久噜噜| 久久精品国产99国产精品| 久久无码人妻一区二区三区午夜| 精品无码久久久久久久动漫| 亚洲AV日韩精品久久久久久| 久久久久九国产精品| 国产精品久久久久久福利69堂| 麻豆精品久久久久久久99蜜桃| 国内精品久久久久影院网站 | 日本久久久精品中文字幕| 国产精品久久久久久久久久影院| 久久精品国产一区| 久久综合88熟人妻| 久久天天躁夜夜躁狠狠| 久久无码国产| 久久99久久无码毛片一区二区| 996久久国产精品线观看| 人妻丰满AV无码久久不卡| 久久这里只有精品首页| 少妇久久久久久被弄到高潮| 成人精品一区二区久久久| 久久精品人人做人人爽电影蜜月| 久久精品国产乱子伦| 久久午夜福利无码1000合集| 中文字幕无码久久精品青草| 久久久久亚洲AV成人网|