gcc 内嵌汇编的学习笔记 III
来源:互联网 发布:知行网络 编辑:程序博客网 时间:2024/06/04 23:26
gcc 内嵌汇编的学习笔记 III
--一个loop
作者:ShellEx.
ShellEx.cn && blog.csdn.net/shellex 版权所有
我又来了。今天实现的是类似While(...){...}的一个loop。对于不
支持高级语法(.if之流)的GNU gcc汇编器--也就是GAS--来说,写条件判
断和循环要略微麻烦呢。
#include <stdio.h>
int main() {
int in = 0, out =0, i = 0 ;
printf("PLZ input a Number: /n");
scanf("%d", &in);
asm volatile(
"nop #LoopTest/n"
"L_BEG: /n/t" //起始标志位
"cmp %2, %1 /n/t" //比较in 和 i (放在寄存器中)的值
"jge L_END /n/t" //i 比in 大就跳出
"addl $2, %0 /n/t" //否则out+=2
"incl %1 /n/t" //i自增
"jmp L_BEG /n" //跳回起始 位置
"L_END: /n/t" //结束标志
:"+r"(out),"+r"(i)
:"r"(in)
:
);
printf("out = %d",out);
return 0;
}
///////////////////////////////////////////////////////////////
没有难度,就仅仅是比较和跳转,相当于下列C++ code :
while (i < in) {
out += 2;
++i;
}
shellex.cn && blog.csdn.net/shellex 版权所有
- gcc 内嵌汇编的学习笔记 III
- gcc 内嵌汇编的学习笔记 I
- gcc 内嵌汇编的学习笔记 II
- gcc 内嵌汇编的学习笔记 IV
- 80386汇编+GCC的内嵌汇编
- 80386汇编+GCC的内嵌汇编
- gcc内嵌汇编
- GCC内嵌汇编
- GCC内嵌汇编
- GCC内嵌汇编
- GCC内嵌汇编
- gcc内嵌汇编
- GCC内嵌汇编
- GCC内嵌汇编
- gcc 内嵌汇编
- GCC 内嵌汇编
- GCC内嵌汇编
- GCC内嵌汇编
- 技术测试:你是oltp应用开发方面的高手吗?
- jbpm+tomcat+mysql配置指南
- gcc 内嵌汇编的学习笔记 II
- 网站后台的流程
- SQL Server 2005 考试(包括答案)
- gcc 内嵌汇编的学习笔记 III
- gcc 内嵌汇编的学习笔记 IV
- java包装类
- SQL Server 作业
- 扩展你的WIndows标准控件
- 面向对象技术伪术语--主动对象的批判 续
- “技术工作”感悟
- c++ primer第一章习题
- 使用debootstrap做一个属于自己的系统