第一个程序问题
本帖最后由 loop 于 2011-5-29 23:22 编辑assume cs:codesg
codesg segment
mov ax,0123H
mov bx,0456H
add ax,bx
add ax,ax
mov ax,4c00h
int 21H
codesg ends
end
虽然小甲鱼老师讲的很明白了可是我还有点迷惑 尤其是学到后边的循环时候我就更困惑了。 反过来想应该是第一个程序没搞定 还是来请教大牛们一下 比如说前面定义的是一个assume cs:****
*****,segment
此处代码省略。。。
***ends
end
我想问一下就是那个***是不是只是个名字 如果我改成别的可以吗? 还有后来学到哪里忘了就是程序代码前面为什么要有个start(单词忘了)开头然后最后又出现start end结尾的呢? 是不是*** ends是代码段的结尾? 而*** end是整个程序的结尾呢? 你所说的***只是个名字而已,可以随便改。 而像定义为codesg可以很清楚的知道是个代码段
start是程序的入口
ends可以是代码段的结尾,也可以是数据段,栈段的结尾
end是程序结束
end start也指明了程序的开始是从start位置 start也可以随便改,只要你最后END后面加上程序入口的位置就可以了。 assume cs:codesg
codesg segment
start: mov ax,0123H
mov bx,0456H
add ax,bx
add ax,ax
mov ax,4c00h
int 21H
codesg ends
end start 同学最好是先学C再学汇编 asd82937121 发表于 2011-5-25 09:41 static/image/common/back.gif
同学最好是先学C再学汇编
不行 C语言是好学一点但是我的指针和数组的概念模糊的很 可是我发现汇编中的物理地址形成和C语言中的准真有点类似现在还在漫无目的的学习中不过我只学两门语言 就是汇编和C winddyj 发表于 2011-5-25 09:40 static/image/common/back.gif
assume cs:codesg
codesg segment
start: mov ax,0123H
哦是我程序写反了是不是那个start end就是整个编译器的执行结束呢? 是的,end标识了程序的结束,也同时标识了程序应该从start处开始 winddyj 发表于 2011-5-25 22:03 static/image/common/back.gif
是的,end标识了程序的结束,也同时标识了程序应该从start处开始
恩 谢谢 终于弄懂了可以继续往下学习了{:soso_e130:}
页:
[1]