汇编网首页登录博客注册
feitian7376的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
好友圈
友情链接

[2009-03-11 10:15] 检测点13.1

(1)在上面的内容中,我们用7ch中断例程实现loop功能,则上面的7ch终端历程所能进行的最大转移位移是多少?
答:与loop的短转移不同,中断例程进行转移时是直接设定CS和IP的,原则上,只要是IP容许的范围内都是可以转移的,也就是说,转移范围在0~65535之间,考虑到s和se的前后都是有程序的,因此不可能取到0和65535这两个极端,但大体范围就是在0~65535,即64K范围内寻址。

(2)程序如下:
 int 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

题目中的源程序如下:

assume cs:code
data segment
   db'conversation',0
data ends
code segment
start: mov ax,data
       mov ds,ax
       mov si,0
       mov ax,0b800h
       mov es,ax
       mov di,12*160
   s:  cmp byte ptr [si],0
       je ok
       mov al,[si]
       mov es:[di],al
       inc di
       mov al,02h
       mov es:[di],al
       inc di
       inc si
       mov bx,offset s-offset ok
       int 7ch
   ok: mov ax,4c00h
       int 21h
code ends
end start
评论次数(1)  |  浏览次数(774)  |  类型(汇编作业) |  收藏此文  | 

[  tomato   发表于  2009-03-23 16:58  ]

正确。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码