| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 585 人关注过本帖
标题:一个简单的跳跃表问题 希望有人可以解答(有改动,详见三楼)
只看楼主 加入收藏
三达不溜
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-4-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
一个简单的跳跃表问题 希望有人可以解答(有改动,详见三楼)
就是把这几个数归类到几个等级的问题:

data    segment
grade    dw    56,69,84,82,73,88,99,63,100,80
s5    dw    0
s6    dw    0
s7    dw    0
s8    dw    0
s9    dw    0
s10    dw    0

branch    dw    a_1
    dw    a_2
    dw    a_3
    dw    a_4
    dw    a_5
    dw    a_6
data    ends
;************************************************
code    segment

main    proc    far
start:
    push    ds
    sub    ax,ax
    push    ax
    mov    ax,data
    mov    ds,ax

    sub    bx,bx
    sub    si,si
    mov    cx,10
  A:
    mov    ax,60
  B:
    cmp    ax,grade[bx]
    jl    branch[si]            ;错误就在这一行
    add    ax,10
    add    si,2
    jmp    B

    a_1:
    inc    s5
    jmp    short change_addr
    a_2:
    inc    s6
    jmp    short change_addr
    a_3:
    inc    s7
    jmp    short change_addr
    a_4:
    inc    s8
    jmp    short change_addr
    a_5:
    inc    s9
    jmp    short change_addr
    a_6:
    inc    s10

change_addr:
    add    bx,2
    loop    A

    ret

main    endp
code    ends
;************************************************
    end    start
然后在masm5.0编译的时候出现must be associated with code 问题
请问下书上跳跃表法不都是这么用的么,为什么会有这种问题











[ 本帖最后由 三达不溜 于 2011-5-28 23:03 编辑 ]
搜索更多相关主题的帖子: 100 
2011-05-28 22:26
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:20 
程序代码:
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987.  All rights reserved.

Object filename [cc.OBJ]:
Source listing  [NUL.LST]:
Cross-reference [NUL.CRF]:
cc.asm(20): error A2062: Missing or unreachable CS
cc.asm(30): error A2062: Missing or unreachable CS
cc.asm(32): error A2062: Missing or unreachable CS
cc.asm(33): error A2068: Cannot address with segment register
cc.asm(34): error A2045: Must be associated with code
cc.asm(39): error A2062: Missing or unreachable CS
cc.asm(42): error A2062: Missing or unreachable CS
cc.asm(45): error A2062: Missing or unreachable CS
cc.asm(48): error A2062: Missing or unreachable CS
cc.asm(51): error A2062: Missing or unreachable CS
cc.asm(54): error A2062: Missing or unreachable CS
cc.asm(57): error A2062: Missing or unreachable CS

  49766 + 449482 Bytes symbol space free

      0 Warning Errors
     12 Severe  Errors
1. 这是我用你的代码编译的结果,同样是masm5.0,你怎么不说有其他问题
2. Missing or unreachable CS这句话翻译一下
3. 不想学么就不要学,对吧

技术问题,请不要以短消息方式提问
2011-05-28 22:43
三达不溜
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-4-3
收藏
得分:0 
data    segment
grade    dw    56,69,84,82,73,88,99,63,100,80
s5    dw    0
s6    dw    0
s7    dw    0
s8    dw    0
s9    dw    0
s10    dw    0

branch    dw    a_1
    dw    a_2
    dw    a_3
    dw    a_4
    dw    a_5
    dw    a_6
data    ends
;************************************************
code    segment
        assume    cs:code,ds:data    ;掉了这一行
main    proc    far
start:
    push    ds
    sub    ax,ax
    push    ax
    mov    ax,data
    mov    ds,ax

    sub    bx,bx
    sub    si,si
    mov    cx,10
  A:
    mov    ax,60
  B:
    cmp    ax,grade[bx]
    jl    branch[si]            ;错误就在这一行
    add    ax,10
    add    si,2
    jmp    B

    a_1:
    inc    s5
    jmp    short change_addr
    a_2:
    inc    s6
    jmp    short change_addr
    a_3:
    inc    s7
    jmp    short change_addr
    a_4:
    inc    s8
    jmp    short change_addr
    a_5:
    inc    s9
    jmp    short change_addr
    a_6:
    inc    s10

change_addr:
    add    bx,2
    loop    A

    ret

main    endp
code    ends
;************************************************
    end    start
哦,不是这样子的 ,版主老师,在机房弄的时候确实是那样,刚拷过来的时候不知道怎么把assume弄掉了
而且我现在用的win7的64位机 ,也没办法去运行了试啊,希望版主谅解

[ 本帖最后由 三达不溜 于 2011-5-28 22:51 编辑 ]
2011-05-28 22:47
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:0 
程序代码:
data    segment
grade    dw    56,69,44,82,73,88,99,63,100,80
s5       dw    0
s6       dw    0
s7       dw    0
s8       dw    0
s9       dw    0
s10      dw    0

branch   dw    offset a_1   
         dw    offset a_1   
         dw    offset a_1
         dw    offset a_1
         dw    offset a_1
         dw    offset a_2
         dw    offset a_3
         dw    offset a_4
         dw    offset a_5
         dw    offset a_6
data    ends

code    segment
        assume  cs:code,ds:data
main    proc    far
start:
        xor  ax,ax
        push ds
        push ax   
        mov  ax,data
        mov  ds,ax
        xor  bx,bx
        xor  si,si
        mov  cx,0a0ah
next:
        mov  ax,word ptr grade[si]
        div  cl
        cbw
        mov  bx,ax
        dec  bx
        shl  bx,1
        jmp  branch[bx]
a_1:
        inc  s5
        jmp  short break
a_2:
        inc  s6
        jmp  short break
a_3:
        inc  s7
        jmp  short break
a_4:
        inc  s8
        jmp  short break
a_5:
        inc  s9
        jmp  short break
a_6:
        inc  s10
break:
        inc  si
        inc  si
        dec  ch
        jnz  short next   
        ret
main    endp
code    ends
end     start
发代码问问题的时候不要随便一贴,起码对人尊重点吧
你参考的哪本书,我去看看.

技术问题,请不要以短消息方式提问
2011-05-29 00:27
三达不溜
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-4-3
收藏
得分:0 
清华大学的IBM-PC汇编语言程序设计(第二版)第五章5.2.3
2011-05-29 12:36
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:0 
回复 5楼 三达不溜
我翻了第1版的书,没见到有jl    branch[si]这种写法

技术问题,请不要以短消息方式提问
2011-05-29 15:21
三达不溜
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-4-3
收藏
得分:0 
是的 第二版也是用的jmp 但是jmp与jl不仅仅是一个无条件一个有条件的区别么 为什么这里jmp可以的话而jl不行呢
至于那里面是si或者bx的使用应该没有问题吧 因为第二版182页的原句是jmp branch_table[si]
2011-05-29 16:51
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:0 
把书上没讲的,自己花时间去研究,去搞懂,不能老等着别人告诉你为什么

技术问题,请不要以短消息方式提问
2011-05-29 17:42
快速回复:一个简单的跳跃表问题 希望有人可以解答(有改动,详见三楼)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046070 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved