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 ;正确