+ -
当前位置:首页 → 问答吧 → 51汇编语句问题

51汇编语句问题

时间:2011-11-26

来源:互联网

从一段程序中摘抄几句
  FLAG EQU 38H
  。
  。
  SEC DATA 38H
  。 
  。
  SETB FLAG
  .
  .
  CLR FLAG

高手们,我不理解的是FLAG EQU 38H 和 SEC DATA 38H的地址不冲突吗?这两句到底有什么本质区别呢?EQU是“替换”的意思,DATA是数据存储器地址定义,那么后边 SETB FLAG 不是把地址38H置1吗,这和DATA的地址不就冲突了吗?为什么这段程序编译后执行正常呢?

作者: franklin0116   发布时间: 2011-11-26

FLAG是位寻址,即其Data地址从20H开始,一位即一个地址,比如位寻址的2H实际上就是data地址20H的第2位,即20H^2,10H就是22H的第1位,这样38H应该就是……(自己计算好了,但绝对不会是data地址38H的)
而SEC是普通寻址,38H就是实际Data地址的38H,与位地址无关。

作者: XSFGaoVictor   发布时间: 2011-11-27