org 0000h
mov 30h, #1
mov 31h, #3
mov 32h, #5
mov 33h, #7
mov 34h, #9
mov 35h, #2
mov 36h, #4
mov 37h, #6
mov 38h, #8
mov 39h, #10
call SQRT
sjmp $
;查表法求平方的程序如下。
SQRT:
MOV R0, #30H
MOV R1, #40H
MOV R2, #10
LOOP:
MOV A, @R0
ADD A, #S_TAB - ($ + 4)
MOVC A, @A + PC
MOV @R1, A
INC R0
INC R1
DJNZ R2, LOOP
RET
S_TAB:
DB 1, 4, 9, 16, 25, 36, 49, 64, 81, 100
;完
假设你的表是这样的 TAB:1 4 9 16 25 36 49 64 81 100
可以这样查,
MOV R3,#0AH
MOV R0,#30H
MOV R1,#40H
XY:MOV A,@R0
MOV DPTR,#TAB
MOV A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R3,XY
注意下,那个表是十进制的数,可以改成十六进制的,改不改就看你显示程序是怎么编的了
呵呵,网友 jingmingxie 看不懂好赖,就别出来丢人了。