单片机小编程题

来源:百度知道 编辑:UC知道 时间:2024/07/06 19:39:24
设在片内RAM的20H单元有一数,其值范围为0到100,要求利用查表法求此数的平方值,并把结果存入片外RAM的20H和21H单元(20H单元中为低字节),试编写出相应的程序。
这个51系列8位单片机,由于这个数太大,超过了15(15*15=255),所以我不会编。还请高手帮忙用汇编语言编下。。。

ORG 0400H
MOV R0,#20H
MOV R1,#21H
MOV R2,#20H
MOV A,@R0
ADD A,@R0
MOV R3,A
ADD A,#08H
MOVC A,@A+PC
MOVX @R1,A
MOV A,R3
ADD A,#04H
MOVC A,@A+PC
MOVX @R2,A
SJMP $
ASCTAB: DB OOH,00H,00H,01H,00H,02H................
DB 27H,10H
后面的表就按照以下编排就是了:
两个字节一组,按照低字节-高字节-低字节-高字节-......来排列
空间肯定是够了的,100*2个字节的大小

我以前学过,不知正确否,请指教

最大的数100的平方值才10000而已,因此该表格可以用202个字节来分别表示0到100的平方值,两个字节一组,按照低字节-高字节-低字节-高字节-......来排列,后面的程序就是要看片内20H中的数有多大,然后用该数乘以2的加上2的结果,作为表格中所求平方值的入口地址,读取该数并将这两个字节分别存入20H和21H两个单元。

你好C语言还是汇编?