鱼C论坛

 找回密码
 立即注册
查看: 3769|回复: 9

对第四章第一个程序的cs了解的不是很清楚。询问下。

[复制链接]
发表于 2011-5-18 18:13:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 郑小夕 于 2011-5-19 15:52 编辑

H9VIHM[L1{SO24EPELXLOGC.jpg
为什么要有CS:codesg 呢
我现在理解是把那个段 当作代码段。
换成别的
这里的意思(右图)就不一样了吗? Y{8H}YPU@QO6GQ@2KF_QRPR.jpg
大家帮我深度剖析一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-18 18:23:00 | 显示全部楼层
本帖最后由 sunhopp 于 2011-5-18 18:23 编辑

CS:codesg ,其中codesg只是定义的一个名称而以,可换成别的,如:name,但必须与 ends相对应!
CS:codesg 是告诉CPU 在codesg里的是的数据是代码类型!

评分

参与人数 1荣誉 +1 收起 理由
loop + 1 欢迎交流讨论,鱼C有你更精彩~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-18 19:43:13 | 显示全部楼层
这个视频上讲的很详细,看仔细点。个人见解是,如果你没CS的话,那么编译器怎么找到代码段?CPU怎么认识这是数据还是代码还是栈?

评分

参与人数 1鱼币 +1 收起 理由
loop + 1 欢迎交流讨论,鱼C有你更精彩~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-18 20:26:27 | 显示全部楼层
回复 王子 的帖子

我怎么感觉 他自己会识别啊啊。
如果把CS譬如换成 ds  

"mov ax,0123H
MOV BX,0456h
ADD AX,BX
ADD AX,AX"

意思就不一样了 是吗?
分别是啥意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-18 20:33:55 | 显示全部楼层
你可以试试,换了以后用debug调试。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-18 22:47:35 | 显示全部楼层
这里CS:CODE的作用是  让CPU把cs:ip 指向下面的第一条指令(当然这第一条指令之前没定义数据段、栈段) 如果不加 CS:CODE CPU就不知道第一条指令从哪个地方开始执行
例 如下指令:
assume          ;这里如果不把CODE 和 CS挂钩 CPU它就不知道CS:IP指向的是哪里,
code segment
mov ax,4454h
mov bx,1154h
add ax,bx
……………………
……………………

评分

参与人数 1荣誉 +1 收起 理由
loop + 1 欢迎交流讨论,鱼C有你更精彩~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-19 16:39:56 | 显示全部楼层

但是他后面一般有start去指定ip一开始指向的位置吧.....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-19 16:43:47 | 显示全部楼层
就像3楼说的..这个是伪指令那自然是给编译器看的...我觉得应该是告诉编译器从下面开始都是代码段...而不是数据段或者其他....

评分

参与人数 1鱼币 +1 收起 理由
loop + 1 欢迎交流讨论,鱼C有你更精彩~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-19 16:53:39 | 显示全部楼层
回复 daniel_c 的帖子

呵呵 我是针对楼主给出的代码  那代码很简单 而且 也没定义数据段 所以 不加 start:  标号 也是可以的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-19 17:33:55 | 显示全部楼层
郑小夕 发表于 2011-5-18 18:13
为什么要有CS:codesg 呢
我现在理解是把那个段 当作代码段。
换成别的

assume cs:codesg是一个伪指令,就是说是写给编译器来读的,cpu本身并不知道哪个段是代码段。。也不会把这些当作代码处理。
assume是假设的意思。。放在这里就是起到一个作用,这条指令告诉编译器把asm文本编译成exe文件并被执行的时候,将cpu寄存器cs:ip的值指向系统给下面这段代码分配的内存地址的开始。。

评分

参与人数 1荣誉 +1 收起 理由
loop + 1 欢迎交流讨论,鱼C有你更精彩~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 20:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表