王爽并没有使用变量这个说法,他只说是另一种标号方法。
书中296页有这样一段代码
1 charstack:jmp short charstart 2 3 table dw charpush,charpop,charshow 4 5 top dw,0 6 7 charstart:push bx 8 9 push dx 10 11 push di 12 13 push es 14 15 cmp ah,2 16 17 ja sret 18 19 mov bl,ah 20 21 mov bh,0 22 23 add bx,bx 24 25 jmp word ptr table[bx] 26 27 ……………………………………….
问题:
我使用的是emu8086,编写的最后一行代码jmp word ptr table[bx]总是不能跳转到正确的位置。
bx的值是需要每次加2的。table[bx]代表bx/2这个位置的变量。
解决方案:
后来才发现原来是默认的ds,table[bx]也就相当于ds:table[bx],这样当然不能正确跳转的,只要改成cs:table[bx]就可以正确的跳转了。
bx的值是需要每次加2的。table[bx]代表bx/2这个位置的变量。