鱼C论坛

 找回密码
 立即注册
查看: 5459|回复: 6

关于检测点13.1(1)的疑问,希望小甲鱼来讨论

[复制链接]
发表于 2011-6-9 19:22:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

不知道我说的对不对,希望高人可以指点一二!!!

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-11 00:20:01 | 显示全部楼层
反正最大也就 一个 字 的地址   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-12 13:26:17 From FishC Mobile | 显示全部楼层
这里利用 int 7ch 中断是间接的通过栈来存放偏移地址进行的。〈偏移存放在bx中,十六位偏移〉
引申讨论下,如果想把偏移量再扩大,可以吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-6-14 14:39:26 | 显示全部楼层

终于见到甲鱼老师了!先顶一下甲鱼老师,你的视频讲的真好!!!
那这个题目的bx偏移就是十六位的了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2017-2-17 16:05:06 | 显示全部楼层
我认为是FFFFH
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-26 17:36:55 | 显示全部楼层
第一题
位移有方向的,应该是用补码表示吧
如果是补码那就是-30768~30761
不知道对不对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-8 11:55:52 | 显示全部楼层
燃烧的飞星 发表于 2019-12-26 17:36
第一题
位移有方向的,应该是用补码表示吧
如果是补码那就是-30768~30761

我是后来者,学到这里的时候我也纳闷儿,到底应不应该用补码来运算add [bp+2],求解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-29 05:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表