table: dw sub1,sub2,sub3,sub4
set: push ax
push bx
cmp ah,3
ja sret
mov bl,ah
mov bh,0
add bx,bx ----------->这里为什么要bx*2
call word ptr table[bx]
sret: pop bx
pop ax
ret
------------------------------------------------
我的理解是:table[bx]是内存单元(表示的是字节),而dw定义的table中调用sub1,sub2,sub3,sub4,
这4个子程序是字,1个字=2个字节,所以要add bx,bx ,是不是这样理解的? |