当前位置: 代码迷 >> 汇编语言 >> 在编写与安装中断程序过程中遇到的有关问题
  详细解决方案

在编写与安装中断程序过程中遇到的有关问题

热度:1625   发布时间:2013-02-26 00:00:00.0
【求助】在编写与安装中断程序过程中遇到的问题
各位大虾好,这是在下写的一个安装中断处理程序的程序
这个程序类型码为 7ch
功能在将小写字母转化为大写字母
程序比较简单,所以没加入太多的注释

我的问题是,当程序写入完毕,
执行完 int 7ch 时,下一条语句却并不是 mov ax,4c00h
而是DB 68
请问这是怎么回事呢?


assume cs:code
 data segment
 db 'i seek you',0
data ends
code segment
w: 
  mov ax,cs
  mov ds,ax
  mov si,offset change
   
  mov ax,0
  mov es,ax
  mov di,200h
   
  mov cx,offset changeend-offset change
   
  rep movsb
   
  mov word ptr es:[7ch],200h
  mov word ptr es:[7ch+2],0
   
  mov ax,data
  mov ds,ax
  int 7ch
   
   
  mov ax,4c00h
  int 21h
   
change:
  push cx
  push si
  mov si,0
  mov ch,0
  s: mov al,[si]
  mov bl,97
  cmp al,bl
  ja ok
  jmp short s
   
  ok:mov bl,122
  cmp al,bl
  je ok1
  jmp short s
  ok1: and al,1101111b ;大写字母转变为小写字母
  inc si
  mov cl,[si]
  jcxz done
  jmp short s
  done: 
  pop si
  pop cx
  iret
  changeend:  
  nop

code ends
end w

------解决方案--------------------------------------------------------
每个中断向量是4字节,所以各个中断在中断向量表中的地址是中断号乘以4。
  相关解决方案