1 / 50

系統設計

TOP / 930203. 系統設計. 整體系統設計. 硬體電路. 軟體程式. top1@mail.hyivs.tnc.edu.tw. TOP / 930203. 指令的學習方法. 一、了解指令提供了哪些功能 ( 動作 ). 二、了解各種定址方式. 三、了解操作的對象. 四、留意一下指令位元組數與工作週期. 伍、利用模擬軟體或發展系統工具的單步執行的功能 來觀察指令的動作. top1@mail.hyivs.tnc.edu.tw. TOP / 930203. 8051 組合語言 程式格式.

Télécharger la présentation

系統設計

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TOP / 930203 系統設計 整體系統設計 硬體電路 軟體程式 top1@mail.hyivs.tnc.edu.tw

  2. TOP / 930203 指令的學習方法 一、了解指令提供了哪些功能 ( 動作 ) 二、了解各種定址方式 三、了解操作的對象 四、留意一下指令位元組數與工作週期 伍、利用模擬軟體或發展系統工具的單步執行的功能 來觀察指令的動作 top1@mail.hyivs.tnc.edu.tw

  3. TOP / 930203 8051組合語言 程式格式 〔Label〕 〔Mnemonic〕 〔Operand〕 〔Comment〕 標記欄 指令欄 運算元欄 註解欄 START: MOV A , #10H ;將10H搬移至A 目的運算元 ,來源運算元 top1@mail.hyivs.tnc.edu.tw

  4. TOP / 930203 程式格式 說明 標記欄 :1.標記的功用是用以替代繁複的記憶體位址計算,以方便程式的編寫、 分析與維護。 2. 第一格開始,長度最多可以達32個位元,最後必須以冒號來結束。 指令欄:一種是8051單片指令, 一種則是編譯程式的虛指令,用以通知編譯器對程式作某些特定的處理 運算元欄:運算元依指令決定需要與否,且其需要長度亦依指令而異 註解欄:註解欄是以分號起頭的一段說明文字,直到該行結束。 top1@mail.hyivs.tnc.edu.tw

  5. 開始 原始程式*.ASM 除錯 編譯程式成*.obj 程式庫與其他obj檔 ok 除錯 編譯成機器碼*.hex或*.bin ok 燒錄或模擬器 修改程式 測試功能 ok 結束 TOP / 930203 程式流程 top1@mail.hyivs.tnc.edu.tw

  6. TOP / 930203 指令集 資料轉移指令(Data transfer) 邏輯指令(Logic operations) 算術指令(Arithmetic operations) 布林運算指令(Boolean variable operations) 程式跳躍指令(Program branching) top1@mail.hyivs.tnc.edu.tw

  7. 虛指令一 1.ORG n:由程式記憶體的位址 n 開始存放,無此宣告由位址 0 開始。 2.END :程式的结尾,告訴組譯器,組譯到此為止。 3.EQU :等於的意思。例 LF EQU 0AH 4.DB (Define Byte):定義位元組的資料,各資料間以〝,〞號分開。         例  TABLE DB 25H , 34H,58H DB 〝HELLO〞 Dyte 40,60

  8. 虛指令二 5.DW (Define Word):定義字元組的資料,各資料間以〝,〞號分開。         例  DATA1 DW 2255H , 3654H,57F8H DB 〝HELLO〞 Dyte 40,60 6.DS n :保留n個 Byte 的記憶體空間。例 LABLE1 DS 20 7.REG :指定暫存器或直接定址位元的名稱,也就是現有的暫存器       名稱(含SFR),以另一個名稱代替。       例 REG0 REG R2 POR3 REG P2 bit0 REG 20H.1

  9. TOP / 930203 LED 程式 top1@mail.hyivs.tnc.edu.tw

  10. TOP / 930203 结 束 top1@mail.hyivs.tnc.edu.tw

  11. TOP / 930203 了解各種定址方式 1、立即定址 MOV A , # 60 H 2、直接定址 MOV A , 60 H 3、暫存器定址 MOV A , R3 4、間接定址 MOV A , @R0 5、索引定址 MOVC A , @A+DPTR top1@mail.hyivs.tnc.edu.tw

  12. 立即定址說明

  13. TOP / 930203 立即定址與內容 MOV A , # 60 H 則 A = 60 H INC A 則 A = 61 H top1@mail.hyivs.tnc.edu.tw

  14. 直接定址說明

  15. TOP / 930203 假如 60 H 之內容值 為 4F H 直接定址與內容 MOV A , 60 H 則 A = 4F H INC 60H 則 60H = 50 H top1@mail.hyivs.tnc.edu.tw

  16. 暫存器定址說明 暫存器 Acc 暫存器 R0 內容 39H

  17. TOP / 930203 假如於暫存器庫 2 , R3 之內容值 為 39 H 暫存器定址與內容 MOV A , R3 則 A = 39 H 39 H MOV A , 13H 則 R3 = top1@mail.hyivs.tnc.edu.tw

  18. 間接定址說明

  19. TOP / 930203 具指標功能暫存器 ,8 bit 者為 R0、R1、SP,可定址256 byte 範圍 16bit 者為 DPTR,可定址65536 byte 範圍 間接定址與內容一 假如於位址 60 H 之內容值 為 3F H,位址 3F H 之內容值 為 41 H MOV R0 , 60 H 則 R0 = 3F H MOV A ,R0 則 A = 3F H 41 H MOV A , @R0 則  A = top1@mail.hyivs.tnc.edu.tw

  20. TOP / 930203 假如於位址 60 H 之內容值 為 3F H 位址 30 H 之內容值 為 25 H,31H 之內容值 為 36 H 間接定址與內容二 MOV SP , #30 H 則 SP = 60 H = 30 H = 31 H = 30 H 3F H 25 H 36 H PUSH 60H 則 SP = 60 H = 30 H = 31 H = 31 H 3F H 3F H 25 H top1@mail.hyivs.tnc.edu.tw

  21. TOP / 930203 資料轉移指令(Data transfer) 1.MOV:一般位元組(byte)複製(搬移) 2.MOVX :對外資料記憶體資料複製(搬移) 3.MOVC :對程式記憶體資料複製(搬移) 4.PUSH:將資料存入堆疊中 5.POP :將資料從堆疊中取出 6.XCH:將運算元一之值與運算元二之資料作互換 7.XCHD :將累積器Acc之低四位元與Ri所指資料記憶體 低四位元之值互換,高四位元不變 top1@mail.hyivs.tnc.edu.tw

  22. TOP / 930203 MOV 指令說明 top1@mail.hyivs.tnc.edu.tw

  23. TOP / 930203 PUSH 指令說明 top1@mail.hyivs.tnc.edu.tw

  24. TOP / 930203 XCH 指令說明 top1@mail.hyivs.tnc.edu.tw

  25. TOP / 930203 邏輯指令(Logic operations) 1.ANL:AND 2.ORL:OR 3.XRL:XOR 4.RL:將累積器Acc之內容值左旋 1 位元 5.RLC:將累積器Acc之內容值與進位旗標 C 的位元值一起左旋 1 位元 6.RR:將累積器Acc之內容值右旋 1 位元 7.RRC:將累積器Acc之內容值與進位旗標 C 的位元值一起右旋 1 位元 8.CLR:將累積器Acc之內容值清除為 0 9.CPL:將累積器Acc之內容值取 1 的補數 10.SWAP:累積器Acc之高四位元與低四位元之值互換 top1@mail.hyivs.tnc.edu.tw

  26. TOP / 930203 ANL 指令說明 top1@mail.hyivs.tnc.edu.tw

  27. TOP / 930203 ORL 指令說明 top1@mail.hyivs.tnc.edu.tw

  28. TOP / 930203 XRL 指令說明 top1@mail.hyivs.tnc.edu.tw

  29. TOP / 930203 RL 指令說明 top1@mail.hyivs.tnc.edu.tw

  30. TOP / 930203 RLC 指令說明 top1@mail.hyivs.tnc.edu.tw

  31. TOP / 930203 RR 指令說明 top1@mail.hyivs.tnc.edu.tw

  32. TOP / 930203 RRC 指令說明 top1@mail.hyivs.tnc.edu.tw

  33. TOP / 930203 CLR 指令說明 top1@mail.hyivs.tnc.edu.tw

  34. TOP / 930203 CPL 指令說明 top1@mail.hyivs.tnc.edu.tw

  35. TOP / 930203 SWAP 指令說明 top1@mail.hyivs.tnc.edu.tw

  36. TOP / 930203 算術指令(Arithmetic operations) 1.ADD:相加 2.ADDC:含進位的相加 3.INC:加一 4.SUBB:相減 5.DEC:減一 6.MUL :相乘 7.DIV :相除 8.DA :十進位調整 算術運算指令除了〝INC〞與〝DEC〞外, 其他的運算元1皆為累加器Acc, 運算所得的結果也是存入Acc中 top1@mail.hyivs.tnc.edu.tw

  37. TOP / 930203 ADD 指令說明 top1@mail.hyivs.tnc.edu.tw

  38. TOP / 930203 ADDC 指令說明 top1@mail.hyivs.tnc.edu.tw

  39. TOP / 930203 INC 指令說明 top1@mail.hyivs.tnc.edu.tw

  40. TOP / 930203 SUBB 指令說明 top1@mail.hyivs.tnc.edu.tw

  41. TOP / 930203 DEC 指令說明 top1@mail.hyivs.tnc.edu.tw

  42. TOP / 930203 布林運算指令(Boolean variable operations) 1.MOV:位元轉移運算 2.ANL :位元邏輯AND運算 3.ORL :位元邏輯OR運算 4.CLR :位元清除運算 5.CPL :位元補數運算 6.SETB:位元設定運算 應用例 top1@mail.hyivs.tnc.edu.tw

  43. TOP / 930203 位元 MOV 指令說明 top1@mail.hyivs.tnc.edu.tw

  44. TOP / 930203 位元 SETB 指令說明 top1@mail.hyivs.tnc.edu.tw

  45. Bit 應用例 1.      將位址20H的第0 Bit設定為1,可以寫成下面兩種方式: SETP 00H ;位元定址 SETB 20H.0;第20H位元組的第0位元 2.      將P0的第3 Bit清除為0,可以寫成下面三種方式: CLR 83H ;位元位址 CLR 80H.3 ;第80H位元組的第3位元 CLR P0.3 ;P0暫存暫存器的第3位元 3.      將IT0位元的值反相,可以寫成下面四種方式: CPL 88H ;位元位址 CPL 88H.0 ;第88位元組的第0位元 CPL IT0 ;位元名稱 CPL TCON.0 ;TCON暫存器的第0位元

  46. TOP / 930203 程式跳躍指令(Program branching) 一、無條件跳躍指令 二、有條件跳躍指令 三、副程式呼叫指令與返回指令 四、延遲指令 top1@mail.hyivs.tnc.edu.tw

  47. TOP / 930203 無條件跳躍指令 1.AJMP :絕對跳躍 (Absolute jump) 跳到此 11 bit 位址範圍,暨跳躍範圍據此指令 2 K byte 的距離 2.LJMP :長程跳躍 (Long jump) 跳到此 16 bit 位址範圍,暨跳躍範圍據此指令 64 K byte 的距離 3.SJMP :短程跳躍 (Short jump) 跳到 相對位址範圍,暨跳躍範圍據此指令前 128 byte後127 byte的距離 4.JMP :間接跳躍 ( Jump indirect),Ex :JMP @A+DPTR PC 值變更為累積器 Acc 內容值與 DPTR 內容值之和 top1@mail.hyivs.tnc.edu.tw

  48. TOP / 930203 有條件跳躍指令 1.JC :若 進位旗標 C = 1 就跳至相對位址去執行 2.JNC :若進位旗標 C = 0 就跳至相對位址去執行 3.JB :若 bit = 1 就跳至相對位址去執行 4.JNB :若 bit = 0 就跳至相對位址去執行 5.JBC :若 bit = 1 就跳至相對位址去執行,同時清除此 bit 為 0 6.JZ :若 累積器 A 等於 0就跳至相對位址去執行 7.JNZ :若 累積器 A 不等於 0就跳至相對位址去執行 8.CJNE :若 累積器 A 不等於 直接定址資料值,就跳至相對位址rel去執行 9.DJNZ :若 暫存器 Rn 不等於 0 ,就跳至相對位址 rel 去執行 top1@mail.hyivs.tnc.edu.tw

  49. TOP / 930203 副程式呼叫指令與返回指令 一、ACALL:絕對跳越(呼叫) (Absolute call) 1.PC值存入堆疊中 2. 11 bit 位址存入 PC 中 3.程式需存於 2 K byte 的範圍 二、LCALL :絕對跳越(呼叫) (Long call) 1.PC值存入堆疊中 2. 16 bit 位址存入 PC 中 3.程式需存於 64 K byte 的範圍 三、RET :副程式返回指令 四、RETI :中斷副程式返回指令 top1@mail.hyivs.tnc.edu.tw

  50. TOP / 930203 延遲指令 NOP :指令不作運算,PC 值內容加 1 用途:增加延遲時間 除錯使用 top1@mail.hyivs.tnc.edu.tw

More Related