用单片机汇编语言编写1+2+3 +‥‥‥+99+100的求和运算程序, 结果用十进制显示在单片机实验系统数码管上。

2024-11-26 04:43:51
推荐回答(4个)
回答1:

用C语言可以实现的代码如下:

#include
typedef unsigned int uint;
typedef unsigned char uchar;
uchar smgcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x82,0xf8,0x80,0x90,0xff};//共阳数码管
uchar smgbit[]={0xfe,0xfd,0xfb,0xf7};
uchar value[]={0,0,0,0};
void delay(uint x)//延时函数
{
uchar i;
while(x--)for(i=0;i<120;i++);
}
void main(void)
{
uchar i,j;
uint s=0;
for(i=1;i<=100;i++)
s+=i; value[0]=s;
value[1]=s0/10;
value[2]=s00/100;
value[3]=s000/1000;
while(1)
{
for(j=0;j<4;j++)
{
P1=smgbit[j];
P2=smgcode[value[j]];
delay(10);
}
}
}

回答2:

设AX=1 BX=0 AXX =0 BXX=0
LOOP:
MOV A,AX
ADD A,BX
DAA BX ;AX+BX换做10进制放入BX
MOV A,AXX
ADC A,BXX
DAA BXX ;AXX带进位标志+BXX换做10进制放入BXX
mov A,1H
ADD A,AX
DAA AX 递增AX(10进制)
MOV A,00H
XOR A,AX
SNZ Z AX=0结束 ≠0循环
JMP LOOP
END

回答3:

用c来写简单

回答4:

我知道