单片机汇编问题 非常急

来源:百度知道 编辑:UC知道 时间:2024/06/11 23:21:42
有个问题想不明白

已知A=A2H,CY=1,分析执行下列指令后,A和CY的值。
指令
RL A A=45H CY=1 不理解,A2H是10100010,左移后应是
10100000才对,应该是A0H才对,怎是45H呢,不明白。CY=1
也不明白。
RLC A A=45H CY=1 不理解。

很急,有合适的解答即结束问题!
详细怎么进位呢 还是不明白啊 如:10100010→01000101

这个很简单
第一个是不带进位左移
A2H=10100010
45H=01000101
记住不带进位左移则最高位的1又移入到最低位来了,是一个环行移位,CY不变,所以A=45H,CY=1。
第二个是带进位左移
A2H=10100010
45H=01000101
记住带进位左移则CY移入最低位,A的最高位移入CY,你可以将CY连同A一起看做是一个9位的,同样是环行移位,CY初始化时为1,A2H最高位也是1,所以A=45H,CY=1。
不是我打击你,如果这样你还理解不了,那你干脆放弃这门学科吧,你不适合。

RL,RLC是循环移位,不同于C里面的<<操作符。

10100010---->01000101,开始第8位的1被移到了第1位,其他各位向前进位

RLC是跟进位标志CY有关的循环移位
1 10100010 -----> 1 010000101 结果同上面相同,但是结果的那个1是CY里面的值,不是第8位的值

如果CY = 0
那就变成
0 10100010 -----> 1 01000100 了,请对比上面看

RL是左移,但是不包括CY, RLC是带CY左移
A2=10100010,左移(RL)之后是01000101,当然是45H了,CY不移动,所以还是1