看板 Programming 關於我們 聯絡資訊
最近在研究好幾年前摸過的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)
ksmrt0123:0A0h 那行跟前一行是檢查 command (R0) 219.68.71.218 11/21 02:08
ksmrt0123:是否落在 A0 - A7 的範圍內 219.68.71.218 11/21 02:09
ksmrt0123:DPH是 8-bit沒錯, 就是DPTR的 high byte 219.68.71.218 11/21 02:10
ksmrt0123:要擴充command要做兩件事: 219.68.71.218 11/21 02:12
ksmrt0123: (1) 修改 _PMC2_C: 那段讓新增的 219.68.71.218 11/21 02:13
ksmrt0123: command可進至_PMC2_CC: 219.68.71.218 11/21 02:14
ksmrt0123: (2) 新增 _6C_AxCMD_TBL: 的 table 219.68.71.218 11/21 02:15
lisztbach:某間公司的筆試題目.我寫好了.你要買嗎? 61.227.192.61 11/21 07:59
plover:我也收到過 XD118.160.174.227 11/21 08:07
yeeddt:謝謝解答,這的確是公司題目,我只是研究 211.21.92.45 11/21 13:11