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

求助!!!!

有容就大 发布于 2012-05-29 15:13, 542 次点击
下面是我写的一段汇编代码 可以执行的。
程序代码:
assume   cs:code, ds:data

data  segment

 buff dw 1234h, 0059h, 00ffh, -2, -0ah
data  ends
code  segment
start:
      mov ah, 23h
      lea bx, buff + 1
      mov al, BYTE ptr [bx + 1]
     
      mov ah, 4ch
      int 21h
code ends
end  start
我现在的目的是通过DEBUG命令来查看程序执行的情况

如图
只有本站会员才能查看附件,请 登录

我想查看 lea bx, buff + 1 究竟是把个什么东西传给了 bx 。怎么弄
为什么 上面显示 DS:0001 = FF20?
我使用 -d DS:0后是这个
只有本站会员才能查看附件,请 登录

为什么没一个和我开辟的buff里的内容相同(1234h, 0059h, 00ffh)?
12 回复
#2
zklhp2012-05-29 15:26
ds段没设成你定义的data段


#3
有容就大2012-05-29 15:38
我 试了下把 assume   cs:code, ds:data放在code  segment
后面 还是一样。


ds段没设成你定义的data段
这个怎么定义?
#4
zklhp2012-05-29 15:48
mov ax, seg data
mov ds, ax
#5
有容就大2012-05-29 15:55
回复 4楼 zklhp
搞的太急了 忘了基本的东西了。
#6
zklhp2012-05-29 15:58
如果对了分给我 不对你再问。。
#7
有容就大2012-05-29 16:02
好 100分给你 帮我看下a261935348朋友的那个帖子 好吗?
#8
有容就大2012-05-29 16:39
老大 再问个问题 怎么用debug命令 直接查看当前exe某个寄存器里面放的数(内容)?
比如要看 AX BX AL AH等一些寄存器的内容 怎么办 我用 -d ah 提示错误。
#9
zklhp2012-05-29 16:46
r
#10
zklhp2012-05-29 16:47
问这个说明没看过帮助 这很不好啊

-?
assemble     A [address]
compare      C range address
dump         D [range]
enter        E address

    fill         F range list
    go           G [=address] [addresses]
    hex          H value1 value2
    input        I port
    load         L [address] [drive] [firstsector] [number]
    move         M range address
    name         N [pathname] [arglist]
    output       O port byte
    proceed      P [=address] [number]
    quit         Q
    register     R [register]
    search       S range list
    trace        T [=address] [value]
    unassemble   U [range]
    write        W [address] [drive] [firstsector] [number]
    allocate expanded memory        XA [#pages]
    deallocate expanded memory      XD [handle]
    map expanded memory pages       XM [Lpage] [Ppage] [handle]
    display expanded memory status  XS
#11
有容就大2012-05-29 17:41
呵呵 这下知道不少了 谢谢。
#12
于祥2012-05-29 21:37
我竟然没看到,呜呜
#13
有容就大2012-05-30 10:19
回复 12楼 于祥
经常来逛逛 会有惊喜的
1