發布日期:2022-04-20 點擊率:74
在存儲器中,操作數或指令字寫入或讀出的方式,有地址指定方式、相聯存儲方式和堆棧存取方式。幾乎所有的計算機,在內存中都采用地址指定方式。當采用地址指定方式時,形成操作數或指令地址的方式稱為尋址方式。尋址方式分為兩類,即指令尋址方式和數據尋址方式,前者比較簡單,后者比較復雜。值得注意的是,在傳統方式設計的計算機中,內存中指令的尋址與數據的尋址是交替進行的。
指令的尋址方式有以下兩種。
順序尋址方式由于指令地址在內存中按順序安排,當執行一段程序時,通常是一條指令接一條指令地順序進行。也就是說,從存儲器取出第1條指令,然后執行這條指令;接著從存儲器取出第2條指令,再執行第二條指令;接著再取出第3條指令。這種程序順序執行的過程,稱為指令的順序尋址方式。為此,必須使用程序計數器(又稱指令計數器)PC來計數指令的順序號,該順序號就是指令在內存中的地址。
跳躍尋址方式當程序轉移執行的順序時,指令的尋址就采取跳躍尋址方式。所謂跳躍,是指下條指令的地址碼不是由程序計數器給出,而是由本條指令給出。注意,程序跳躍后,按新的指令地址開始順序執行。因此,程序計數器的內容也必須相應改變,以便及時跟蹤新的指令地址。采用指令跳躍尋址方式,可以實現程序轉移或構成循環程序,從而能縮短程序長度,或將某些程序作為公共程序引用。指令系統中的各種條件轉移或無條件轉移指令,就是為了實現指令的跳躍尋址而設置的。注意是否跳躍可能受到狀態寄存器的操作數的控制,而跳躍到的地址分為絕對地址(由標記符直接得到)和相對地址(對于當前指令地址的偏移量),跳躍的結果是當前指令修改PC程序計數器的值,所以下一條指令仍是通過程序計數器PC給出。
形成操作數的有效地址的方法稱為操作數的尋址方式。由于大型機、小型機、微型機和單片機結構不同,從而形成了各種不同的操作數尋址方式。下面介紹一些比較典型又常用的操作數尋址方式。
隱含尋址這種類型的指令,不是明顯地給出操作數的地址。而是在指令中隱含著操作數的地址。例如,單地址的指令格式,就不明顯地在地址字段中指出第2操作數的地址,而是規定累加寄存器AC作為第2操作數地址。指令格式明顯指出的僅是第1操作數的地址D。因此,累加寄存器AC對單地址指令格式來說是隱含地址。如:DAA ;
立即尋址指令的地址字段指出的不是操作數的地址,而是操作數本身,這種尋址方式稱為立即尋址。立即尋址方式的特點是指令執行時間很短,因為它不需要訪問內存取數,從而節省了訪問內存的時間。 如:MOV AX,#5678H 注意:立即數只能作為源操作數,不能作為目的操作數。
直接尋址直接尋址是一種基本的尋址方法,其特點是:在指令格式的地址的字段中直接指出操作數在內存的地址。由于操作數的地址直接給出而不需要經過某種變換,所以稱這種尋址方式為直接尋址方式。在指令中直接給出參與運算的操作數及運算結果所存放的主存地址,即在指令中直接給出有效地址
下一篇: PLC、DCS、FCS三大控
上一篇: 通用寄存器