注册 登录
编程论坛 汇编论坛

王爽汇编书上的一个问题,有点疑惑

haolly 发布于 2011-12-01 15:46, 871 次点击
程序代码:
assume cs:cde,ds:dta,ss:stk
dta segment
    dw 0123h,0456h,0789h,0987h,0abch,0fedh,0edfh,0defh
dta ends
stk segment
    dw 0,0,0,0,0,0,0,0
stk ends
cde segment
start:mov ax,stk
        mov ss,ax
        mov sp,16
      

        mov ax,dta
        mov ds,ax
      

        push ds:[0]
        push ds:[2]
        pop ds:[2]
        pop ds:[0]
      

        mov ax,4c00h
        int 21h
      

cde ends
end start

设程序加载后,code段的段地址是X,则data段的段地址是______
stack段的段地址是______
网上有答案说是X-2,X-1
不能理解,求解释
PS.这是我想的:data段地址应该放在ds之中的,
栈段地址应该放在ss之中,
代码段在cs之中。
我用debug加载后是这样的:
ds:15C8
SS: 15D8
CS: 15DA
如果cs为X的话,那么data段地址就是X-13,stack段地址就是X-3,不知道对不?



[ 本帖最后由 haolly 于 2011-12-1 20:43 编辑 ]
7 回复
#2
zaixuexi2011-12-01 16:19
1. edit your code : end -> end start
2. compile -> link -> debug
3. think it over & over
#3
haolly2011-12-01 20:44
回复 2楼 zaixuexi
什么意思?
#4
zaixuexi2011-12-01 21:17
1. 修改你的代码end -> end start
2. 编译好了以后,再看debug
3. 根据debug的结果,自己先想一想
4. X-2,X-1这个答案是对的

这下说的够明白了吧
#5
zaixuexi2011-12-01 21:33
F:\>debug cc.exe
-t 4

AX=0B6F  BX=0000  CX=0042  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=0B5E  ES=0B5E  SS=0B6E  CS=0B70  IP=0003   NV UP EI PL NZ NA PO NC
0B70:0003 8ED0          MOV     SS,AX

AX=0B6F  BX=0000  CX=0042  DX=0000  SP=0010  BP=0000  SI=0000  DI=0000
DS=0B5E  ES=0B5E  SS=0B6F  CS=0B70  IP=0008   NV UP EI PL NZ NA PO NC
0B70:0008 B86E0B        MOV     AX,0B6E

AX=0B6E  BX=0000  CX=0042  DX=0000  SP=0010  BP=0000  SI=0000  DI=0000
DS=0B5E  ES=0B5E  SS=0B6F  CS=0B70  IP=000B   NV UP EI PL NZ NA PO NC
0B70:000B 8ED8          MOV     DS,AX

AX=0B6E  BX=0000  CX=0042  DX=0000  SP=0010  BP=0000  SI=0000  DI=0000
DS=0B6E  ES=0B5E  SS=0B6F  CS=0B70  IP=000D   NV UP EI PL NZ NA PO NC
看到结果了,自己想一想,熟练了根本不用看结果,一看代码就知道了
你可以再想一想,为什么书上会在这一章出这道题,是不是书上之前提到的知识点已经完全掌握了?还是没掌握就过去了?还是看的不仔细?还是书写的不好?
什么叫总结经验,这就是总结经验(我怎么屁话肿么多?强烈鄙视下自己...)
#6
haolly2011-12-02 17:07
回复 5楼 zaixuexi
谢谢。斑斑真给力。
这个我懂了。
#7
zaixuexi2011-12-03 09:29
结贴!
#8
powlin19912012-03-22 09:01
以下是引用zaixuexi在2011-12-1 21:33:01的发言:

F:\>debug cc.exe
-t 4

AX=0B6F  BX=0000  CX=0042  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=0B5E  ES=0B5E  SS=0B6E  CS=0B70  IP=0003   NV UP EI PL NZ NA PO NC
0B70:0003 8ED0          MOV     SS,AX

AX=0B6F  BX=0000  CX=0042  DX=0000  SP=0010  BP=0000  SI=0000  DI=0000
DS=0B5E  ES=0B5E  SS=0B6F  CS=0B70  IP=0008   NV UP EI PL NZ NA PO NC
0B70:0008 B86E0B        MOV     AX,0B6E

AX=0B6E  BX=0000  CX=0042  DX=0000  SP=0010  BP=0000  SI=0000  DI=0000
DS=0B5E  ES=0B5E  SS=0B6F  CS=0B70  IP=000B   NV UP EI PL NZ NA PO NC
0B70:000B 8ED8          MOV     DS,AX

AX=0B6E  BX=0000  CX=0042  DX=0000  SP=0010  BP=0000  SI=0000  DI=0000
DS=0B6E  ES=0B5E  SS=0B6F  CS=0B70  IP=000D   NV UP EI PL NZ NA PO NC
看到结果了,自己想一想,熟练了根本不用看结果,一看代码就知道了
你可以再想一想,为什么书上会在这一章出这道题,是不是书上之前提到的知识点已经完全掌握了?还是没掌握就过去了?还是看的不仔细?还是书写的不好?
什么叫总结经验,这就是总结经验(我怎么屁话肿么多?强烈鄙视下自己...)

请问下版主,是如何把这个弄成文本形式的哈?
1