微控制器基礎 對微控制器指令系統中七種定址方式的理解

2021-10-08 04:13:17 字數 2344 閱讀 5834

5.基址加變址定址

6.相對定址

7.位定址

立即定址就是不定址,直接把被操作的資料(立即數)寫在指令當中。在指令**中,需要在立即數前面加上 #,表示立即定址。

例如:把資料40h傳送到累加器acc中。

指令

執行第三步程式時,暫存器a內資料變為十六進製制0x40。

直接定址就是將被操作的資料在儲存器中的位址寫在指令**當中。也就是將運算元的位址寫在指令當中。

例如:位址40h中的資料為5bh,將40h中的資料傳入累加器acc中。

指令

這條指令中的40h,與立即定址中的#40h意義不同,這裡的40h表示資料#5bh的位址。

單步執行到第4行指令時,累加器中的資料變為0x5b。

暫存器定址就是將運算元(被操作的資料)存放在暫存器中。能夠實現暫存器定址的暫存器有a、b、dptr、r0 ~ r7。

例如:

在第3行指令中,對於目的運算元來說就是暫存器定址,對於源運算元來說就是立即定址。

在第4行指令中,目的運算元和源運算元都是暫存器,那麼二者都是暫存器定址。

與暫存器定址相似,在暫存器定址時,暫存器中存放的是運算元,而寄存機間接定址時,暫存器中存放的是運算元的位址。只用r0、r1、dptr可以實現暫存器間接定址

例如:

暫存器r0中存放的是資料3fh的位址40h,這樣暫存器間接定址可以將資料3fh傳到累加器acc中。

累加器的資料變為0x3f。

4.1記錄一下除錯程式過程中遇到的乙個錯誤

如果程式這樣寫,會有什麼錯誤。除錯一下。

a中的資料沒有變,可以看見r0中是0x3f,這時候a通過暫存器間接定址得到的是位址3fh中的資料0x00。

基址暫存器只能是pc和dptr,變址暫存器為累加器a。這種定址方式是將pc或dptr中得值與a中的值相加,得到的結果是運算元的位址。注意:是運算元的位址,不是運算元本身。

例如:movc a, @a+dptr

這條指令是把a和dptr中的值相加,得到運算元的位址,存到a中,然後a在根據位址去找到運算元。

movc a,@a+pc

同理,這條只是將dptr換為pc。

相對定址就是pc指標當前指向的值,與設定的jc偏移量相加得到的值作為目標位址,其中偏移量是自己設定的。

jc 80h

假如這條指令存放在1005h,取出操作碼後pc指向1006h,取出偏移量後pc指向1007h,那麼目標位址就是1007h + 80h,但是偏移量是有符號數,80h是-128的補碼,因此最後的目標位址是0f87h。

微控制器中21個特殊功能暫存器,其中有11個是可位定址的(acc、b、ip、ie、psw、scon、tcon、p0 ~ p3)

一共有四種表示形式,以psw為例

直接使用位位址

位名稱單元位址加位

特殊功能暫存器名稱加位

mov c, 0d2h

mov c, ov

mov c, 0d0h.2

mov c, psw.2

微控制器指令系統 1

本篇部落格主要列出了微控制器的主要指令,供開發人員參考。作為乙個微控制器初學者,記住指令特別的痛苦,不過主要還是要理解,多練習指令,寫多了就記住了,這是乙個很自然的過程。目錄 一 定址方式 二 指令分類 1 資料傳送類指令 2 算術運算類指令 定址方式有七種 1.立即定址 如 mov a,3ah 2...

微控制器及微控制器系統

微控制器及微控制器系統 1 什麼是微控制器?微控制器是將 處理器 cpu 隨機儲存器 ram 唯讀儲存器 rom或eprom 定時器晶元和一些輸入 輸出介面電路整合在乙個晶元上的微控制器 microcontroller 處理器包括運算器 控制器和暫存器3個主要部分,是微控制器的核心。儲存器按工作方式...

單片微控制器

微控制器又稱單片微控制器,它不是完成某乙個邏輯功能的晶元,而是把乙個計算機系統整合到乙個晶元上。相當於乙個微型的計算機,和計算機相比,微控制器只缺少了i o裝置。概括的講 一塊晶元就成了一台計算機。它的體積小 質量輕 便宜 為學習 應用和開發提供了便利條件。同時,學習使用微控制器是了解計算機原理與結...