(6)包含多个段的程序

1、定义

      db        define byte

      dw        define word

      dd         define dword(double word)



2、start  标明程序指令从这里开始

      code虽然定义为代码段,但这个是活动的,也可是存储数据,如果标明真正的代码开始的地方呢?start的后面就是。

      当然程序的最后就得用end start来结束。

     改其它行不?行!,因为编译器只认end XXXx后面的标号,这个标号就是真正执行位置。


3、为啥要划分这么多段?

      因为人类是要发展的,所有有规划,有了规划这样大家都看得明白,做事也方便。

     cs,ds,es就是基于这个目的,其实计算才不管你李刚,就只认一堆二进制,规划的目的就是你好检查错误,别人也好阅读。


4、一定要定义成codesg之类么?

      否,如3所说,随便什么标号都行,但要达到一个目的,你自己能懂,别人更要能懂!如:

     a    segment

              ..................

      a   ends

      这样也是可以的,但几年后,你能明白这个a是啥玩意?


5、段寄存器都是“孤家寡人”,它不会和平民(立即数)打交道,

      它只与大将(通用寄存器打交道),故: mov ds,23  ;错误

       mov ax,23

       mov ds,ax   ;正确



你可能感兴趣的:((6)包含多个段的程序)