汇编第九、十章

##第九章
主要讲很多转移指令,转移时cpu是看位移,而不是看目的地址。这里总结一下指令的说明和用法
1.offset:这个用的少但是后面有用到这个指令计算一段代码的长度,下面是offset的说明图
在这里插入图片描述
2.jmp:是跳转到jmp 后面的标识的位置,
jmp short 标号 是转移到8位位移
jmp near ptr 标号 是16位位移转移
jmp far ptr 标号 可以转换段地址和偏移地址
jmp reg reg里面的数据是改变IP的
jmp word ptr 内存单元地址(如ds:[0]) 会截取这个单元的数据转换IP数据
jmp dword ptr 内存单元地址 跟上面差不多,这个是两个字

3.jcxz:跟cx寄存器想联系,跟if语句相似
在这里插入图片描述
4.loop指令会转到循环开头处,也是根据位移,8位位移
编译器如果转移超出这个指令的范围会报错
5.显示内存区,字体颜色:
下面有写显示出来的东西所要在的地址空间
在这里插入图片描述
下面是调节字体颜色,共8位,需要什么就1,不要就0,二进制形势
在这里插入图片描述
##第十章
1.call和ret:先单独介绍一下ret、retf
在这里插入图片描述
call
在这里插入图片描述
这两个指令形成了C语言中的函数 call是将IP入栈,ret将IP出栈。但在写函数的时候,要将函数内要用到的寄存器都先入栈,防止破坏主函数的寄存器数据,下面一个代码供参考。

在这里插入图片描述在这里插入图片描述在这里插入图片描述

2.mul指令:乘法指令
在这里插入图片描述

发布了8 篇原创文章 · 获赞 0 · 访问量 163

猜你喜欢

转载自blog.csdn.net/qq_45877754/article/details/104188731
今日推荐