jmp指令 直接跳转到指定的地方
jmp 00112244 //跳转的是地址
call指令 相当于 push IP jmp 函数地址 或者 push CS PUSH IP JMP 函数地址
举个列子
这里的call地址是0040123e 执行这一句 它会先push ip 但是实际上是push ip+4 也就是将它的下一句保存下来 待会在出函数 ret时候就会通过这里返回到该函数的下一语句 然后 ip会进入call 指向的地址 也就是跳到执行的函数 这里是 00401110 我们看看执行结果
首先是ip变成了所说的地址了
然后栈顶保存了 0040123e的下一位 也就是 00401243 没问题
ret指令
相当于 pop ip 将刚入栈的ip 取出来 然后 跳转到那里去
mul bx :将ax与bx相乘 然后结果保留在 dx:ax中 dx中是进位 也就是ax 中放不下的
div bx :就是将 dx:ax 来除 bx 商放到ax中 余数放在 dx中
这里如果bx很小 但是被除数很大 比如 bx=1 商就等于 被除数 然后放在ax中 却放不下 那程序就会崩溃 这里是有问题的