当前位置: 代码迷 >> 汇编语言 >> 有哪位高手碰到过这个异常 -- Fatal Error C1603
  详细解决方案

有哪位高手碰到过这个异常 -- Fatal Error C1603

热度:6450   发布时间:2013-02-26 00:00:00.0
有谁碰到过这个错误 -- Fatal Error C1603
错误内容:
   
        fatal   error   C1603:   inline   assembly   branch   target   out   of   range   by   11   bytes


MSDN上解释:

        Fatal   Error   C1603

        Error   Message  
        inline   assembly   branch   target   out   of   range   by   'number '   bytes

        The   computed   distance   between   a   JCXZ   or   JECXZ   instruction   and   its   specified   target   label   was   greater   than   128   bytes.   Update   your   code   so   that   the   label   is   closer   to   the   instruction.

        对这个解释不是很理解,请大虾帮忙~



------解决方案--------------------------------------------------------
8086 的条件转移指令和 jcxz 指令的转移范围只是 [-128,127], 如果目标地址在超过了这个范围就是上面提及的错误了. 由于现在的 cpu 早已不是当初的 8086 了, 所以, 比较简单的做法就是使用 808386 级的指令, 对实模式它可以支持到 64K 范围的寻址:
.model small ; 可以
.386
  相关解决方案