当前位置:  开发笔记 > 编程语言 > 正文

MASM(8086)汇编语言行延续

如何解决《MASM(8086)汇编语言行延续》经验,为你挑选了1个好方法。

我正在学习8086的汇编语言,我想知道是否有一个行继续符,例如:

    mov ah,\
    09
    mov dx,offset msg
    int 21h

我曾经读过,'\'符号用于行继续但我在MASM中出错,因为'\'符号不起作用.



1> Cody Gray..:

在MASM 5.1中引入了行继续符.它是单个反斜杠字符(\),必须作为行上的最后一个非空格字符放置.这与您在问题中建议的语法基本相同,将单个逻辑行分解为两个或更多物理行.

从MASM 6.1开始(可能是6.0;我找不到该版本手册的副本),您可以在行继续反斜杠之后放置注释.这些被有效地视为空格,允许您编写如下代码:

mov ah,  \          ; continue onto the next line
    09
mov dx, offset msg
int 21h

但我同意评论者的意见 - 这不太可能提高代码的可读性.我用汇编语言编写了很多代码,但从未发现需要这样做.汇编语言助记符足够短,以至于我无法想象为什么即使在保持80列宽度的情况下你也会用尽指令.

另请注意,在MASM 6.1中,初始值设定项中的尾随逗号表示该行继续到下一行.因此,以下声明是合法的:

EvenNumbers DB  02h, 04h, 06h, 08h,
                0Ah, 0Ch, 0Eh, 0Fh

OutputStr DB  "Hello ",
              "world!"

这是第二行包装可能有意义的唯一地方,并且支持它而不需要繁琐的语法.

此版本还将每行的最大字符数从128增加到512.实际上没有理由使用早于6.1的MASM版本.即使你需要编译分段的DOS程序,MASM 6.1也会这样做,并且与用MASM 5.1编写的旧程序完全兼容.

无论如何,如果一位教练在考试中询问这种类型的语法esoterica,他们实际上是在问题方面刮掉桶底.如果你对其他一切都了如指掌,以至于你担心这一点,那么你就要考试了.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有