汇编学习第四讲

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中 却放不下 那程序就会崩溃 这里是有问题的