有几个问题想问下高手
问题一:codesegment
mov ax,4c00h
int 21h
start : movax,0
:
:
:
从上面的代码中,第一条指令是指movax , 4c00h,还是start : movax,o?
问题二:运行程序时,是先把程序全部加载到内存后,CPU才开始执行的吗?谢谢了 本帖最后由 莫名其妙 于 2012-3-5 16:10 编辑
第一条指令是指movax , 4c00h,还是start : movax,o?
首先 这个程序的代码段开始地址也就是 cs:ip=cs:0000mov ax,4c00h是他的第一条指令没错 但是程序结尾的时候
有end start这个就表示程序开始执行是从标号start处开始执行就是执行 mov ax,0
当然如果只有 end 后面没有跟标号那么程序从cs段 ip为0000处执行
如果你用debug 对这段程序进行调试你就会发现 当你进入以后r的第一次 程序执行的是mov ax,0他的cs:ip 是 cs:0005
这些指令全部送入内存后系统会自动找到代码结尾处的end 来找到程序开始执行的第一条语句
你后面没发有没有标号只能这样跟你解释
小甲鱼老师的视频有专门提到这个end +标号的地方 注意看视频
莫名其妙 发表于 2012-3-5 15:58 static/image/common/back.gif
第一条指令是指movax , 4c00h,还是start : movax,o?
有点开窍了,非常感谢你! 本帖最后由 莫名其妙 于 2012-3-5 21:01 编辑
eertert 发表于 2012-3-5 20:53 http://bbs.fishc.com/static/image/common/back.gif
有点开窍了,非常感谢你!
共同学习共同探讨共同进步!~
页:
[1]