| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
检测点13.1 
(1)  答:所能进行的最大转移位移是128[指向前转移]。因为是实现loop的功能,那就应当遵守loop的使用规则。  
 
这是网上给出的答案,但是我并不这么认为,我认为7ch中断例程和loop是不一样的,最大转移位移应该是FFFFH 
 
以下是验证程序 
 
首先是在屏幕中显示80个!的程序,跟书上不同的是在循环体内加上了db 60000 dup (0)增加程序的体积 
assume cs:code   
code segment   
start: mov ax,0b800h   
  mov es,ax   
  mov di,160*12   
  mov bx,offset s-offset se   
  mov cx,80   
   
 s:  mov byte ptr es:[di],'!'   
  db 60000 dup (0) 
  add di,2   
  int 7ch   
 se: nop   
  mov ax,4c00h   
  int 21h   
code ends   
end start  
 
然后是安装7ch中断的程序,跟书上是一样的  
assume cs:code   
code segment  
start: mov ax,cs   
  mov ds,ax   
  mov si,offset lp   
  mov ax,0   
  mov es,ax   
  mov di,200h   
   
  mov cx,offset lpend-offset lp   
  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 ax,4c00h 
  int 21h 
   
lp:  push bp   
  mov bp,sp   
  dec cx   
  jcxz lpret   
  add [bp+2],bx   
lpret:  pop bp   
  iret   
lpend:  nop   
code ends 
end start 
 
编译运行后,成功运行,所以我认为7ch中断例程最大转移位移是FFFFH 
 
不知道我说的对不对,希望高人可以指点一二!!! 
 
 |   
 
 
 
 |