发布于 2011-01-06 10:21:41
8楼
不用说,楼主的语句肯定是错误的。其中 L DBW [MD 102]一句,就是要将DB100.DBW*中的数据装入累加器,在CPU执行这个语句时,先将MD 102内的值移到地址寄存器,然后再进行寻址,装载数据。我们来看,第一次执行时,MD102的值为16#1,移到地址寄存器后指的是第2个位(MD102的值为16#0时,移到地址寄存器后指的是第首位),而语句要求的是按字进行寻址,显然是错误的。
其实,发生这个错误的关键是对地址寄存器不理解。地址寄存器为32位,其中前三位为位地址,从第四位开始才是字节地址。因此,做为字寻址地址的MD102,必须确保前三位为0,这就是为什么在给MD102赋值时我们通常会执行SLD 3指令的原因。
好好生活,天天向上!