單片機位尋址舉例_單片機學習:51單片機尋址方式詳解

114667597_1_20171028081616763

51單片機是對所有兼容Intel 8031指令系統的單片機的統稱。該系列單片機的始祖是Intel 8031單片機,后來隨著Flash rom 技術的發展,8031單片機取得了長足的發展,成為了應用最廣泛的8位單片機之一。51單片機是基礎入門的一個單片機,并且還是應用最廣泛的一種。今天我們主要講講51單片機的尋址方式。

【指令】

指令是人們向計算機發的一種命令,一條指令對應著一種操作。

【指令系統】

CPU所能執行的全部指令的集合。CPU能夠執行多少條指令是由CPU的內部結構所決定的。不同的CPU,其指令系統不同。

【指令的表示方法】

指令在機器中必須以機器碼(二進制碼)的形式出現。在書寫指令時,通常有兩種方法:

1. 在計算機發展的初期,人們用機器碼書寫指令,這一階段成為機器語言階段。

優點:用機器碼書寫的程序,計算機可以直接識別和運行。

缺點:書寫時容易出錯,不容易記憶。

2. 為了克服機器語言的缺點,人們用符號書寫指令:指令由操作碼和操作數組成。

優點:容易理解和記憶。

缺點:計算機不能直接識別和運行。

匯編語言程序必須轉換成機器語言程序,轉換方法有兩種:

手工轉換:查表 符號指令——機器碼指令——MEM

匯編程序:符號指令——機器——機器碼指令——MEM

114667597_2_20171028081616857

【尋址方式】

尋址方式由操作碼和操作數組成。

操作碼:決定CPU執行何種操作

操作數:就是操作對象,無論何種指令其操作的對象都是數據。

數據:數據在指令中有2種表示方法:1.數本身;2.數所在的地方

指出操作數所在的方式就是尋址方式。

114667597_3_20171028081616951

【51單片機尋址的方式】

每一種計算機都具有多種尋址方式,尋址方式的多少是反映指令系統優劣的主要指標之一。

51單片機有7種尋址方式:

1. 立即尋址

2. 直接尋址

3. 寄存器間址

4. 寄存器尋址

5. 變址尋址(基址寄存器+變址寄存器間接尋址)

6. 相對尋址

7. 位尋址

114667597_4_2017102808161713

【立即尋址】

指令的操作數存放在程序存儲器中,操作數緊跟在操作碼后面。

尋址空間:程序存儲器

指令形式:操作碼——OP 立即數——#data

注意:#表明其后跟的是立即數,立即數就是數字量本身

【直接尋址】

在指令中直接給出操作數的真實地址,操作碼后面緊跟一個實際操作數地址

尋址空間:內RAM的低128字節,特殊功能寄存器SFR區

指令的三種形式:

114667597_5_2017102808161760

【寄存器尋址】

當前選定的寄存器內容就是實際操作數

尋址空間:R0~R7,由RS0、RS1確定寄存器區

指令的三種形式:

114667597_6_20171028081617122

【寄存器直接尋址】

寄存器中的內容是一個地址,由該地址單元尋址到所需的操作數

尋址空間:內部RAM

指令的三種形式:

114667597_7_20171028081617169

注意:“間接”表示某寄存器中的“內容”只是一個“單元地址”,這個地址單元中存放的數據才是要找的“操作數”。

符號“@”表示“在....”,其含義與讀音皆同“at”。

規定工作寄存器只有R0和R1采用與間接尋址。

規定用MOV指令訪問片內RAM,用MOVX訪問外部RAM。

【基址寄存器加變址寄存器間接尋址】

以DPTR或PC作基址寄存器,A作變址寄存器兩者相加形成操作數地址。

尋址空間:程序存儲器

指令形式:操作碼

【相對尋址】

以當前PC值為基準地址,加上指令的偏移量“rel”,結果為目標地址。

Rel為有符號補碼數,范圍:-128~+127

尋址空間:程序存儲器

指令的三種形式:一般為雙字節或三字節指令

114667597_8_20171028081617232

注意:“當前PC值”值程序中下一條指令所在的首地址,是一個16位數;符號“rel”在實際編程中通常用標號代替。

【位尋址】

以訪問觸發器的方式,對內部RAM、SFR的位地址空間進行訪問,稱為位尋址,位尋址用于布爾指令。

尋址空間:片內RAM的20H~2FH字節地址

114667597_9_20171028081617294

注意:位地址里的數據只可能是一個0或1

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/270604.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/270604.shtml
英文地址,請注明出處:http://en.pswp.cn/news/270604.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網絡知識:LAN、WAN、WLAN相關知識介紹

今天給大家介紹一下LAN、WAN、WLAN相關知識,希望對大家能有所幫助! 一、什么是lan、wan和wlan口的區別? 很多朋友對lan口與wan及wlan的用途了解不清楚,尤其是在做路由器橋接時,wan口與lan的連接與設置容易弄混。 1、LA…

jps

jps位于jdk的bin目錄下,其作用是顯示當前系統的java進程情況,及其id號。 jps相當于Solaris進程工具ps。不象”pgrep java”或”ps -ef grep java”,jps并不使用應用程序名來查找JVM實例。因此,它查找所有的Java應用程序&#xff0…

SQL

修改表的列名: exec sp_rename testtable.id,ID,column 根據傳入時間刪除同一天的記錄 1、 delete InventoryMovementsTemp where DateDiff(DD,TrnDate ,1/11/2013)0 2、 where convert(varchar(10),TrnDate,126)’’213-01-10 2、 where trndate>’2013-01-10’…

后端技術:mybatis中resultMap用法示例筆記

1、概念resultMap屬于mybatis返回操作結果的一個標簽,可以用來映射select查詢出來結果的集合,主要作用是將實體類中的字段與數據庫表中的字段進行關聯映射。并且支持復雜的返回結果類型。2、使用場景2.1 屬性映射當數據庫字段和項目中的實體屬性不一致時…

將mysql服務移除_怎么將mysql服務移除?

將mysql服務移除的方法:1、進入“控制面板->程序->卸載或更改程序”,刪除mysql程序;2、刪除MySQL文件夾下的【my.ini】文件,如果備份好,可以直接將文件夾全部刪除 ;3、進入注冊表,將相關M…

程序人生:程序員的9個層次,你屬于哪個層次

目錄 第一級:糟糕的程序員 第二級:菜鳥級程序員 第三級:碼農 第四級:普通程序員 第五級:中級程序員 第六級:骨干程序員 第八級:著名程序員 第九級:祖師爺級別 . 第一級:糟…

lsof -i:port 的作用

lsof(list open files)是一個列出當前系統打開文件的工具。在linux環境下,任何事物都以文件的形式存在,通過文件不僅僅可以訪問常規數據,還可以訪問網絡連接和硬件。如TC和UDP等,系統在后臺都為該應用程序分…

SpringBoot定時任務實現的兩種方式介紹

今天給大家介紹SpringBoot定時任務實現的幾種方式,希望對大家能有所幫助!1、SpringTask 用法框架介紹:SpringTask是Spring自帶的輕量級定時任務工具,相比于Quartz使用更加簡單方便,并且不需要不需要引入其他依賴即可使…

mvc調用mysql存儲過程_使用.NET MVC +EF調用oracle的存儲過程

題記:需求如題,在網上搜索了一下,沒有特別貼合我需求的資料,只好自己摸索,東拼西湊了解了一點東西慢慢嘗試做了出來。難點:.NET是微軟產品,主要支持Sql Server數據庫,對于Oracle的數…

Oracle12c:安裝后新建用戶及其默認表空間,并創建表測試

環境:操作系統:Windows Server2008 R2 X64 Oracle版本:12c 如何安裝? -- oracle 12c在oracle linux 6.6 x64上的安裝 -- Windows x64位下完美安裝winx64_oracle_12c_database 如何使用DataBase Cofiguration Assistant 創建數據庫…

數據庫:Redis相關知識梳理

1、數據類型string(字符串):最基本的k-v存儲 ,適合驗證碼、配置信息等list(列表):適合有序/固定的列表。比如行政區、字典表、消息隊列等。set(集合):支持交集…

python線性回歸分析看相關性_機器學習入門-相關分析之簡單線性回歸

一.什么是機器學習?簡單來說,機器學習是一類算法的總稱,這些算法企圖從大量歷史數據中挖掘出其中隱含的規律,并用于預測或者分類,更具體的說,機器學習可以看作是尋找一個函數,輸入是樣本數據&am…

Android Listview 性能優化

首先我一般使用的適配器是BaseAdapter,其中有兩個方法最主要,分別是: getCount,getView,在對Listview 進行優化的時候,首先使用 convertview 和viewHolder 配合進行優化,使用convertview的母的是控件復用,從而加到減少內存的使用,使用viewHolder 的是減少findbyid 的次數.但是在…

前端:JS實現數組去重常用的六種方法介紹

今天給大家分享JS實現數組去重常用的六種方法&#xff0c;希望對大家能有所幫助&#xff01;定義變量let arr [20,6,13,20,100,8,13,11]; let newArr [];1、兩層循環去重 for(let i 0;i < arr.length;i){for(let j i 1;j < arr.length;j){if(arr[i] arr[j]){arr.sp…

python自定義colorbar_python可視化 matplotlib畫圖使用colorbar工具自定義顏色

python matplotlib畫圖使用colorbar工具自定義顏色 colorbar(draw colorbar without any mapple/plot)自定義colorbar可以畫出任何自己想要的colorbar&#xff0c;自由自在、不受約束&#xff0c;不依賴于任何已有的圖(plot/mappable)。這里使用的是mpl.colorbar.ColorbarBase類…

不能讀取文件“itunes.library.itl”因為它是由更高級別的itunes所創建的

轉自&#xff1a;https://zhidao.baidu.com/question/80796363.html 是因為你安裝過高版本的后又裝你版本的itunes. 你在電腦上搜索所有硬盤上的itunes library.itl這個文件.搜到就刪了&#xff0c;而且搜索里選擇“高級選項”除了區分大小寫其它幾個都鉤上。這樣注消下&#x…

路由器:什么是軟路由,看完本篇文章你就懂了

今天小編給大家介紹一下軟路由具體是什么&#xff0c;有什么實際用途&#xff0c;看完本篇你就懂了&#xff01; 一、軟路由與硬路由概念介紹 硬路由&#xff1a;目前我們家里普遍使用的路由器&#xff0c;有廠家提供整體的解決方案&#xff0c;包括處理器、電源供應、嵌入式軟…

c#form+mysql儲存讀取圖片_C#從SQL server數據庫中讀取l圖片和存入圖片

本實例主要介紹如何將圖片存入數據庫。將圖片存入數據庫,首先要在數據庫中建立一張表,將存儲圖片的字段類型設為Image類型,用FileStream類、BinaryReader把圖片讀成字節的形式,賦給一個字節數組,然后用ADO.SqlCommand對象的ExecuteNonQuery()方法來把數據保存到數據庫中。主要代…

if...else..的錯誤用法

1.最近在寫js代碼完成一個前段DOM操作的函數時&#xff0c;自己錯誤的使用了if..else..控制體。為什么是錯誤的呢&#xff1f;看看我的 代碼你就明白了&#xff1a; 1 document.getElementsByClassName(eButton)[0].οnclickfunction(){2 var checkeddocument.getElementsB…