关于王爽汇编语言检测点13.1(01),求正确答案及详细说明.

用7CH中断例程实现LOOP功能,最大位移是多少,网上说法不一,也没有合理的解释.求真相!

楼主,我是这样想的:
按常理来说应该是16位的最大值FFFFH,因为这是一个内存字单元。但是书上说了:用bx存放转移位移,如果说(bx) = FFFFH的话,执行add [bp+2],bx时就会产生进位溢出,从而不能跳转到标号s处;因为原来ss:bp+2处的字型数据为offset se,因此有max( (bx) + offset se ) = FFFFH,从而有max(bx) = FFFFH - offset se。
我比较纠结的是,题里所说的“转移位移”到底是指bx还是指add [bp+2],bx后(即“模拟loop指令”的转移位移)的,所以有了上边的两种答案。
我也看了一些其他的答案,有说FFFFH的,这个还好明白些。不过最多的答案还是8000H~7FFFH 即(-32768~32767),这个我就想不通了(也不想多往这方面想)。
我说的并不一定是“真相”,但至少是我自己思考过的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-06
我觉得是65535,如果CS=0 IP=65535 最大位移就是让IP=0 两者相减正好65535 。
也就相当于是add [bp+2],bx所能表示的最大值减去最小值.