实习项目组合语言之定址法.DOC

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实习项目组合语言之定址法

實習項目:組合語言之定址法 相關知識: 何謂定址模式? 定址模式的英文原名是(AddressingMode)又可稱為定址法,也是所謂「電腦CPU找尋資料所在的方法」。不論學電腦的硬體或軟體,有兩句話可以好好體會那就是「資料在哪裡?」、「資料要去哪裡?」就如你每天從家裡出發到學校,這家裡就是類似資料在哪裡,而學校就類似資料要去哪裡。可是學校那麼大要到哪一棟的哪一樓的哪一間教室,是不是要想清楚、要看清楚?尤其我們電腦的資料是在電腦的裡裡外外遊走傳遞,如此「資料從哪裡來?要去哪裡?」這件事情就非常重要了。 根據電腦的結構,資料可能來自三個地方: 1.立即值(隨指令碼一起進入CPU) 2.某一個暫存器 3.存在於記憶體內 (一) 定址法的種類 80X86指令的定址法共分三類七大定址法,所謂的三類即立即定址法、暫存器定址法、與記憶體定址法,其中記憶體定址法又分為五種,所以總共是七大定址法。 一、立即定址法(Immediate Addressing Mode) 二、暫存器定址法(Register Addressing Mode) 三、記憶體直接定址法(Direct memory Addressing Mode)或直接定址法(Direct Addressing Mode) 四、記憶體間接定址法(Indirect memory Addressing Mode)或間接定址法(Indirect Addressing Mode) 五、基底定址法(Based Addressing Mode). 六、索引定址法(Indexed Addressing Mode) 七、基底索引定址法(Based Indexed Addressing Mode) 以下我們對各種定址法分別加以說明: 暫存器定址法(Register Addressing Mode):運算元是暫存器,就是暫存器定址法。 例如: MOV DS,AX 此指令以暫存器定址法取得,AX暫存器的資料,之後以暫存器定址法寫入到DS暫存器中。 * 例如: MOV MEM1,AX 第一個運算元MEM1 不是暫存器定址法,第二個運算元AX是使用暫存器定址法。 例如: MOV AX,BX 說明:上述指令執行完後,AX、BX內容相同。在80X86的暫存器群中,區段暫存器的使用有其限制,即區段暫存器不能互相傳送資料,例如:將CS暫存器的內容存入DS暫存器中,則必須寫成如下格式。MOV AX,CS MOV DS,AX。 * 例 : INC AX 說明:運算元為AX暫存器。執行後,AX暫存器的內容加1。 例 : PUSH BX 說明:運算元為BX暫存器。執行後,BX暫存器的內容存入堆疊中 。 立即定址法(Immediate Addressing Mode):運算元是一個數字(立即值),就是所謂的立即定址法。* 如右例: 記憶體直接定址法(Direct memory Addressing Mode):是記憶體定址法的一種,直接定址法就是運算元直接指出資料所在記憶體的位址的方法,如右圖: 執行之後AX=5678;PI是所謂的資料標名,組譯時會算出其PI的實際位址。 * 例 : MOV AL,VALUE 說明:上述指令之運算元VALUE為一資料變數,VALUE必須在資料區段中定義。假設我們在資料區段中定義VALUE DB 100H,且記憶體100H中的資料如右圖所示,則上述指令執行完後,AL=01H。 * 例 : MOV AL,[102H] 說明:如果記憶體內容如例所示,則執行後,AL= 。 * 例 : MOV BX,400H MOV [BX]2,56H 說明:執行後,資料56H將存入記憶體位址DS: 中。 * 例 : MOV BX,400H MOV AL,[BX]2 說明:執行後,AL= 。 間接定址法 (Indirect Addressing Mode) 將暫存器的值當做是記憶體的位址,而暫存器可以看成是個資料的指標,到此位址去取得運算元的方法,而暫存器能是BX、BP、SI或DI,暫存器名必須用中括號[ ]括起來。如右圖所示以上是把BX內含視為一位址,再依此位址所指之內容搬至AX暫存器內。 基底定址法 (Based Addressing Mode) BX及BP暫存器有一項特殊用途即是做為基底暫存器使,那基底定址法就是以基底暫存器所指的位址為基底,再加上一個固定的距離來得到資料所在的位址,例如: MOV AX,[BX]+3 或 MOV AX,[BX+3] 或 MOV AX,[BX]3 以上三行是寫法不同,但是結果相同,即把BX+3這個位址的內容送給AL暫存器,舉一個例子:(資料如右圖) 執行前:已知 AX=1234H,

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档