鱼C论坛

 找回密码
 立即注册
查看: 1505|回复: 3

call 标号以及段的问题

[复制链接]
发表于 2013-12-19 05:43:47 | 显示全部楼层 |阅读模式
3鱼币
  段:2002:0000-2002:FFFF物理地址即20020-3001F
  这两个地址,物理地址实际就是一前一后,同一个段
  2002:FFFF=3001F
  2003:FFEE=3001E

  假如这里我做个标号 s: 2003:FFEE=3001E
  如果我用call s
  call s 按小甲鱼说的实现的是段内跳转,这两组数的段地址明显不一样,那到底能不能跳转?如果能跳转就说明是段内跳转,
  也就是说是同一个段,如果不能跳转就说明这两组数的确是不同一个段,只是物理地址相邻而己?


是不是这样理解?
这个问题纠结了好长时间了~~求大虾指点~~

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-19 20:17:03 | 显示全部楼层
0:10 表示物理地址 10
01:0 表示物理地址 10
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-28 17:43:59 | 显示全部楼层
我看你对段地址有误解,物理地址一前一后不一定就在同一个段中,要看你的程序的实际情况来定。如果CALL指令后第一个字节的地址到标号S处的地址的位移大于32767个字节或小于负的32768个字节那就不能跳转了,这时可以采用段间转移了。说明白一点,如果CALL指令的下个字节地址到标号S处3001E地址的位移为32767个字节,那么第3001F单元就不能用段内转移了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-28 17:58:46 | 显示全部楼层
段地址并不是表示一个段,2002:FFFF=3001F=3001:F,      物理地址3001F的段地址是可以用多种表示方法的,它的段地址的取值范围可以是最小为2002到最大为3001中的任何一个数来表示:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-28 13:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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