根據(jù)教育部考試中心頒布的全國計算機等級考試大綱,三級PC技術(shù)考試的基本要求有:熟悉80X86微處理器的結(jié)構(gòu)、原理及其宏匯編語言程序設計。上機考試操作語言為:匯編語言。筆試考試內(nèi)容之一——微處理器與匯編語言程序設計部分的重點是:80X86系列微處理器指令系統(tǒng),指令格式與編碼,尋址方式,指令系統(tǒng)。
從上可知匯編語言在三級PC技術(shù)考試中的重要性。熟悉并靈活地應用機器所采用的各種尋址方式,對匯編語言程序設計是至關(guān)重要的。指令系統(tǒng)常常要用到尋址方式,主要是要弄懂具體各條指令的源操作數(shù)和目的操作數(shù)放在什么地方,也就是操作數(shù)的尋址方式。在具體應用編程時,如果弄不懂尋址方式就無法下手?梢哉f尋址方式是學習匯編這門低級語言的入場券,但尋址方式往往也是學習過程中的瓶頸問題。
下面和大家談談如何掌握80X86系列微處理器(以Intel8086/8088為例)的尋址方式。
在學習Intel8086/8088微處理器中尋址方式時,涉及的尋址概念有七個:寄存器尋址、立即尋址、直接尋址、寄存器間接尋址、寄存器相對尋址、基址加變址尋址、相對基址加變址尋址。其中寄存器尋址、立即尋址、直接尋址相對來說好理解,而寄存器間接尋址、寄存器相對尋址、基址加變址尋址、相對基址加變址尋址這四種尋址方式之間有許多密切聯(lián)系之處,極其容易混淆。如何找出它們之間的區(qū)別和聯(lián)系,從而形成正確的概念呢?
我們知道,分析、比較與綜合是思維的基本過程,也是重要的邏輯思維方法。根據(jù)匯編抽象的特點,在進行概念學習時,借助比較的方法提高我們的辨析能力,最后綜合應用所學到的概念來編程解決實際問題。
下面應用比較分析法來談談這七種尋址方式的學習,并結(jié)合三級PC技術(shù)的考題以幫助大家理解。
一、寄存器尋址
指令所指明的寄存器就是操作數(shù)的存放地址。
匯編格式:R (R是寄存器名)
功能:寄存器R的內(nèi)容是操作數(shù)。
寄存器尋址的尋址方式如右圖所示:
對寄存器尋址方式,我們要牢牢掌握操作數(shù)存放在指令規(guī)定的寄存器中,不需訪問內(nèi)存,工作效率高。對于16位操作數(shù),寄存器可以是AX、BX、CX、DX、SI、DI、SP或BP;而對8位操作數(shù),寄存器可以是AH、AL、BH、BL、CH、CL、DH或DL。
例1. MOV AX, BX
執(zhí)行過程如下圖所示:
分析:源操作數(shù)BX和目的操作數(shù)AX都是寄存器尋址。
執(zhí)行前:(AX)=8A9DH (BX)=1234H
執(zhí) 行:(BX)→AX
執(zhí)行后:(AX)=1234H (BX)=1234H
由于寄存器是CPU的一部分,因此采用寄存器尋址方式可以提高工作效率。特別是累加器AX,若用它存放運算結(jié)果,則指令的執(zhí)行時間要短些。對于那些需要經(jīng)常存取的操作數(shù),采用寄存器尋址方式較為合適。
二、立即尋址
在立即尋址方式中,立即操作數(shù)可以是8位或16位,并且是指令的一部分。立即數(shù)據(jù)總是緊跟在指令操作碼之后并和操作碼一起存放在代碼段中,因而立即數(shù)據(jù)總是和操作碼一起被放入BIU中的指令隊列里,在指令執(zhí)行時不需再存取存儲器。
匯編格式:n (n為立即操作數(shù))
功能:指令下一單元的內(nèi)容為操作數(shù)n。
立即尋址的尋址方式如圖所示: <br>
對立即尋址方式,我們可和寄存器尋址比較學習。首先這兩種尋址方式都不需要訪問內(nèi)存,這是它們之間的共同點,其次,立即尋址的操作數(shù)就在代碼段里的操作碼之后,是指令的一部分,而寄存器尋址的操作數(shù)則放在指令規(guī)定的寄存器中。
例:2003年4月考題
根據(jù)下面定義的數(shù)據(jù)段:
DSEG SEGMENT
DAT1 DB ‘1234‘
DAT2 DW 5678H
ADDR EQU DAT2-DAT1
DSEG ENDS
執(zhí)行MOV AX,ADDR指令后,AX寄存器中的內(nèi)容是:
(A)5678H (B)7856H
。–)4444H (D)0004H
答案:D
內(nèi)存分配示意圖: <br>
分析:首先根據(jù)題目定義的數(shù)據(jù)段畫出內(nèi)存分配示意圖,畫圖時要注意字符在內(nèi)存中是以ASCII碼的形式存放,同時標出每個存儲單元的偏移地址(EA),在相應的存儲單元標出變量名。從內(nèi)存分配示意圖,我們可知DAT1和DAT2的EA分別為0和4,因此表達式DAT2-DAT1的值為4。指令EQU是符號定義偽指令,則ADDR為一個符號常量,代表4。MOV AX,ADDR指令中的源操作數(shù)ADDR是立即尋址,執(zhí)行后就是把4的傳給AX。所以答案選D。
立即尋址方式主要用來給寄存器或存儲器賦初值,也可以與寄存器操作數(shù)或存儲器操作數(shù)進行算術(shù)邏輯運算。采用立即尋址方式不僅能簡化數(shù)據(jù)的存取,而且可使指令的書寫直觀、清晰。在程序設計中,立即尋址方式使用得相當多。
希望與更多計算機等級考試的網(wǎng)友交流,請進入計算機等級考試論壇
更多信息請訪問:考試吧計算機等級考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |