Microsoft Word 定址法實驗.doc

Similar documents
DPJJX1.DOC

<4D F736F F D20B3E6B4B9A4F930365F32A443AC71C5E3A5DCBEB9B1B1A8EE2E646F63>

PowerPoint 簡報

Microsoft Word - 專題封面.doc

W77E58中文手册

微處理機

Microsoft PowerPoint - chap3.ppt

專題最終版.doc

TSINGTEK DISPLAY CO.,LTD LCD CONTROLLER & DRIVER ST7920 OR EQUIVALENT (f) 639 2A f B1

目 录

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

HD61202 HD HD61203 HD61202, HY HY HD61202 HD61202 HD61203 HD =4096 RAMRAM LCD 2HD HD HD /32--

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

untitled

微處理機期末專題

Microsoft PowerPoint - chap4.ppt

» n ¹ú KS0108 x ÍÍÙ q n KS0108 KS KS0107 KS0108 KS *32 128*64 192*64 KS0108 KS0108 KS0107 KS =4096 RAM RAM LCD 2 KS

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc

Microsoft Word - ISSFA-0109_B_SM59264_WDT_ APN_TC_.doc

51 C 51 isp 10 C PCB C C C C KEIL

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit


Ps22Pdf

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L

untitled

12232A LED LED LED EL EL CCFL EL CCF

Microsoft PowerPoint - MicroProcessor05_MSC51 HW

() () () () () () () () DDRAM () II

单片机学习教程

Microsoft Word - ISSFA-0134_A_AP_User-definedDownload_SC_.doc

1-1 2

<4D F736F F D203130B5A5C6ACBBFACAB5D1E9D6B8B5BCCAE92E646F63>

Microsoft Word - ISSFA-0237_A_SM39R_series_EEPROM_APN_TC_.doc

Microsoft PowerPoint - chap5.ppt

Microsoft PowerPoint - chap2.ppt

untitled


1 TPIS TPIS 2 2

! "! "! # $ # # %#!# $# &# # ()*+, )-.) /# () () 0# 1,2.34, 4*.5)-*36-13)7,) ,9,.).6.(+ :# 13).+;*7 )-,7,<*7,-*=,>,7?#

幻灯片 1

教科書:系統程式 - 第 2 章、電腦的硬體結構

2-2 第二章系統分析 XTAL1/ (19/18): 時脈接腳 1. 使用內部振盪器 C1 XTAL1 C2 VSS 2. 使用外部時脈 圖 2-2 使用內部振盪器接線圖 時脈輸入 空接.. 時脈輸入 XTAL1 XTAL1 時脈輸入 XTAL1 VSS VSS VSS (a) (b) (c) 圖

5( " &$"" & & #! # # # # # # # # # # $ % & &( )( # # # *+,-,.. /012 # # "" # 3 % # # # # # ) &$"4 # # # # # # # # # # # # &$"! # & # ""!

Microsoft Word - 3-1_instruction

Microsoft PowerPoint - Fig03_Stack.ppt [相容模式]

PowerPoint 簡報

标题


1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1

Microsoft Word - P3.doc

7688使用手冊V10.doc

Microsoft Word - DataStruct-981.doc

诺贝尔生理学医学奖获奖者

单片机原理及应用实验指导书.doc

,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far address L10: jmp jmp L20: L10 L20

逢 甲 大 學

学习MSP430单片机推荐参考书

µPSD3000 系列


車在走天在看 PC前的三輪車日記


<4D F736F F D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63>

untitled

Microsoft PowerPoint - Ch2-1.ppt

Microsoft PowerPoint - chap12.ppt

Microsoft Word - FM12232C.doc

Microsoft Word - 透析8051之迴圈控制方法.doc

第5章:汇编语言程序设计

江人发2009年第49号突发事件应对法培训.doc

高二立體幾何

《西游记》(一)

Ctpu

PowerPoint 簡報

!!""# $ %#" & $$ % $()! *% $!*% +,-. / 0 %%"#" 0 $%1 0 * $! $#)2 "

寻医问药指南(十七)

Microsoft Word - PLC與GP接線說明_缺WDH_2.doc

untitled

Microsoft PowerPoint - chap7.ppt

??????????????????

*33*!!! "!! #$! %#! "& "! #! %! # ( ) * # +, # -, # +., $ /# ( ) 0 $ +# ( ) 0 $.# ( ) 0 $ # $! % "" " % 1 % & ( * ) * % " " %.! % 2!!"+# ( "&! " ( "#

Ⅰ Ⅱ 2 Ⅲ 2 Ⅳ 耀

CH559指令周期.doc

! "! #!$$%!$$% &!!$$( # ) (


untitled

CA24064B LED LED LED EL EL CCFL EL CCF /

高雄縣高英高級工商職業學校

E170C2.PDF

untitled

AT89C2051中文资料.doc

& ($ ) * +!"", &#!""#! +$ ) ( * +!"", - ($ ) * + % ($ ) * + * ), ($ ( # *$ ) ( + ) (. ($ / ($ ) ( * + &/ )! $!%

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h

(譯本)

上 海 农 商 银 行 理 财 产 品 风 险 揭 示 书 理 财 资 金, 则 客 户 面 临 产 品 期 限 延 期 调 整 等 风 险 8. 信 息 传 递 风 险 : 上 海 农 商 银 行 将 按 照 本 说 明 书 有 关 信 息 公 告 的 约 定, 进 行 产 品 信 息 披 露 客

数 学 高 分 的 展 望 一 管 理 类 联 考 分 析 第 一 篇 大 纲 解 析 篇 编 写 : 孙 华 明 1 综 合 能 力 考 试 时 间 :014 年 1 月 4 日 上 午 8:30~11:30 分 值 分 配 : 数 学 :75 分 逻 辑 :60 分 作 文 :65 分 ; 总

教 案 ( 首 页 ) 课 课 编 号 结 构 力 学 总 计 :80 学 时 名 称 学 分 5 其 中 : 类 别 必 修 课 ( ) 选 修 课 ( ) 理 论 课 ( ) 实 验 课 ( 讲 课 :80 学 时 ) 实 验 : 学 时 任 课 教 师 曹 志 翔 职 称 副 教


Microsoft Word - 1-3陳詠琳-近代..

第一章.FIT)

Transcription:

8051 定址法實驗 - 利用 Keil μvision3 發展工具來學習 指令格式 : 標記 : 運算碼運算元 ; 註解 Label: Op Code Operand ;Comments Loop: MOV A #3FH ; 指令格式範例 定址法 : 8051 的定址法可分為下列六種 : 立即定址法 (Immediate Addressing) 暫存器定址法 (Register Addressing) 直接定址法 (Direct Addressing) 間接定址法 (Indirect Addressing) 索引定址法 (Indexed Addressing) 位元定址法 (Bit Addressing) 特殊的資料存取方式 : 堆疊之存取 :PUSH,POP,CALL 資料交換指令 :SWAP,XCH,XCHD 立即定址法 立即定址法的運算元為 常數資料, 以 # 號作為前置符號 常數資料型式不外乎 2 進位 十進位 16 進位資料 : (1) 10 進位數字 0~255, 數字後面不加任何標示, 表示 10 進位資料 (2) 16 進位數字 00H~FFH; 數字後加 H 做為標示, 表示 16 進位資料 (3) 2 進位數字 00000000B~11111111B; 數字後加 B 做為標示, 表示 2 進位資料 如 : 立即定址法 MOV A,#10100011B ;2 進位常數值移入累加器 MOV B,#18 ;10 進位常數值移入 B 暫存器 MOV R1,#0F4H ;16 進位常數值移入 R1 暫存器 MOV DPTR,#TABLE ; 將 TABLE 位址值移入 DPTR 暫存器 1

以 Keil μvision3 除錯功能, 觀察資料存在記憶體的情形 觀察之前, 應了解常用的各暫存器之位址, 如下表所示 : 8051 特殊功能暫存器 (SFR) 位址範圍 :0x80H~0xFFH 共 128 Bytes RS1 RS0 暫存器庫 位址 0 0 RB0 00H~07H 0 1 RB1 08H~0FH 1 0 RB2 10H~17H 1 1 RB3 18H~1FH 8 9 A B C D E F F8 FF F0 B F7 E8 E7 E0 ACC EF D8 D7 D0 PSW DF C8 CF C0 C7 B8 IP BF B0 P3 B7 A8 IE AF A0 P2 A7 98 SCON SBUF 9F 90 P1 97 88 TCON TMOD TL0 TL1 TH0 TH1 8F 80 P0 SP DPL DPH PCON 87 0 1 2 3 4 5 6 7 2

1 首先編輯原始程式 2 組譯及連結完成 3 按工具圖示 :Debug Session, 如圖, 項目 1 4 反組譯, 如圖, 項目 2, 結果 : 如圖,Disassembly 視窗 5 顯示記憶體視窗, 如圖, 項目 3, 結果 : 如圖,Memory 視窗 6 按 單步執行 :Step into 或 Step over, 觀察以下記憶體資料存入的情形 7 記憶體觀察 : 在 Memory 視窗 /Address, 輸入 : C:0 觀察從 C:0x0000 起的 程式記憶體 資料 8 MOV A 之運算碼(Op code)=74h, 運算元 (Operand)=A3H MOV B 之運算碼 =75F0, 其中 B 暫存器之位址 =B0H 9 由反組譯視窗中, 可以對應 Memory 視窗之資料, 其中可以發現 TABLE 列表資料的位址起點為 0x000AH, 資料分別為 :01,02,03,04,05 10 如圖, 左視窗中顯示各暫存器之即時值, 包括 PSW 旗標值 切換 Memory 視窗之最下方標籤頁, 可以設定不同區段之記憶體區間, 便以各區段資料的觀察, 如下圖所示, 切換至 Memory #2, 並輸入 D:0 觀察從 D:0x00 起的 資料記憶體 資料 R0 之位址 =00H, 資料 =F4H P0 位址 =80H, 資料 =FFH,SP 位址 =81H, 資料 =07H,DPTR 3

為 16 位元暫存器, 共佔 2 個位址,DPL=82H, 資料 =0AH,DPH=83H, 資料 =00H 暫存器定址法 暫存器定址法的運算元為 暫存器, 以 R0~R7 符號表示 8051 內部的資料記憶體 (RAM), 有 4 個暫存器庫 RB0~RB3, 且均含有 8 個暫存器 R0-R7, 可以用 PSW 中的 RS1,RS0 來切換, 若運算元使用 R0-R7 來定址都稱為暫存器定址法 例如 : 暫存器定址法 暫存器定址法 CLR RS1 ;RB0 SETB RS1 ; RB2 CLR RS0 CLR RS0 MOV R0,#01H MOV R0,#21H MOV R1,#02H MOV R1,#22H MOV R2,#03H MOV R2,#23H MOV R3,#04H MOV R3,#24H MOV R4,#05H MOV R4,#25H MOV R5,#06H MOV R5,#26H MOV R6,#07H MOV R6,#27H MOV R7,#08H MOV R7,#28H CLR RS1 ;RB1 SETB RS1 ;RB3 4

SETB RS0 SETB RS0 MOV R0,#11H MOV R0,#31H MOV R1,#12H MOV R1,#32H MOV R2,#13H MOV R2,#33H MOV R3,#14H MOV R3,#34H MOV R4,#15H MOV R4,#35H MOV R5,#16H MOV R5,#36H MOV R6,#17H MOV R6,#37H MOV R7,#18H MOV R7,#38H 觀察記憶體內容 : 直接定址法 直接定址法的運算元為 位址, 以 16 進位數值表示 此數值代表記憶體中的某個 位址而不是資料 例如 : 直接定址法 MOV 30H,#30H ; 令位址 30H 的內容為 30H MOV 31H,#31H ; 令位址 31H 的內容為 31H MOV 32H,#32H ; 令位址 32H 的內容為 32H 5

MOV A,30H ; 將位址 30H 的內容移入累加器 ( 位址 E0H) MOV 3AH,A ; 將 ACC 內容, 移動至 3AH 位址中 MOV R1,31H ; 將位址 31H 內容移入 R1 暫存器 ( 位址 01H) MOV P0,32H ; 將位址 32H 內容由 P0 輸出 ( 位址 80H) MOV PSW,78H ; 將位址 31H 內容來設定 PSW( 位址 D0H) MOV DPTR,#1234H ; 設定 DPTR( 位址 82H~83H) 內容為 1234 間接定址法 間接定址法的運算元為 暫存器, 以 @ 作為前置符號 暫存器為 Ri 等作為索引暫存器或 DPTR 作為基底暫存器, 間接指示運算元所在位置的 位址 指標 如 : 間接定址法 MOV R0,#40H ;R0=40H INC @R0 ; 令 R0 所指的位址 40H 內的資料值 +1 MOV A,#5FH ;ACC=5FH MOV R1,#41H ;R1=41H MOV @R1,A ; 將 ACC 值存入 R1 所指示的位址 (41H) 中 6

索引定址法 索引定址法與間接定址法有點類似, 其運算元同時為 索引暫存器 + 基底暫存器, 以 @ 作為前置符號 索引定址法僅適用於 ROM ( 程式記憶體 ), 而且只能讀出, 不能寫入 所得的值即是運算元所在的位址 常以 ACC 為索引暫存器,PC 或 DPTR 為基底暫存器 如 : 索引定址法 MOV DPTR,#70H ;DPTR=70H MOV A,#0 ; 令 ACC=0 MOVC A,@A+DPTR ; 取得 ROM 位址 70H 的資料 (90H) MOV DPTR,#TABLE ; 若 TABLE 資料 :10,11 MOV A,#1 ; 令 ACC=1 MOVC A,@A+DPTR ; 取得 TABLE 的第 2 筆資料 (11=0BH) 7

位元定址法 位元定址法的運算元為 可位元定址 的位址, 如 PSW 20H~2FH P0 P1 8051 並非所有資料均可位元定址, 可做位元定址的資料包括狀態暫存器裡的進位旗標 資料暫存器的可位元定址區 (20H~2FH), 特殊暫存器裡的 P0 P1 P2 P3,TCON 暫存器,TMOD 暫存器 等 SETB 指令直接設定位元 (bit) 為 1 CLR 指令清除位元 (bit) 為 0 格式為 : 指令位址.x x=0~7 如 : 位元定址法 MOV PSW,#0FFH ; 方便以下觀察,PSW 位址 =D0H CLR C ; 清除進位旗標 =0,PSW.7 CLR F0 ; 清除自訂旗標 =0,PSW.5 SETB OV ; 設立溢位旗標 =1,PSW.2 SETB 21H.0 ;21H 可位元定址的第 0bit=1 CLR P0.2 ;P0 埠的第 2bit=0 MOV TCON,#0H ; 方便以下觀察,TCON 位址 =88H SETB TCON.5 ;TCON 特殊暫存器的第 5bit=1 8

堆疊存取指令 堆疊存取具有先進後出 (FILO) 或後進先出 (LIFO) 的特性, 有如光碟整理盒一樣, 先置入的光碟必然最後取出, 或最後置入的光碟一定最先被取出 8051 重置後的堆疊指標指向 07H, 堆疊指標暫存器英文簡稱為 SP(Stack Point Register), 指引資料進出的位址指標, 永達指向最上面的一筆資料 其位址位於 SFR 區的 81H 由於 07H 位址恰與第 1 組暫存器 RB0-R7 同位址, 使用時避免衝突, 一般會設在 30H 以後, 例如 :5FH, 指令為 : MOV SP,#5FH 資料存入堆疊 : 指令 :PUSH 操作順序為 : 先將 SP 指標上移一個位址,SP=SP+1, 再將資料存入 堆疊資料取出 : 指令 :POP 操作順序 : 取出資料, 再將 SP 指標下移一個位址 呼叫副程式 : 9

指令 :CALL 操作順序 : 1> 先將程式計數器值 PC 加 2( 指令長度 2Bytes), 代表副程式返回後繼續執行的位址 2> 將 PC 值推入堆疊 3> 將副程式進入點位址存入 PC, 代表下一步要執行的位址 4> 當副程式執行 RET 時, 將堆疊內的資料 POP 出來存入 PC, 繼續執行 堆疊存取 MOV SP,#5FH ; 設定堆疊指標 =5FH MOV A,#0AH ;ACC=0AH MOV 30H,#10H ;30H 位址存入 10H MOV 31H,#20H ;31H 位址存入 20H PUSH ACC ; 存入堆疊, 位址 =60H,0AH PUSH 30H ; 存入堆疊, 位址 =61H,10H PUSH 31H ; 存入堆疊, 位址 =62H,20H CALL DELAY ; 呼叫副程式, 返回位址存入堆疊 63H-64H POP 40H ; 取出資料, 存入 40H,20H POP 41H ; 取出資料, 存入 41H,10H POP ACC ; 取出資料, 存入 ACC,0AH ; 註 : 副程式返回位址, 存入 63H~64H,2 個位元組 PUSH ACC : 適用於 Keil C PUSH A : 適用於一般組譯器 10

11

資料交換指令 SWAP A: 累加器高位 4 位元交換 XCH A,Ri : 累加器與暫存器資料交換 XCHD A,@Ri : 累加器與暫存器間接位址低 4 位元交換 資料交換 MOV A,#12H ;ACC=12H MOV R0,#34H ;R0=34H MOV 21H,#56H ;(21H)=56H SWAP A ; 高低位元交換, 結果 ACC=21H XCH A,R0 ;ACC 與 R0 交換, 結果 :ACC=34H,R0=21H XCHD A,@R0 ;ACC 與 R0 所指位址 (21H) 內資料 56H 低 4 位元交換 結果 :ACC=36H,(21H)=54H 總結 : 定址法共有立即定址 暫存器定址 直接定址 間接定址 索引定址及位元定址, 立即定址 : 直接給予常數值, 譬如說, 你的獎品是 : 電視機 12

直接定址 : 直接給予位址, 譬如說, 你的獎品是 :1 號獎, 而 1 號獎取得就是電視機 間接定址 : 間接給予神祕位址, 而神秘位址取得仍是位址, 譬如說, 你的獎品是 : 神秘獎, 神秘獎取出內容為 1 號獎, 而 1 號獎就是電視機 暫存器定址 : 直接給予暫存器位址, 譬如說, 你的獎品是 : 校長獎, 而校長獎獎取得就是 電視機 類似直接定址 索引定址 : 間接拾予神秘位址及索引號碼, 譬如說, 你的獎品是: 神秘獎 2 號, 神秘獎的 2 號取出內容為 1 號獎, 而 1 號獎就是電視機 類似於間接定址 13