首页
社区
课程
招聘
[旧帖] [求助] 新学碰到问题求解 0.00雪花
发表于: 2009-8-13 21:43 2793

[旧帖] [求助] 新学碰到问题求解 0.00雪花

2009-8-13 21:43
2793
现在学汇编。看了书上的想稍微改改。
编译后执行说无效指令,debug 还只会用个-t的命令,但看了下全不是我写的那些指令。不知道怎么回事。。。

我改的就是想在原来例子的那个折半查找具体到查定义好的数组和数字。
编译过了。但exe文件执行不了。

烦帮 找找原因。我看了好久没看出问题。
dseg segment
        low_idx                dw  ?
        hight_idx        dw  ?           
dseg ends
eseg segment
     str dw 12,11,22,33,44,55,66,77,88,99,111,222,333
     st1  dw 55
eseg ends

cseg segment
b_search        proc far
        assume         cs:cseg,ds:dseg,es:eseg        
           ;push         ds
           ;push         ax
           mov                ax,dseg
           mov          ds,ax
           mov                ax,eseg
           mov          es,ax
           mov          ax,st1
           mov          di,offset str
           cmp                 ax,es:[di+2]
             ja                chk_last               
           lea          si,str+2
           je                exit                  
           stc
           jmp                 exit
  chk_last:
           mov                 si,es:[di]
           shl          si,1
           add                 si,di
           cmp                 ax,es:[si]
           jb                  search                 
           je                exit
           stc
           jmp                 exit
    search:
           mov                 low_idx,1
           mov                bx,es:[di]
           mov                hight_idx,bx
           mov          bx,di
    mid:   mov                cx,low_idx
           mov                dx,hight_idx                                                   
           cmp                 cx,dx
           ja                no_match               
           add                cx,dx
           shr                cx,1
           mov          si,cx
           shl          si,1
   compare:            
           cmp                 ax,es:[bx+si]
           je                 match
           ja           higher                  
           mov                hight_idx,cx
           jmp          mid
   higher:
           inc          cx
           mov          low_idx,cx
           jmp          mid
   no_match:
           stc
   match  :              ;display              
            mov ah,9
           mov dx,si
           int 21
   exit:   
           pop          ds
MOV AH,1
INT 21H
MOV AH,4CH
INT 21H
           ret
b_search   endp
cseg       ends
end

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 1753
活跃值: (840)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
2
str dw 12,11,22,33,44,55,66,77,88 ,99,111,222,333

是你这个地方的问题`~
2009-8-13 23:45
0
雪    币: 199
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hcx
3
能说具体点吗?
2009-8-14 08:20
0
游客
登录 | 注册 方可回帖
返回
//