王爽《汇编语言》第四章 笔记

4.2 源程序

4.2.1 伪指令

在汇编语言的源程序中包含两种指令:汇编指令、伪指令。
(1)汇编指令:有对应机器码的指令,可以被编译为机器指令,最终被CPU所执行。
(2)伪指令:没有对应的机器指令,最终不被CPU所执行;伪指令由编译器执行,编译器根据伪指令来进行相关的编译工作。

segment…ends

segment和ends的功能是定义一个段,segment说明一个段开始,ends说明一个段结束。

段名 segment
...
段名 ends
  • segment和ends是一对成对使用的伪指令。

  • segment和ends是在写可被编译器编译的汇编程序时,必须用到的一对伪指令。

  • 一个汇编程序是由多个段组成的,这些段被用来存放代码、数据或当作栈空间来使用。

  • 一个有意义的汇编程序中至少要有一个代码段。

end

end是一个汇编程序的结束标记,编译器在编译汇编程序的过程中,如果碰到了伪指令end,就结束对源程序的编译。

  • 写完程序要在结尾处加上伪指令end。否则编译器不知道程序在何处结束。

  • 区分end和ends:ends与segment成对使用,标记一个段的结束,ends可以理解为end segment;而end的作用是标记整个程序的结束。

assume

伪指令assume的含义是“假设”。它假设某一段寄存器和程序中的某一个用segment…ends定义的段相关联。

通过assume可以使编译程序将段寄存器和某一个具体的段相联系。

4.2.2 源程序中的“程序”

4.2.4 程序的结构

// 程序4.2:计算2的立方
assume cs:abc // (4)abc被当作代码段来用,所以应该将abc和cs联系起来
abc segment // (1)定义一个段,名称为abc,与结尾abc ends搭配使用
    // (2)在这个段中写入汇编指令
    mov ax, 2  
    add ax, ax
    add ax, ax
    // (5)程序返回
    mov ax, 4c00H
    int 21H
abc ends
end // (3)指出程序在何处结束

4.2.5 程序返回

// 程序返回指令举例,本章暂时只需要记忆这两条指令即可
mov ax, 4c00H
int 21H // 必须输入H才能通过,int可以理解为interrupt

4.3 编辑源程序

参考blog

【王爽《汇编语言(第4版)》笔记】第4章:第一个程序_操作系统的外壳 王爽-CSDN博客

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容