鱼C论坛

 找回密码
 立即注册
查看: 2779|回复: 6

实验五的变种求解答

[复制链接]
发表于 2011-12-16 21:15:16 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 zh_nan2012 于 2011-12-19 21:42 编辑

在程序开始有“assume ss:stack”。然后程序中有mov ax,stack。我用debug调试的时候,在开始加载上程序后(debug *.exe),的到的ss的数值怎么和程序运行到mov ax,stack是stack的数值不一样???
ss=1434,stack转换成地址却是1435????????????搞不懂,不是一开始assume关联这两个的数值不应该一样么???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-17 00:12:01 | 显示全部楼层
就算在开头定义了ss:stack,在程序中也要做mov ax,stack  mov ss,ax这一步
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-18 18:28:01 | 显示全部楼层

我明白,assume ss:stack 是为了程序可读设定的。但我现在不明白的是:用-r 指令查看ss的数值和在程序中cpu将标号stack转化得地址并非相等?为什么?
程序一开始用assume ss:stack

我原来的理解应该是“比如我一开始用-r查看ss=1434”那么我用-t 命令执行mov ax,stack这条指令时应该翻译成“mov ax,1434 ”,但为什么实际是“mov ax,1435“。搞不明白。高手指点下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-18 23:31:14 | 显示全部楼层
我懂你的意思了,我表达不是很好,写两个代码你就清楚了。你的程序是从assume开始的,而不是从代码段开始的。
  1. assume cs:codesg,ss:stacksg

  2. stacksg segment      
  3.   dw 0,0,0,0,0,0,0,0
  4. stacksg ends

  5. codesg segment
  6. start:  mov ax,stacksg
  7.              mov ss,ax
  8.                  
  9.              mov ax,4c00h
  10.          int 21h
  11. codesg ends
  12. end start

  13. assume cs:codesg,ss:stacksg,ds:data

  14. data segment      
  15. db 'Hello world!',0
  16. data ends

  17. stacksg segment
  18.   dw 0,0,0,0,0,0,0,0
  19. stacksg ends

  20. codesg segment
  21. start:  mov ax,stacksg
  22.              mov ss,ax
  23.                  
  24.              mov ax,4c00h
  25.          int 21h
  26. codesg ends
  27. end start
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-19 21:32:27 | 显示全部楼层
api 发表于 2011-12-18 23:31
我懂你的意思了,我表达不是很好,写两个代码你就清楚了。你的程序是从assume开始的,而不是从代码段开始的 ...

奥,原来如此,小弟受教了。thanks
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-21 04:02:34 | 显示全部楼层
学的好仔细啊 我都没注意到这个情况
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-23 15:32:56 | 显示全部楼层
心動の軌跡 发表于 2011-12-21 04:02
学的好仔细啊 我都没注意到这个情况

我理解能力不是很好,没看明白你那2个程序,上面和下面有啥区别,为什么说一个是从assume开始的,一个是从代码段开始的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-22 09:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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