. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->直接定址表
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  不执行中断,郁闷哦.  [待解决] 回复[ 2次 ]   点击[ 334次 ]  
liangdezhi
[帖 主]   [ 发表时间:2010-06-07 23:39 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2009-02-10 14:31
assume cs:code

code segment
    start:mov ax,cs
          mov ds,ax
          mov si,offset setscreen
          
          mov ax,0
          mov es,ax
          mov di,200h
          mov cx,offset sub_end-offset setscreen
          cld
          rep movsb

          mov word ptr es:[7ch*4],200h
          mov word ptr es:[7ch*4+2],0
          
          mov ah,0         
          int 7ch          ;这里怎么调用多只跳到jmp short set不往下执行,用主程序调用也是一样.

          
          mov ax,4c00h
          int 21h
          
          
   setscreen:jmp short set
        table dw sub1
         
       set:push bx
           cmp ah,3
           ja sret
           mov bl,ah
           mov bh,0
           add bx,bx
            
           call word ptr table[bx]
           
      sret:pop bx
           iret   

      sub1:push ax
           push bx
           push cx
           push es
           
           mov bx,0b800h
           mov es,bx
           mov bx,0
           mov cx,2000h
     sub1s:     
           mov byte ptr es:[bx],' '
           add bx,2
           loop sub1s
           pop es
           pop cx
           pop bx
           pop ax
           ret
    sub_end:nop
                  
code ends
end start
liangdezhi
[第1楼]   [ 回复时间:2010-06-10 03:48 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2009-02-10 14:31
我,操,搞了三天,头发多白了,就犯了个低级错误,不能单步执行。你们看我激动吧,四点钟了,还用手机留言。
mess
[第2楼]   [ 回复时间:2010-06-18 16:56 ]   [引用]   [回复]   [ top ] 
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48
debug跟踪:
-g 25

AX=0000  BX=0000  CX=0000  DX=0000  SP=0000  BP=0000  SI=0060  DI=0234
DS=188F  ES=0000  SS=188F  CS=188F  IP=0025   NV UP EI PL NZ NA PO NC
188F:0025 CD7C          INT     7C
-t

AX=0000  BX=0000  CX=0000  DX=0000  SP=FFFA  BP=0000  SI=0060  DI=0234
DS=188F  ES=0000  SS=188F  CS=0000  IP=0200   NV UP DI PL NZ NA PO NC
0000:0200 EB02          JMP     0204
-t

AX=0000  BX=0000  CX=0000  DX=0000  SP=FFFA  BP=0000  SI=0060  DI=0234
DS=188F  ES=0000  SS=188F  CS=0000  IP=0204   NV UP DI PL NZ NA PO NC
0000:0204 53            PUSH    BX         --对应set:push bx 

这样就可以跟踪到中断了。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved