当前位置:编程学习 > 汇编语言 >>

请教汇编高手

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汇编处理有符号乘除的问题
下一个:汇编问题

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,