新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 匯編語言教程-段寄存器的說明語句

        匯編語言教程-段寄存器的說明語句

        作者: 時間:2011-10-06 來源:網絡 收藏

          在源程序中可以定義多個段,每個段都要與一個建立一種對應關系。建立這種對應關系的說明語句格式如下:
          ASSUME名:段名[,名:段名,……]
          其中:段寄存器是CS、DS、ES、SS、FS和GS,段名是在段定義語句說明時的段名。
          在一條ASSUME語句中可建立多組段寄存器與段之間的關系,每種對應關系要用逗號分隔。例如,
          ASSUME CS:CODE1, DS:DATA1
          上面的語句說明了:CS對應于代碼段CODE1,DS對應于數據段DATA1。
          在ASSUME語句中,還可以用關鍵字NOTHING來說明某個段寄存器不與任何段相對應。下面語句說明了段寄存器ES不與某段相對應。
          ASSUME ES:NOTHING
          在通常情況下,代碼段的第一條語句就是用ASSUME語句來說明段寄存器與段之間的對應關系。在代碼段的其它位置,還可以用另一個ASSUME語句來改變前面ASSUME語句所說明的對應關系,這樣,代碼段中的指令就用最近的ASSUME語句所建立的對應關系來確定指令中的有關信息。
          例6.1段及其段說明語句的作用。
          DATA1SEGMENT;定義數據段DATA1
          word1DW5678h
          byte1DB"ABCDEFG"
          DATA1ENDS
          DATA2SEGMENT;定義數據段DATA2
          word2DW1234h
          word3DW9876h
          DATA2ENDS
          DATA3SEGMENT;定義數據段DATA3
          byte2DB?
          DATA3ENDS
          CODE1SEGMENT;編寫代碼段CODE1
          ASSUMECS:CODE1, DS:DATA1, ES:DATA2;(1)
          MOVAX, DATA1;(2)
          MOVDS, AX;(3)
          MOVAX, DATA2;(4)
          MOVES, AX;(5)
          …
          MOVAX, word1;訪問段DATA1中的字變量word1
          MOVword2, AX;訪問段DATA2中的字變量word2
          …
          ASSUMEDS:DATA3, ES:NOTHING;(6)
          MOVAX, DATA3
          MOVDS, AX
          MOVBL, byte2;訪問段DATA3中的字節變量byte2
          …
          MOVAX, 4C00H;(7)
          INT21H;(8)
          CODE1 ENDS
          語句(1)和(6)分別說明了段和段寄存器之間的對應關系,其中語句(6)重新說明語句(1)所指定的對應關系。
          二組語句(2)和(3)、(4)和(5)實現對段寄存器DS和ES賦初值。ASSUME說明語句只起說明作用,它不會對段寄存器賦值,所以,必須對有關段寄存器賦值。在以后的其它源程序中也都是用此方法來實現對數據段寄存器賦值的。
          語句(7)和(8)是調用中斷21H的4CH號功能來結束本程序的執行,程序的返回代碼由寄存器AL來確定。結束本程序執行的指令是所有主模塊必須書寫的語句。
          注意:代碼段寄存器不能由程序員在源程序中對其賦值,其值是由操作系統在裝入它進入系統運行時自動賦值的。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 马龙县| 延边| 阿拉尔市| 汤阴县| 吴堡县| 曲松县| 天水市| 天长市| 宽城| 临泉县| 新建县| 涟源市| 台东县| 鄂伦春自治旗| 阿图什市| 无极县| 铁岭县| 积石山| 尉犁县| 日喀则市| 察隅县| 四川省| 福安市| 友谊县| 延吉市| 黄大仙区| 米泉市| 来凤县| 曲阳县| 衡南县| 西城区| 大关县| 桐柏县| 长武县| 黄骅市| 温州市| 双流县| 凤庆县| 稷山县| 鄂托克旗| 云安县|