| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1084 人关注过本帖
标题:这个程序那里有错误
取消只看楼主 加入收藏
longxies
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2007-11-14
收藏
 问题点数:0 回复次数:1 
这个程序那里有错误
如下程序实现带有两个功能号0,1的7ch功能调用,用直接定植表.
但是do1中断列程安装到0:200H处后,sub1和sub2的偏移地址是多少,buf1处的两个字的值是多少啊,
这个程序我运行不起来
高手帮忙找找错误谢谢了


data segment
    
data ends
code segment
    assume cs:code,ds:data
start:
       mov ax,code           ;安装do1列程在0:200H处
       mov ds,ax
       mov si,offset do1
       mov ax,0
       mov es,ax
       mov di,200h
       mov cx,offset do1e-offset do1
       cld
      
       rep movsb
      
       mov ax,0                         ;置入口地址
       mov es,ax
       mov word ptr es:[7ch*4],200h
       mov word ptr es:[7ch*4+2],0

       mov al,1               ;调用列程的第一号子程序
       int 7ch

       mov ah,4ch
       int 21h
 
 do1:                        ;do1列程
    jmp ks
      buf1 dw sub1,sub2      ;定值表
ks:   push ax
      push bx
      push dx
      push cx

      mov ah,0             ;根据AL计算,在BUF1中的位置
      add ax,ax
      mov bx,ax

      call word ptr es:[bx]      ;调用(错误出在这一步)

      pop cx
      pop dx
      pop bx
      pop ax
      iret
 ks1:nop
           
 sub1:mov ah,02h           ;0号子程序
      mov dl,12
      int 21h
      ret
 sub2:mov ah,02h          ;1号子程序
      mov dl,3
      int 21h
      ret
do1e:nop      
code ends
     end start

[[italic] 本帖最后由 longxies 于 2007-12-20 19:49 编辑 [/italic]]
搜索更多相关主题的帖子: mov segment data offset 
2007-12-20 19:47
longxies
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2007-11-14
收藏
得分:0 
我自己已经把他解决了,谢谢参与
2007-12-21 09:55
快速回复:这个程序那里有错误
数据加载中...
 
   



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

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