学习总结,linux 内联汇编
来源:互联网 发布:网络信息安全书籍推荐 编辑:程序博客网 时间:2024/05/16 03:51
上学的时候,还喜欢偶尔用汇编写,到后来就越来越混乱,再到后来就感觉限制越来越多。一段时间都开始犹豫它能不能在应用程序中使用,听起来似乎很好笑,但就是那样,如果欠缺总结,当学得越多,反而越来越混乱。有时候都会将端口访问、汇编语言使用及操作系统运行级别搞得一团糟。而且感觉惰性越来越厉害。今天首先对以前混乱的认识进行下自我总结:
系统运行级别:重点在保护内核程序及对“外部设备”的使用权限问题;
汇编语言中涉及的资源:除了很少的CPU寄存器,大部分都不受特权级别的限制(否则,应用程序就没有意义了);
即在特权级别“3”中,不能访问任何设备及建立文件,这些设计外设和系统资源的操作必须通过系统调用来完成。
言归正传,今天因为一些原因,需要将DOS下的一段汇编程序导为linux的内联汇编,虽然代码不多,单确实费了好长时间,首先代码类似如下:
int main(void)
{
int val0 = 0,val1 = 0;
asm("movl %0,%%esi;\
movl %1,%%ecx;"
::"m"(val0),"m"(val1) //输入变量,注意在低版本的GCC中,如果不是“m",而是“r",会出现编译不过的情况,高版本没有问题。
:"%esi","%ecx" //涉及的寄存器
);
return 0;
}
注意:
asm(代码:输入变量(“=m”):输出变量(eg:"m"):涉及的寄存器),由“:”分开的几段都要有,如果没有变量就空着,如asm("代码:::)。
什么是学会呢?看再多书,等着手写的时候,还是感觉理解得不够,小小总结一下,越来越感觉自己需要学的还有很多、很多,加油吧,查漏补缺。
- 学习总结,linux 内联汇编
- 内联汇编总结
- linux内联汇编
- Linux内联汇编
- linux中的内联汇编
- Linux内联汇编 .
- Linux C内联汇编
- linux C 内联汇编
- 内联汇编基础学习
- 汇编总结-第三部分_1_内联汇编
- Linux C内联汇编用法
- C中的内联汇编学习
- 内联函数学习总结
- 内联函数学习总结
- CSS内联学习总结
- Linux中x86的内联汇编
- Linux 中 x86 的内联汇编
- Linux 中 x86 的内联汇编
- IE按钮文字垂直居中
- 手动获取VS2010 自带容器 ActiveX Control Test Container
- Under The Moon——1、AOL
- 特征值与特征向量 转自别人的
- 迭代器失效(2)—一个例子
- 学习总结,linux 内联汇编
- 操作系统总结——存储器管理
- 常见的设计模式
- 开始写blog了
- linux命令察看图片
- 反思
- svn plugin
- tcp proxy
- 面向模式的软件体系结构卷1模式系统