在8位单片机如何实现16位运算

我想问的是汇编语言的,实现乘法与除法运算,我知道是分高低8位来操作,但不知道具体怎么操作更有效
如果你是用C编译器,那么根本就不用考虑这个问题,因为编译器都迅行为你解决了,你只需要定义16位的变量(如int型)
但如果你是用汇编语言写程序,那谈昌源么就得为程序分配内存单元(字型变量),利用四个或四含态个以上的八位寄存器,先低八位进行运算,然后进行高八位的运算,但其中要注意状态寄存器的变化。
编写程序的时候,如果是汇编语言。要给每个参与运算的变量都设置好两个字节的空间。相加或想减的时候,低位对低位运算。有进位和借位的话,都会被置进位标志位(51单片机是CY,PIC是C,其他的单片机不清楚)。然后是高位和高位和进位标志位运算。
如果是祥历闹C语言或者basic语言,直接声明16位的整形变量烂腔,编译器会帮你设置好上述汇编的一系列运算。谨罩
3位数码管显示搜裂十唤漏慎进,最大是999,,4位数码管显示十和敬进,最大是9999

void display(unsigned int temp)
unsigned char qian,bai,shi,ge;

qian=temp/1000
bai=temp%1000/100;
shi=temp%100/10;
ge=temp%10;
LED_Data=table[qian];
LED1=0;
delay(1);
LED1=1;

LED_Data=table[bai];
LED2=0;
delay(1);
LED2=1;

LED_Data=table[shi];
LED3=0;
delay(1);
LED3=1;

LED_Data=table[ge];
LED4=0;
delay(1);
LED4=1;
}
3位数码管显示搜裂十唤漏慎进,最大是999,,4位数码管显示十和敬进,最大是9999

void display(unsigned int temp)
unsigned char qian,bai,shi,ge;

qian=temp/1000
bai=temp%1000/100;
shi=temp%100/10;
ge=temp%10;
LED_Data=table[qian];
LED1=0;
delay(1);
LED1=1;

LED_Data=table[bai];
LED2=0;
delay(1);
LED2=1;

LED_Data=table[shi];
LED3=0;
delay(1);
LED3=1;

LED_Data=table[ge];
LED4=0;
delay(1);
LED4=1;
}
8位单片机可以进行16位运算。8位是指数据传送是以8位。