hero_qufei 发表于 2013-12-16 11:11:22

关于一个小程序中ds和cs的问题,求解答。。。

本帖最后由 hero_qufei 于 2013-12-16 13:03 编辑

最近在看王爽老师的汇编语言,之前写的程序都能满足cs段在ds段后10H处,但检测点9.1的第一小题调试了一下,如图,为何ds是0b2f,而cs是0b40呢?按我的理解cs应该在0b3f呀,想了好久没想明白。恳请各位高手解答,多谢!!

霸气外露 发表于 2013-12-16 17:24:20

帮你顶下,我只知道,PSP占用10H,是256个字节。但是你为什么占用了11H。你可以把代码复制到帖子上,我测试下。

生活! 发表于 2013-12-16 18:48:32

你把data段取消就对了

生活! 发表于 2013-12-16 19:17:30

本来是10H的 但是你加了data段 段中有dw 1,2 如果段中的数据占N个字节,则程序加载后,该段实际占有的空间为 ((N+15)/16)*16 。所以data占1个字节。所以是11H


flhy 发表于 2013-12-16 19:27:56

楼上正解{:1_1:}

hero_qufei 发表于 2013-12-16 22:14:35

霸气外露 发表于 2013-12-16 17:24 static/image/common/back.gif
帮你顶下,我只知道,PSP占用10H,是256个字节。但是你为什么占用了11H。你可以把代码复制到帖子上,我测试 ...

哦,好的,多谢啊!
assume cs:code

data segment
dw 1,2
data ends

code segment
start:mov ax,data
       mov ds,ax
       mov bx,0
       jmp word ptr
code ends
end start

hero_qufei 发表于 2013-12-16 22:20:02

生活! 发表于 2013-12-16 19:17 static/image/common/back.gif
本来是10H的 但是你加了data段 段中有dw 1,2 如果段中的数据占N个字节,则程序加载后,该段实际占有的空间为 ...

多谢!经调试终于弄明白了,我脑残了,竟然忘记0b3f:0010就是0b40:0000,哎,自学压力大呀。。。。谢谢提醒!!感激!

hero_qufei 发表于 2013-12-16 22:21:20

flhy 发表于 2013-12-16 19:27 static/image/common/back.gif
楼上正解

多谢多谢!

生活! 发表于 2013-12-16 22:48:25

我也新手!
页: [1]
查看完整版本: 关于一个小程序中ds和cs的问题,求解答。。。