请教汇编高手
num = ADC_DATA;
num = num << 2;
num = num + ADC_LOW2;
wen=num/1000;
du=num%1000/100;怎么样用汇编实现同样的功能
补充:求教啊,问题贴了一个多星期了,急啊!!!!,是用STC单片机汇编。我的目的:wen=num/1000是要去掉NUM的后三位数在放到WEN中,du=num%1000/100是是要去掉NUM的后二位数同时去掉NUM的前面所有的数在放到 DU中。
追问:NUM中的数有10进制的,按你那方法,假如NUM=123456,和11111000进行与运算会得什么结果?在我的理解中,与 运算只能在二进制与二进制这间运算吧我是用在单片机的,不过我的目的:wen=num/1000是要去掉NUM的后三位数在放到WEN中,du=num%1000/100是是要去掉NUM的后二位数同时去掉NUM的前面所有的数,只保第三位数放到DU中,
答案:用移位啊,哎~~~~
wen=num/1000是要去掉NUM的后三位数在放到WEN中
ANL WEN,#0F8H ;屏蔽后三位
MOV A,WEN
RR A ;右移三位
RR A
RR A
MOV WEN,A
du=num%1000/100是是要去掉NUM的后二位数同时去掉NUM的前面所有的数,只保第三位数放到DU中
ANL DU,#04H ;保留第三位
MOV A,DU
RR A ;右移两位
RR A
MOV DU,A
其他:??? 汇编,有很多种。 应该指定一种,才好翻译。 你的思路应该要转换,非要做“大数量级”的除法和取余吗?
你的程序想法应该是在"单片机"上应用的,单片机非要弄成"PC",会累死"单片机"的,嘿嘿!
上一个:关于8086汇编处理有符号乘除的问题
下一个:汇编问题