| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 sunjunjian 于 2011-4-3 19:07 编辑  
 
程序一: 
assume cs:code 
code segment 
start: mov ax,cs 
       mov ds,ax 
       mov si,offset do0 
       mov cx,offset s2-offset do0      ;这里编译到debug中cx=1543h  气死我了 
        
       mov ax,0 
       mov es,ax 
       mov di,200h 
       cld 
       rep movsb 
        
       mov ax,0 
       mov ds,ax 
       mov word ptr ds:[7ch*4],200h 
       mov word ptr ds:[7ch*4+2],0 
       mov ax,4c00h 
       int 21h 
        
do0:    push bp 
       mov bp,sp 
       dec cx 
       jcxz s3 
       add [bp+2],bx 
        
s3:    pop bp 
       iret               
s2:    nop 
code ends 
end start  
以上是安装的中断   下面是要运行的程序要用到上面中断 
 
 
 
程序二: 
assume cs:code 
code segment 
start: mov ax,0b800h 
       mov ds,ax 
       mov si,160*12 
        
       mov bx,offset s-offset se     ;这里等于50h 好像也不对 
       mov cx,80 
 s:    mov byte ptr ds:[si],'!' 
       add si,2 
       int 7ch 
se:    nop 
        
       mov ax,4c00h 
       int 21h 
 code ends 
 end start              
 在运行程序二时 运行到 int 7ch指令后 cs=0000 ip=0000      按道理因该是 cs=s的段地址 ip=s的偏移地址 
也不知道问题到底出在哪了 |   
 
 
 
 |