单片机查表程序编写 急!

单片机查表程序编写 急!,第1张

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

// 希望能达到你的要求

ORG 0000H

LJMP MAIN

ORG 0003H

ORG 0030H

MAIN:

MOV SP,#30H 设置堆栈

MOV R2,#41H A的ASCII码

MOV R3,#50H 循环50次

MOV DPTR,#2000H 表首地址

MOV A,#00H

GOTO:

PUSH ACC

MOVC A,@A+DPTR

XRL A,R2

JZ CONTROL 如果是41H 则跳出保存

DJNZ R3,GOTO2 是否寻到了50H个地址 寻到了则退出(这时无有效的结果保存)_

LJMP EXIT

GOTO2:

POP ACC

INC A

AJMP GOTO

CONTROL:

POP ACCd出A 即低位地址

MOV R1,A

MOV DPTR,#2051H

MOVX @DPTR,A 存放低位地址

INC DPTR

MOV A,#20H

MOVX @DPTR,A 存放高位地址

EXIT:

END


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

原文地址:https://54852.com/yw/11087518.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存