汇编网首页登录博客注册
scuzg的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
友情链接

[2009-08-10 22:18] 汇编语言源程序框架结构和格式规范

作为符号化机器语言及受段结构的影响,汇编语言源程序的结构和可读性都无法和高级语言相比。不过把汇编语言源程序共有的元素剥离出来,并稍加整理和熟悉,会发现情况会比先前清晰很多。
    汇编语言源程序大致包含下列 6 个“框架”元素:

;①容量足够且固定的“通用”堆栈段:
stck    segment stack 'stack'
        ;80H的栈深度足以应付一般应用程序对堆栈的需求 
        dw         80h dup(0)         
stck    ends 

;②空数据段
data    segment 

data    ends 

;③代码段
code    segment         
        ;④段声明语句
        assume  cs:code,ds:data,ss:stck  
        
main:   ;④定位数据段                 
        mov        ax,data        
        mov        ds,ax 
                                                                
        ;功能代码区


        ⑤;程序结束、退出
        mov        ah,4ch 
        int        21h 
SubProc proc 
        ;在堆栈保存子程序将用到的寄存器的内容

        ;子程序功能代码区

        ;从堆栈恢复子程序用到的寄存器的内容
        ret 
SubProc endp 
code    ends
        ;⑥指定程序运行起点 
        end        main
        
    其实所谓汇编语言源程序的“框架”元素,不外乎是一些伪指令和指令语句,不过我们会发现,如果我们理解、熟悉了上述框架元素,那么每次编程几乎都可以用一样的方式开始:复制上述框架,然后根据程序需求做两件事情:
    ①在数据段定义变量和常量;
    ②在代码段功能代码区编程。
    这是不是和 C 语言的函数编写有些接近了?
    
    另外就是源程序的格式规范问题,希望初学朋友在意。初学编程时往往忽视源程序的格式及必要的注释,特别是汇编语言源程序,如果没有清晰的格式和必要的注释,将使程序的调试、维护和升级付出毫无价值的巨大代价。在稍具规模的公司,源程序格式要求是公司软件作业规范的重要内容之一,是程序员必须遵守的技术纪律,因此从一开始就养成良好的编程风格是非常必要的。
    就我个人经验,汇编语言的源程序格式规范大致包含下述主要内容:
    ①指令语句的符号地址、伪指令语句的符号名从行首开始书写:
    ②指令和伪指令缩进8列开始书写;
    ③操作数从16列开始书写,多个操作数用逗号分隔;
    ④功能关联的语句段间用空行分隔;
    ⑤注释从32列开始书写,一般以语句段为单位进行注释;
    ⑥标识符要尽量具备“望文生义”的效果,增加代码的可读性。
    上一篇《类似DOS功能调用09H的字符串显示子程序》文中的示例可供参考。由于网页篇幅的限制,注释不得已写到了被注释的功能相关语句的上方,这和上述规则有点出入。
评论次数(7)  |  浏览次数(2041)  |  类型(汇编语言) |  收藏此文  | 

[  younggay   发表于  2009-08-11 11:13  ]

对于汇编语言的框架,在看王爽的《汇编语言》之前,assume 语句总是卸载code段里的最开始,当时没什么感觉,不过之后看了王爽的将assume语句放到了程序的最开始,而且,不在任何段内,突然有个疑问?这个assume到底写才是规范的框架呢?王爽的形式和其他人的形式,从道理上来说,哪个更好呢?个人觉得王爽的assume的写法使程序结构更清晰,但是,目前来看,所有教材中只有他是这样写的。楼下怎么认为?

[  scuzg   发表于  2009-08-11 12:52  ]

assume 语句可放在使用段名之前任何单独的行;作为代码段的第一条语句可能是一种习惯。

[  游客   发表于  2009-08-26 16:52  ]

不知道训练营到底是怎么回事,为什么半年多了也没动静,办不下去的话也请管理员通知大家。

[  scuzg   发表于  2009-08-26 20:37  ]

是。个人认为论坛目前的状况,和王爽老师的名气及教材的美誉度不配,最重要的是不能给初学者提供有效积极的帮助,急需改进。

[  游客   发表于  2009-08-27 11:48  ]

的确急需改进

[  游客   发表于  2011-01-07 11:01  ]

刚发现....

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码