組合語言中運算元定址方式有哪些,各自有什麼特點,怎麼區分呢

2021-04-20 14:24:15 字數 2219 閱讀 7821

1樓:上官雙英

根據教育部考試中心頒布的全國計算機等級考試大綱,62616964757a686964616fe78988e69d8331333264653465**pc技術考試的基本要求有:熟悉80x86微處理器的結構、原理及其巨集組合語言程式設計。上機考試操作語言為:

組合語言。筆試考試內容之一——微處理器與組合語言程式設計部分的重點是:80x86系列微處理器指令系統,指令格式與編碼,定址方式,指令系統。

從上可知組合語言在**pc技術考試中的重要性。熟悉並靈活地應用機器所採用的各種定址方式,對組合語言程式設計是至關重要的。指令系統常常要用到定址方式,主要是要弄懂具體各條指令的源運算元和目的運算元放在什麼地方,也就是運算元的定址方式。

在具體應用程式設計時,如果弄不懂定址方式就無法下手。可以說定址方式是學習彙編這門低階語言的入場券,但定址方式往往也是學習過程中的瓶頸問題。

下面和大家談談如何掌握80x86系列微處理器(以intel8086/8088為例)的定址方式。

在學習intel8086/8088微處理器中定址方式時,涉及的定址概念有七個:暫存器定址、立即定址、直接定址、暫存器間接定址、暫存器相對定址、基址加變址定址、相對基址加變址定址。其中暫存器定址、立即定址、直接定址相對來說好理解,而暫存器間接定址、暫存器相對定址、基址加變址定址、相對基址加變址定址這四種定址方式之間有許多密切聯絡之處,極其容易混淆。

如何找出它們之間的區別和聯絡,從而形成正確的概念呢?

我們知道,分析、比較與綜合是思維的基本過程,也是重要的邏輯思維方法。根據彙編抽象的特點,在進行概念學習時,借助比較的方法提高我們的辨析能力,最後綜合應用所學到的概念來程式設計解決實際問題。

下面應用比較分析法來談談這七種定址方式的學習,並結合**pc技術的考題以幫助大家理解。

一、暫存器定址

指令所指明的暫存器就是運算元的存放位址。

彙編格式:r (r是暫存器名)

功能:暫存器r的內容是運算元。

對暫存器定址方式,我們要牢牢掌握運算元存放在指令規定的暫存器中,不需訪問記憶體,工作效率高。對於16位運算元,暫存器可以是ax、bx、cx、dx、si、di、sp或bp;而對8位運算元,暫存器可以是ah、al、bh、bl、ch、cl、dh或dl。

例1. mov ax, bx

執行過程如下圖所示:

分析:源運算元bx和目的運算元ax都是暫存器定址。

執行前:(ax)=8a9dh (bx)=1234h

執 行:(bx)→ax

執行後:(ax)=1234h (bx)=1234h

由於暫存器是cpu的一部分,因此採用暫存器定址方式可以提高工作效率。特別是累加器ax,若用它存放運算結果,則指令的執行時間要短些。對於那些需要經常訪問的運算元,採用暫存器定址方式較為合適。

二、立即定址

在立即定址方式中,立即運算元可以是8位或16位,並且是指令的一部分。立即資料總是緊跟在指令操作碼之後並和操作碼一起存放在**段中,因而立即資料總是和操作碼一起被放入biu中的指令佇列裡,在指令執行時不需再訪問儲存器。

彙編格式:n (n為立即運算元)

功能:指令下一單元的內容為運算元n。

立即定址的定址方式如圖所示:

對立即定址方式,我們可和暫存器定址比較學習。首先這兩種定址方式都不需要訪問記憶體,這是它們之間的共同點,其次,立即定址的運算元就在**段裡的操作碼之後,是指令的一部分,而暫存器定址的運算元則放在指令規定的暫存器中。

例:2023年4月考題

根據下面定義的資料段:

dseg segment

dat1 db 『1234『

dat2 dw 5678h

addr equ dat2-dat1

dseg ends

執行mov ax,addr指令後,ax暫存器中的內容是:

(a)5678h (b)7856h

(c)4444h (d)0004h

答案:d

**中pc技術是最難的 不過任何考試都有其對招.我建議你做如下準備: 1.

了解本考試所要考內容,對其有一定的了解,知道其究竟要你去做什麼,你需要掌握些什麼 2.去書店選購一本輔導書以及真題,真題是必須做的,同時還要機試題,也可以從網上下 3.針對本次大綱以及輔導書上的內容去選擇一本比較全面的教材,然後先看教材,對其有乙個基本了解,彌補自己對本門知識的不足 4.

然後看輔導書,這樣你可以抓住考試要點,最後真題演練 最後我要說的是pc技術難度較高,希望你能靜下心來好好學習

2樓:手機使用者

又來乙個懶蟲,這些是abc的知識,自己去找答案。

組合語言中out和in的用法,組合語言中OUT和IN的用法

在8086系列的組合語言中 in指令的意思是從埠中讀取資料,比如 in al,80h,將80h埠資料讀入到al中 out指令的意思是往埠輸出資料,比如 out 80h,al,將al輸出到80h埠 組合語言中,cpu對外設的操作通過專門的埠讀寫指令來完成 讀埠用in指令,寫埠用out指令。例子如下 i...

組合語言中db指令的意義,組合語言中DB指令的意義

db作為組合語言中的偽操作命令,它用來定義運算元佔用的位元組數。在這裡b是byte的縮寫,即位元組,所以,該偽操作所定義的每個運算元佔有1個位元組 8位 如 message db hello 此時,字串 hello 中每個字元會佔用1個位元組,51微控制器中,用於定義位元組的內容。db 指令以表示式...

組合語言中b表示什麼,組合語言中 BX 表示什麼

您好,很高興為您解答。bx 表示的是乙個偏移位址。比如你ds 1000h的話。mov bx,1 那麼 mov ax,bx 那麼他就會尋找 段位址1000,偏移位址為0001h 的資料放入到ax中 mov ax,bx bx 這種方式叫做暫存器間接定址方式。即把 bx 指向的位址中的內容,送入ax暫存器...