查表指令编程

查表指令编程,第1张

是汇编语言还是c语言?什么程序啊?

汇编语言的查表很简单

MOV DPTR,#TAB ;数据表格地址TAB赋值给数据指针作为基址

MOV A,R0 ;把表格索引值R0(R0=0,1,2,3,4,5,6,7,表示表格里第几个数据)送A作为变址

MOVC A,@A+DPTR ;查表格中基址DPTR(即表格首地址)加上变址A(表格里第几个地址)里的和地址里的内容送到A

MOV P1,A ;将A里面查表所得结果送到P1口输出

……

TAB:3FH,06H,5BH,4FH,66H,6DH,7DH,07H,……

3F是表格里第0个数据,06是表格里第1个数据,5B是表格里第2个数据

例如:R0=2,那我们要查的是表格里第2个数据5B,DPTR中的基址是表格中第0个数据3F所在的地址,这个地址+2就是表格中第2个地址查得数据就是5B

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12097597.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存