<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 匯編語(yǔ)言教程-段寄存器的說(shuō)明語(yǔ)句

          匯編語(yǔ)言教程-段寄存器的說(shuō)明語(yǔ)句

          作者: 時(shí)間:2011-10-06 來(lái)源:網(wǎng)絡(luò) 收藏

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



          關(guān)鍵詞: 匯編語(yǔ)言 段寄存器

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();