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, axadd ax, ax// (5)程序返回mov ax, 4c00Hint 21H
abc ends
end // (3)指出程序在何处结束
4.2.5 程序返回
// 程序返回指令举例,本章暂时只需要记忆这两条指令即可
mov ax, 4c00H
int 21H // 必须输入H才能通过,int可以理解为interrupt
4.3 编辑源程序
参考blog
【王爽《汇编语言(第4版)》笔记】第4章:第一个程序_操作系统的外壳 王爽-CSDN博客