【问题标题】:long assembly code problem长汇编代码问题
【发布时间】:2010-12-17 12:45:27
【问题描述】:

我有一个汇编程序,但是当我添加一些代码行时,它会变得混乱。 例如,当我在此程序工作时添加一个新程序时,整个程序会卡在某个点,就像它没有完成程序但停留在特定点一样。当我添加一些不影响程序的命令时也会发生同样的情况,就像代码开头的一些 mov [300h],00h。

知道如何解决这个问题吗? 我读过 jmp 命令只能跳转 128 个地址范围。真的吗?我可以绕过这个吗? 我已经看到一些程序有一个“接近”的扩展。喜欢

  • 测试过程接近
  • mov al,[0300h]
  • ...
  • 回复
  • 测试结束

那是怎么回事?这可以帮助我吗?谢谢!

【问题讨论】:

    标签: assembly


    【解决方案1】:

    首先,mov [300h],00h 不会影响程序。它可以很好地修改你的代码,所以不要这样做!

    其次,只有条件跳转(Jcc)对-128..+127地址范围有这个限制,所以如果你认为分支太远,那么就不要

    JE some_far_label
    

    使用

    JNE skip1
    jmp some_far_label
    skip1:
    

    如果您还有其他问题,请发布一些代码。

    编辑:mov byte [300h], 0 可能会覆盖您的代码。如果您使用的是汇编程序,则为变量分配空间:

    var1 db 0
    

    【讨论】:

    • 非常感谢。有什么参考资料可以让我阅读有关此类场合的更多信息吗?例如 mov [300h],00h 如何影响我的代码?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 2012-07-13
    相关资源
    最近更新 更多