单片机汇编的问题

来源:百度知道 编辑:UC知道 时间:2024/06/09 12:12:22
我是一个单片机初学者,有一个求平方值的程序我看不懂啊,在这里向各位大侠求助!
有一个变量存放在片内RAM的20H中,其取值范围为:00H—05H,要求编制一段程序,根据变量值得到变量的平方值,并将其存放在片内RAM的21H单元。

程序如下:
ORG 1000H
START:MOV DPTR,#2000H
MOV A,20H
MOVC A,@A+DPTR
MOV 21H,A
SJMP $
TABLE EQU 2000H
TABLE DB 00H,01H,04H,09,10H,19H
END
请教各位大侠,
其中的这段程序:
SJMP $
TABLE EQU 2000H
TABLE DB 00H,01H,04H,09,10H,19H
END
是什么意思?

SJMP $ 是跳转到本句的意思,因为CPU一旦上电就会不停的运作,当程序运行完毕就在原地打转。如果有操作系统的话,就不需要原地打转,只要返回操作系统就行了。
TABLE EQU 2000H 是指定以下列表的起始地址是2000H,
TABLE DB 00H,01H,04H,09,10H,19H 这是列表内容
END是程序结束伪指令,一定要有

SJMP $
跳转到本指令的地址,也就是说程序停止在这里了,走不出去了.
下边是说把这个表放到2000H这个地址