[問題] 8051的一小段程式
最近在研究好幾年前摸過的8051,找到了一個題目,
但是翻著書上指令集一個個對應,還是很難理解。
不曉得是否能幫幫忙呢?
不需要解出答案,大概解釋一下就好了。
程式如下
目前 function PMC2 ( 6Ch ) command only support A0-A7,若我想要增加
3 commands (R0=)10h, 11h, 12h, 該如何修改程式?
;---------------------------------------------------------------;
; PMC2 COMMAND ;
;---------------------------------------------------------------;
; Input : (R0) command ;
;---------------------------------------------------------------;
_PMC2_C:
MOV A,R0
ANL A,#F8h
CJNE A,#0A0h,_EXIT_PMC2 ;;取得6CH 埠 EC Command 分支
JMP _PMC2_CC ;;跳至_PMC2_CC
_EXIT_PMC2:
JMP EXIT_PMC2
_PMC2_CC:
MOV DPTR,#_6C_AxCMD_TBL
ANL REG0,#07h
MOV A,R0
ADD A,R0
ADD A,R0
JNC _6C_Ax_DONT_NEED_ADJ
INC DPH
_6C_Ax_DONT_NEED_ADJ:
JMP @A+DPTR
;;****************************************************************************
_6C_AxCMD_TBL:
LJMP _6C_A0 ;;取得系統處理器溫度'C值
LJMP _6C_A1 ;;取得環境溫度'C值
LJMP _6C_A2 ;;設定資料指標 Low Byte Address INDEX
LJMP _6C_A3 ;;設定資料指標 High Byte Address INDEX
LJMP _6C_A4 ;;取得Address INDEX資料指標指向資料值
LJMP _6C_A5 ;;變更Address INDEX資料指標指向資料值
LJMP _6C_A6 ;;驗證Address INDEX Low Byte (Verify A2H Command)
LJMP _6C_A7 ;;驗證Address INDEX High Byte (Verify A3H Command)
其中的0A0h是不是有什麼特殊意義呢?
還有DPH是不是一個8位元暫存器?
希望能幫忙解說,感激不盡!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.167.59.163
※ 編輯: yeeddt 來自: 218.167.59.163 (11/21 00:19)
→
11/21 02:08, , 1F
11/21 02:08, 1F
→
11/21 02:09, , 2F
11/21 02:09, 2F
→
11/21 02:10, , 3F
11/21 02:10, 3F
→
11/21 02:12, , 4F
11/21 02:12, 4F
→
11/21 02:13, , 5F
11/21 02:13, 5F
→
11/21 02:14, , 6F
11/21 02:14, 6F
→
11/21 02:15, , 7F
11/21 02:15, 7F
推
11/21 07:59, , 8F
11/21 07:59, 8F
推
11/21 08:07, , 9F
11/21 08:07, 9F
→
11/21 13:11, , 10F
11/21 13:11, 10F