單片機課件-指令系統(tǒng).ppt
《單片機課件-指令系統(tǒng).ppt》由會員分享,可在線閱讀,更多相關《單片機課件-指令系統(tǒng).ppt(21頁珍藏版)》請在裝配圖網(wǎng)上搜索。
單片機原理與接口應用 第四章指令系統(tǒng) 4 1指令格式 一 指令和指令格式指令 是CPU根據(jù)人的意圖來執(zhí)行某種操作的命令 指令系統(tǒng) 一臺計算機所能執(zhí)行的全部指令的集合 8051單片機指令系統(tǒng)功能很強 例如 它有乘 除法指令 豐富的條件轉移類指令 并且使用方便 靈活 程序 要使計算機按照人的思維完成一項工作 就必須讓CPU按順序執(zhí)行各種操作 即一步步地執(zhí)行一條條的指令 這些按人的要求編排的指令操作序列稱為程序 程序設計 編排程序的過程就叫作程序設計 程序設計語言 分為機器語言 匯編語言和高級語言 本章重點介紹匯編語言 目標程序 機器語言用二進制編碼表示每條指令 它是計算機能直接識別和執(zhí)行的語言 用機器語言編寫的程序稱為機器語言程序或指令程序 機器碼程序 因為機器只能直接識別和執(zhí)行這種機器碼程序 所以又稱它為目標程序 例如 要做10加20的加法 在MCS 5l中可用機器碼指令編程 0111010000001010把10放到累加器A中00100l0000010100A加20 結果放A中為了便于書寫和記憶 可采用十六進制表示指令碼 以上兩條指令可寫成740AH2414H顯然 用機器語言編寫程序不易記憶 不易查錯 不易修改 匯編語言 匯編語言是用助記符 符號和數(shù)字等來表示指令的程序語言 容易理解和記憶 它與機器語言指令是一一對應的 匯編語言不象高級語言 如BASIC 那樣通用性強 而是屬于某種計算機所獨有 與計算機的內(nèi)部硬件結構密切相關 用匯編語言編寫的程序叫匯編語言程序 把匯編語言源程序翻譯成目標程序的過程稱為匯編過程 簡稱匯編 完成這個任務有兩種方法 手工匯編 所謂手工匯編是程序設計人員根據(jù)機器語言指令與匯編語言指令對照表 把編好的匯編語言程序翻譯成目標程序 如上述10加20的例子可寫成 匯編語言程序機器語言程序MOVA 0AH740AHADDA 14H2414H 機器匯編 許多公司為了方便用戶 編制了一些軟件 能將用戶編寫的匯編語言源程序翻譯成目標程序 在單片機應用系統(tǒng)中 源程序設計好后 還要翻譯成二進制機器語言的目標程序 計算機才可執(zhí)行 這一過程稱匯編 反匯編 在分析現(xiàn)成產(chǎn)品ROM EPROM芯片中的程序時 有時要將二進制機器語言翻譯成匯編語言 該過程稱為反匯編 二 指令格式 8051匯編語言指令由操作碼助記符字段和操作數(shù)字段兩部分組成 指令格式如下 操作碼 目的操作數(shù) 源操作數(shù) 例如 MOVA OOH操作碼部分規(guī)定了指令所實現(xiàn)的操作功能 由2 5個英文字母表示 例如 JB MOV DJNZ LCALL等 操作數(shù)部分指出了參與操作的數(shù)據(jù)來源和操作結果存放在什么空間單元 操作數(shù)可以直接是一個數(shù) 立即數(shù) 或者是一個數(shù)據(jù)所在的空間地址 即在執(zhí)行指令時從指定的地址空間取出操作數(shù) 操作碼和操作數(shù)都有對應的二進制代碼 指令代碼由若干字節(jié)組成 805l指令系統(tǒng)中 有一字節(jié) 兩字節(jié)或三字節(jié)指令 1 一字節(jié)指令一字節(jié)指令中的8位二進制代碼既包含操作碼的信息 也包含操作數(shù)的信息 如 INCA805l單片機共有49條一字節(jié)指令 2 雙字節(jié)指令用一個字節(jié)表示操作碼 另一個字節(jié)表示操作數(shù)或操作數(shù)所在的地址 其指令格式為 操作碼立即數(shù)或地址如 MOVA 00H8051中有45條雙字節(jié)指令 3 三字節(jié)指令一個字節(jié)操作碼 兩個字節(jié)操作數(shù) 其格式如下 操作碼立即數(shù)或地址立即數(shù)或地址8051單片機共有三字節(jié)指令17條如 MOV90H 00H 2偽指令 偽指令不是真正的指令 無對應的機器碼 在匯編時不產(chǎn)生目標程序 機器碼 它只是用來對匯編過程進行某種控制 標準的MCS 5l匯編程序 如Intel的ASM51 定義的偽指令常用的有以下幾條 1 ORG匯編起始命令格式 ORG16位地址其功能是規(guī)定該偽指令后面程序的匯編地址 即匯編后生成目標程序存放的起始地址 例如 ORG2000HSTART MOVA 64H既規(guī)定了標號START的地址是2000H 又規(guī)定了匯編后的第一條指令碼從2000H開始存放 ORG可以多次出現(xiàn)在程序的任何地方 當它出現(xiàn)時 下一條指令的地址就由此重新定位 2 END 匯編結束命令END命令通知匯編程序結束匯編 在END之后所有的匯編語言指令均不予以處理 3 EQU賦值命令格式 字符名稱EQU項 數(shù)或匯編符號 EQU命令是把 項 賦給 字符名稱 注意這里的字符名稱不等于標號 其后沒有冒號 其中的項 可以是數(shù)也可以是匯編符號 用EQU賦過值的符號名可以用作數(shù)據(jù)地址 代碼地址 位地址或是一個立即數(shù) 因此 它可以是8位的 也可以是16位的 如 AAEQUR1 AA就代表了工作寄存器RlMOVA AA 4 DATA數(shù)據(jù)地址賦值命令格式 字符名稱DATA表達式 5 DB定義字節(jié)命令格式 DB 項或項表 6 DW定義字命令格式 DW16位數(shù)據(jù)項或項表 7 DS定義存儲空間命令格式 DS表達式 8 BIT位地址符號命令格式 字符名BIT位地址 4 2尋址方式 尋址就是尋找指令中操作數(shù)或操作數(shù)所在地址 尋址方式就是如何找到存放操作數(shù)的地址把操作數(shù)提取出來的方法 它是計算機的重要性能指標之一 也是匯編語言程序設計中最基本的內(nèi)容之一 必須十分熟悉 牢固掌握 8051單片機尋址方式有七種 寄存器尋址 直接尋址 立即數(shù)尋址 寄存器間接尋址 變址尋址 相對尋址 位尋址 1 寄存器尋址 寄存器尋址就是由指令指出寄存器組R0 R7中某一個或其它寄存器 A B DPTR等 的內(nèi)容作為操作數(shù) 例如MOVA R0MOVP1 AADDA R0 2 直接尋址 在指令中直接給出操作數(shù)所在存儲單元的地址 稱直接尋址方式 此時 指令中操作數(shù)部分是操作數(shù)所在地址 在8051中 使用直接尋址方式可訪問片內(nèi)RAM的128個單元以及所有的特殊功能寄存器 SFR 對于特殊功能寄存器 既可以使用它們的地址 也可以使用它們的名字 例如 MOVA 3AH 3AH A把片內(nèi)RAM中3AH這個單元的內(nèi)容送累加器A MOVA P1 P1口 A是把SFR中P1口內(nèi)容送A 它又可寫成MOVA 90H其中90H是P1口的地址 3 立即數(shù)尋址 指令操作碼后面緊跟的是一字節(jié)或兩字節(jié)操作數(shù) 用 號表示 以區(qū)別直接地址 例如 MOVA 3AH 3AH AMOVA 3AH 3AH A前者是表示把片內(nèi)RAM中3AH這個單元的內(nèi)容送累加器A 而后者則表示把3AH這個數(shù)又 MOVDPTR 2000H 4 寄存器間接尋址 操作數(shù)的地址事先存放在某個寄存器中 寄存器間接尋址是把指定寄存器的內(nèi)容作為地址 由該地址所指定的單元內(nèi)容作為操作數(shù) 8051規(guī)定R0或R1為間接尋址寄存器 它可尋址內(nèi)部RAM低位地址的128字節(jié)單元內(nèi)容 還可采用數(shù)據(jù)指針 DPTR 作為間接尋址寄存器 尋址外部數(shù)據(jù)存儲器的64K字節(jié)空間 例如 將片內(nèi)RAM65H單元的內(nèi)容47H送A 可執(zhí)行指令 MOVR0 65H R0 65HMOVA R0 A 65H 指令的執(zhí)行過程為 當程序執(zhí)行到本指令時 以指令中所指定的工作寄存器R0內(nèi)容 65H 為指針 將片內(nèi)RAM65H單元內(nèi)容47H送累加器A 5 變址尋址 基址寄存器十變址寄存器間接尋址 變址尋址是以某個寄存器的內(nèi)容為基地址 然后在這個基地址的基礎上加上地址偏移量形成真正的操作數(shù)地址 8051中采用數(shù)據(jù)指針DPTR或PC為變址寄存器 地址偏移量是累加器A的內(nèi)容 以DPTR或PC的內(nèi)容與累加器A的內(nèi)容之和作為操作數(shù)的l6位程序存儲器地址 在8051中 用變址尋址方式只能訪問程序存儲器 訪問的范圍為64KB 當然 這種訪問只能從ROM中讀取數(shù)據(jù)而不能寫入 例如 MOVCA A十DPTR A 十 DPTR A這種方式多用于查表操作 6 相對尋址 相對尋址只出現(xiàn)在相對轉移指令中 相對轉移指令執(zhí)行時 是以當前的PC值加上指令中規(guī)定的偏移量rel而生成實際的轉移地址的 這里所說的PC的當前值是執(zhí)行完相對轉移指令后的PC值 一般將相對轉移指令操作碼所在地址稱為源地址 轉移后的地址稱為目的地址 則有 目的地址 源地址十2 相對轉移指令字節(jié)數(shù) 十rel例如 執(zhí)行指令SJMPrel 7位尋址 采用位尋址方式的指令 其操作數(shù)將是8位二進制數(shù)中的某一位 在指令中給出的是位地址 即給出片內(nèi)RAM某一單元中的一位 位地址在指令中用Bit表示 例如 CLRbit8051單片機片內(nèi)RAM有兩個區(qū)域可以位尋址 其一是20H一2FH的l6個單元中的128位 其二是字節(jié)地址能被8整除的特殊功能寄存器 在805l中 位地址常用下列兩種方式表示 直接使用位地址 對于20H一2FH的16個單元共128位的位地址分布是00H一7FH 對于特殊功能寄存器 可以直接使用位地址 又可以直接用寄存器名字加位數(shù)表示 如PSW 3等- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 單片機 課件 指令系統(tǒng)
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
相關資源
更多
正為您匹配相似的精品文檔
相關搜索
鏈接地址:http://m.zhongcaozhi.com.cn/p-6753241.html