|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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
不知道我说的对不对,希望高人可以指点一二!!!
|
|