歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

匯編語言尋址方式及堆棧.ppt

  • 資源ID:12721476       資源大?。?span id="ldertan" class="font-tahoma">1.50MB        全文頁數(shù):36頁
  • 資源格式: PPT        下載積分:9.9積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

匯編語言尋址方式及堆棧.ppt

8086匯編語言程序設(shè)計,1,尋址方式的概念和基本分類;7種尋址方式及“兩對”尋址方式的區(qū)別;尋址方式與常量、變量和指針的關(guān)系;堆棧概念、結(jié)構(gòu)元素和操作指令。,本章要點,8086匯編語言程序設(shè)計,2,CPU訪問內(nèi)存的兩個目的:讀取指令;存取數(shù)據(jù)。CPU訪問內(nèi)存的三種方式:控制器自動取指循環(huán);程序控制方式訪問數(shù)據(jù)段;堆棧方式。,第三章尋址方式及堆棧,8086匯編語言程序設(shè)計,3,一條匯編指令語句包含操作碼和操作數(shù)兩種信息,有些像自然文字的謂語和賓語:操作碼字段為指令,描述語句的功能;操作數(shù)字段描述操作數(shù)或操作數(shù)的來源和去向;CPU獲得操作數(shù)的方式叫作尋址方式。,3.1尋址方式,8086匯編語言程序設(shè)計,4,三類尋址方式的特點:寄存器尋址:存取數(shù)據(jù)在CPU內(nèi)部進(jìn)行,故速度最快;寄存器數(shù)量很少,尋址方式簡單;存儲器尋址:為便于組織串、數(shù)組等數(shù)據(jù)結(jié)構(gòu)復(fù)雜的數(shù)據(jù)處理,必須有更靈活、也就相對復(fù)雜的尋址方式,是本節(jié)的重點;I/O端口尋址:I/O端口的任務(wù)是實現(xiàn)計算機核心和外界的數(shù)據(jù)交換,故尋址方式也相對簡單。,8086匯編語言程序設(shè)計,5,3.1.1寄存器尋址當(dāng)需要處理寄存器中的數(shù)據(jù)或?qū)⑻幚斫Y(jié)果存入寄存器的時,使用“寄存器尋址”;在匯編語言中直接以寄存器名對寄存器尋址:MOVDS,AX意即將AX的內(nèi)容送入數(shù)據(jù)段寄存器DS。,8086匯編語言程序設(shè)計,6,8086匯編語言程序設(shè)計,7,3.1.2立即數(shù)尋址先看一例子:MOVAX,201H這條指令將16進(jìn)制數(shù)201送入寄存器AX。存放結(jié)果的AX的尋址方式是“寄存器尋址”,而后面的201H是一個常數(shù),它是隨指令從代碼段來的。由于這類操作數(shù)就在指令中,“立即”可以參與運算,故稱作“立即數(shù)尋址方式”。因立即數(shù)伴隨指令在代碼段中,所以這種尋址也應(yīng)屬存儲器尋址。,8086匯編語言程序設(shè)計,8,8086匯編語言程序設(shè)計,9,3.1.3存儲器尋址存儲器尋址必然涉及段,即最終要以邏輯地址段基址:偏移量形成物理地址。由于在大多數(shù)使用場合地址指針的段基址是“現(xiàn)成的”和隱含的,所以本小節(jié)討論的重點是“有效地址”偏移量的問題。偏移量是某存儲單元和段基址間的距離,又被稱作有效地址。,8086匯編語言程序設(shè)計,10,偏移量或有效地址的形成:偏移量位移量基地址變址量上述三個分量的不同組合,演繹出存儲器尋址的各種方式。直接尋址是在指令中直接給出操作數(shù)地址偏移量的尋址方式。比如把200H單元的內(nèi)容送入AL:MOVAL,200H,8086匯編語言程序設(shè)計,11,8086匯編語言程序設(shè)計,12,注意直接尋址和立即數(shù)尋址方式區(qū)別:方括號里的數(shù)字是操作數(shù)的有效地址,200H表示該單元的內(nèi)容。顯然,直接尋址方式是非常直觀的存儲器尋址方式,但不方便處理整塊的數(shù)據(jù)。寄存器間接尋址寄存器的內(nèi)容是某存儲單元的有效地址,以這種方式尋址就叫作寄存器間接尋址。,8086匯編語言程序設(shè)計,13,如要將200H單元的內(nèi)容送入AL,使用寄存器間接尋址需要這樣:MOVBX,200HMOVAL,BX所謂“間接”就是操作數(shù)的取得是通過寄存器間接獲得的。應(yīng)注意寄存器間接尋址方式和寄存器尋址相區(qū)別:后者在意的目標(biāo)的是寄存器的內(nèi)容,而前者是寄存器的內(nèi)容作為偏移量的存儲單元的內(nèi)容。,8086匯編語言程序設(shè)計,14,8086匯編語言程序設(shè)計,15,兩者的書寫形式也不同,寄存器間接尋址時將用作間接尋址的寄存器用方括號括起來。能用作存儲器間接尋址的有下述地址指針寄存器:BX,SI,DI,BP顯然,連續(xù)將上述寄存器的內(nèi)容增一或減一,可方面地處理數(shù)據(jù)塊,如處理一維數(shù)據(jù)或字符串,高精度數(shù)字運算等??蓞⑴c存儲器尋址的寄存器又被成為“地址指針寄存器”,具備“準(zhǔn)指針”的功能。,8086匯編語言程序設(shè)計,16,變址尋址和基址尋址(寄存器相對尋址)某地址指針寄存器的內(nèi)容和指令中給出的位移量之和形成有效地址的尋址方式。它是直接尋址方式和寄存器間接尋址方式的一種組合,請看例子:MOVAL,BX+20HADDAL,10SI指令中10SI和SI+10是等價的。,8086匯編語言程序設(shè)計,17,8086匯編語言程序設(shè)計,18,和寄存器間接尋址方式相比,地址指針寄存器的內(nèi)容可以從開始,這樣地址指針寄存器可以兼作計數(shù)器。至于“變址尋址”和“基址尋址”的差異只涉及使用地址指針寄存器的不同,在編程應(yīng)用上沒有區(qū)別,故這兩種尋址方式又統(tǒng)稱為“寄存器相對尋址”。,8086匯編語言程序設(shè)計,19,相對基址變址尋址有效地址是基址寄存器的內(nèi)容、變址寄存器的內(nèi)容和指令中給出的位移量之和,如:MOVAL,20HBXSIMOVAH,80BSDIMOVDX,100HBXDI20HBXSI也可以寫成20H+BX+SI。這種尋址方式能比較方便地處理二維數(shù)組等更復(fù)雜的結(jié)構(gòu)數(shù)據(jù)。,8086匯編語言程序設(shè)計,20,8086匯編語言程序設(shè)計,21,由于基于BP的基址變址尋址的隱含段寄存器是堆棧段SS,所以在數(shù)據(jù)段的這種尋址方式常是BX分別和SI和DI配合??梢哉J(rèn)為相對基址變址尋址方式是最一般的尋址方式,其他尋址方式都可以看作是基址變址尋址方式的特例。比如:MOVAL,100H+BX+SI去掉其中任一個或二個分量就會是某種其他尋址方式。,8086匯編語言程序設(shè)計,22,3.1.4尋址方式與常量、變量及“準(zhǔn)指針”立即數(shù)尋址方式對應(yīng)匯編語言的常量;存儲器尋址方式對應(yīng)匯編語言的變量;在各種地址指針寄存器參與的存儲器尋址方式中,地址指針寄存器充當(dāng)“準(zhǔn)指針”的角色。串操作尋址和I/O尋址以后介紹。,8086匯編語言程序設(shè)計,23,物理地址、段、邏輯地址和尋址方式小結(jié):物理地址是地址信號和譯碼邏輯對存儲單元的唯一指定,本質(zhì)上是組合邏輯電路的一種應(yīng)用:,8086匯編語言程序設(shè)計,24,8088/8086尋址(或管理)1M的存儲空間是通過段來實現(xiàn)的:段寄存器的內(nèi)容存放和提供段基址的高16位,用于指定低四位為零的存儲單元作為段的起點;16位段內(nèi)偏移量確定段內(nèi)具體單元,段內(nèi)管理64K的存儲空間;段寄存器的內(nèi)容即段基址的高16位和段內(nèi)偏移量合稱為邏輯地址:段基址的高16位:段內(nèi)偏移量,8086匯編語言程序設(shè)計,25,8088/8086CPU按代碼段、數(shù)據(jù)段、堆棧段、附加段對內(nèi)存進(jìn)行分類管理:代碼段:CS:IP;堆棧段:SS:SP;數(shù)據(jù)段:DS:位移量基址量變址量,8086匯編語言程序設(shè)計,26,尋址方式寄存器尋址方式(訪問CPU完成數(shù)據(jù)處理的接口,按“直呼其名”的方式進(jìn)行);立即數(shù)尋址方式(伴隨指令序列來自于代碼段的常量);數(shù)據(jù)段尋址是三種偏移分量的組合:位移量基址量變址量,8086匯編語言程序設(shè)計,27,尋址方式與常量、變量及指針的關(guān)系:立即數(shù)尋址方式對應(yīng)匯編語言的常量;存儲器尋址方式對應(yīng)匯編語言的變量;在各種地址指針寄存器參與的存儲器尋址方式中,地址指針寄存器充當(dāng)“準(zhǔn)指針”的角色。,8086匯編語言程序設(shè)計,28,堆棧是由CPU控制的按“后進(jìn)先出”順序存取數(shù)據(jù)的存儲結(jié)構(gòu),用于暫存子程序調(diào)用、中斷斷點的信息和數(shù)據(jù)。堆棧的用途在這里只作一點說明,只有在學(xué)習(xí)了子程序調(diào)用、中斷斷點的保護(hù)等才會知道為什么要使用堆棧這種特殊的存儲結(jié)構(gòu)。本節(jié)的重點是:堆棧的結(jié)構(gòu)元素和操作指令。,3.2堆棧,8086匯編語言程序設(shè)計,29,3.2.1堆棧的構(gòu)造,8086匯編語言程序設(shè)計,30,堆棧是在存儲器中劃出的一個部分;地址最高的字單元叫作“棧底(Bottom)”;入棧的數(shù)據(jù)從棧底開始逐個向地址低端存入;用堆棧指針SP指向最后入棧的數(shù)據(jù),習(xí)慣上把SP所指的位置叫作“棧頂(Top)”;數(shù)據(jù)是按SP的指向出入堆棧,從而實現(xiàn)了“后進(jìn)先出”的存取機制的。,8086匯編語言程序設(shè)計,31,3.2.28086的堆棧堆棧的組織,8086匯編語言程序設(shè)計,32,堆棧是由SS的內(nèi)容為起點的一段存儲區(qū);SP指向棧頂;以字為單位進(jìn)行存??;當(dāng)堆棧初始化或為空時,SP的值是堆棧段的實際長度,SP指向棧底之下的第二個字節(jié);棧的最大空間是64KB,棧的最大深度是32K;入棧的字,低字節(jié)存放在SP所指的單元,高字節(jié)存放在SP+1所指的單元。,8086匯編語言程序設(shè)計,33,0H,堆棧初始化或空時棧頂“低于”棧底的情形,8086匯編語言程序設(shè)計,34,堆棧的操作堆棧的操作都是通過SP在棧頂進(jìn)行的;基本的操作有兩個:壓棧和出棧。壓棧(數(shù)據(jù)入棧)PUSHSCR(SP)2SP;SCR(SP).,8086匯編語言程序設(shè)計,35,出棧(習(xí)慣上又叫彈出)POPDEST(SP)SCR;(SP)+2SP.問題:堆棧操作的尋址方式是什么?,8086匯編語言程序設(shè)計,36,本章小結(jié):尋址方式是本節(jié)的重點。注意區(qū)分:立即數(shù)尋址和直接尋址;寄存器尋址和寄存器間接尋址。堆棧是按“后進(jìn)先出”機制存取數(shù)據(jù)的有特殊功用的存儲器組織;堆棧的結(jié)構(gòu)完全是由SS和SP的初值決定的。,第五章第1、12題,本章習(xí)題,匯編語言教程.chm,本章參考,

注意事項

本文(匯編語言尋址方式及堆棧.ppt)為本站會員(tian****1990)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!