回覆列表
-
1 # punap32390
-
2 # 使用者5754426002080
很好處理呀,首先這個表應該做成16位的,用C的話就簡單了,下面用匯編做個示範:
DEAL:
MOV DPTR,#TAB
MOV A,R0
RLC A
JC DEALH
PUSH ACC ;X
MOVC A,@A+DPTR
MOV R2,A
POP ACC
INC A
MOVC A,@A+DPTR
MOV R3,A
RET
DEALH: ;當X大於127時的處理,此時DPH+1
INC DPH
PUSH ACC
MOVC A,@A+DPTR
MOV R2,A
POP ACC
INC A
MOVC A,@A+DPTR
MOV R3,A
RET
;表你自己補充全
TAB:
DW 0,1,4,9,16,25,36,49,64,81,100
DW ...............
很好處理呀,首先這個表應該做成16位的,用C的話就簡單了,下面用匯編做個示範:DEAL:MOVDPTR,#TABMOVA,R0RLCAJCDEALHPUSHACC;X<128時直接查表MOVCA,@A+DPTRMOVR2,APOPACCINCAMOVCA,@A+DPTRMOVR3,ARETDEALH:;當X大於127時的處理,此時DPH+1INCDPHPUSHACCMOVCA,@A+DPTRMOVR2,APOPACCINCAMOVCA,@A+DPTRMOVR3,ARET;表你自己補充全TAB:DW0,1,4,9,16,25,36,49,64,81,100DW...............