- 9
- 0
- 约4.8千字
- 约 36页
- 2017-09-10 发布于江苏
- 举报
6.3 将数据、代码、栈放入不同的段 ② 我们在源程序中用伪指令 “assume cs:code,ds:data,ss:stack”将cs、ds和ss分别和code、data、stack段相连。 这样做了之后,CPU是否就会将 cs指向 code,ds 指向 data,ss 指向stack,从而按照我们的意图来处理这些段呢? 6.3 将数据、代码、栈放入不同的段 当然也不是,要知道 assume 是伪指令,是由编译器执行的,也是仅在源程序中存在的信息,CPU并不知道它们。 我们不必深究 assume 的作用,只要知道需要用它将你定义的具有一定用途的段和相关的寄存器联系起来就可以了。 6.3 将数据、代码、栈放入不同的段 ③ 若要CPU按照我们的安排行事,就要用机器指令控制它,源程序中的汇编指令是CPU要执行的内容。 6.3 将数据、代码、栈放入不同的段 CPU如何知道去执行它们? 我们在源程序的最后用“end start”说明了程序的入口,这个入口将被写入可执行文件的描述信息,可执行文件中的程序被加载入内存后,CPU的CS:IP被设置指向这个入口,从而开始执行程序中的第一条指令。 标号“start”在“code”段中,这样CPU就将code段中的内容当作指令来执行了。 6.3 将数据、代码、栈放入不同的段 我们在code段中,使用指令: mov ax,s
原创力文档

文档评论(0)