1.汇编语言中的start有什么用?
start就是一个标号,标志程序的入口而已,程序加载到内存之后CS:IP会指向这个标号,从START指向的指令开始运行
这个标号不一定是START,你也可以用MAIN,但在程序的最后要用END MAIN来提示程序结束
START也不一定在代码段的最前面,它的前面是可以有指令或数据的
例子(没有用start,用了main)(在代码段里放置变量是十分不规范的,这里只是为了举例):
assume cs:code
code segment
a db 0
b db 0
main:
mov ax,0
mov ax,4C00H
int 21H
code ends
end main
当然,start和main在汇编代码中也可以同时存在,看具体的需要而定。
2.汇编语言中START和MAIN有区别么?
没有区别,都是标号。叫什么都行
3.下面这段的来源:https://blog.csdn.net/lijun5635/article/details/7918392
·········································································································
start: 作为汇编程序的一个标号,定义了程序的入口,既程序从start:处开始执行。
若程序的第一条指令就是程序的入口,则start可以缺省。
start 使用结构如下:
start: \可以定义程序的入口 ,也可以仅仅作为一个标号来用
…
end start \定义程序段结束 (作为标号时,可以没有对应的end start)
其中 start 可以用其他字符代替,但是对应的end start 中的start也必须用同字符代替。
若第一个start缺省,则end start中的 start 也必须去掉。
········································································································
自己最近做汇编实验二时就发现,start可以仅仅作为一个标号来用,例如:jmp start 就表示跳到start指示的地方去,此时,程序中是可以没有end start的。书上也没有end start,但有end main
最后到底是end start还是end main,要看程序中的汇编指令倒底是从哪儿开始执行的,一般看assume伪指令下面的一行的main:还是start:就可以。