[問題] 8051的一小段程式

看板Programming作者 (" Mr.ㄨㄞ ")時間15年前 (2008/11/21 00:17), 編輯推噓2(208)
留言10則, 4人參與, 最新討論串1/1
最近在研究好幾年前摸過的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
0A0h 那行跟前一行是檢查 command (R0)
11/21 02:08, 1F

11/21 02:09, , 2F
是否落在 A0 - A7 的範圍內
11/21 02:09, 2F

11/21 02:10, , 3F
DPH是 8-bit沒錯, 就是DPTR的 high byte
11/21 02:10, 3F

11/21 02:12, , 4F
要擴充command要做兩件事:
11/21 02:12, 4F

11/21 02:13, , 5F
(1) 修改 _PMC2_C: 那段讓新增的
11/21 02:13, 5F

11/21 02:14, , 6F
command可進至_PMC2_CC:
11/21 02:14, 6F

11/21 02:15, , 7F
(2) 新增 _6C_AxCMD_TBL: 的 table
11/21 02:15, 7F

11/21 07:59, , 8F
某間公司的筆試題目.我寫好了.你要買嗎?
11/21 07:59, 8F

11/21 08:07, , 9F
我也收到過 XD
11/21 08:07, 9F

11/21 13:11, , 10F
謝謝解答,這的確是公司題目,我只是研究
11/21 13:11, 10F
文章代碼(AID): #199OsHj0 (Programming)