前言
(没有前言,因为写不出来)
段是什么
我们的程序在运行的时候,需要调用各种数据,这些数据在内存中,如果和代码混在一起,那么显然,调用会十分麻烦,代码则极度混乱。
段的出现就是为了解决这个问题。字面意思理解段,就是把程序分成“一段一段”,每段有自己的用处。8086CPU中,有三种段:代码段(存放你程序的代码)、栈段(作为栈使用,通常只有一段)、数据段(存放你的静态资源,即长文本、图片、视频)。
如何使用段
汇编语言中,用segment和ends分别表示段的开始与结束。格式如下:
段名 segment
段内代码
段名 ends在汇编中,可以直接引用段名代表引用其段地址,以下语句是合法的:
mov 寄存器,段名通常情况下,我们会用三组寄存器来标记三个地址:CS:IP标记代码段,DS:BX标记数据段,SS:SP标记栈段,CPU以这三组寄存器为依据来确定操作对象。
由此,我们只需要改变这些寄存器的内容,即可以改变CPU的操作对象。
需要注意的是,对于CS:IP,我们无法使用mov直接改变其值,而应使用jmp等转移指令。
























