
jmp指令的操作数是地址,实际执行效果是修改IP的值。
由于BYTE PTR使得BX指向的数据为字节类型,而IP为字类型,数据类型不匹配,故该指令不正确。
指令的正确写法可以是jmp word PTR [BX],此时将BX指向的字类型数据赋给IP;或者jmp dword ptr [BX],该指令把BX所指向的双字类型数据的高位字赋给CS,低位字赋给IP。
扩展资料
bx可以作为索引寄存器mdw1,2,3,4,5,6,7,8,9,10,leabx,m;把m的首地址放入bx,即把bx当作索引,C语言中的指针概念即来源于此;如果你学过C语言的话movbyteptral,[bx],读取1个字节的数据到al中.[bx]是寄存器寻址。
即相当于 ; C语言中的 char a = *(char*)p,这类用法。byte ptr即指明操作类型是db类型。同理,[bx+1]即指向了数据中下一个字节,对m这种dw类型的数据来说。
即相当于指向了[bx]对应的字数据的高位字节。比如:假如bx指向第1个字1, 1在内存中占2个字节01 00 (低位在前,高位在后则:mov al, byte ptr [bx]。
把低位01 送入al,mov ah, byte ptr [bx+1],把高位00状入ah。
由于BYTE PTR使得BX指向的数据为字节类型,而IP为字类型,数据类型不匹配,故该指令不正确。
指令的正确写法可以是jmp word PTR [BX],此时将BX指向的字类型数据赋给IP;或者jmp dword ptr [BX],该指令把BX所指向的双字类型数据的高位字赋给CS,低位字赋给IP。