05 内嵌汇编的编程
说明:参考狄泰软件学院相关课程
示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <stdio.h> int main() { int result = 0; int input = 1; int a = 1; int b = 2; asm volatile ( "movl %1, %0\n" : "=r" (result) : "r" (input) ); printf ( "result = %d\n" , result); printf ( "input = %d\n" , input); asm volatile ( "movl %%eax, %%ecx\n" "movl %%ebx, %%eax\n" "movl %%ecx, %%ebx\n" : "=a" (a), "=b" (b) : "a" (a), "b" (b) ); printf ( "a = %d\n" , a); printf ( "b = %d\n" , b); return 0; } |
结果如下:
1 2 3 4 | result = 1 input = 1 a = 2 b = 1 |
示例代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <stdio.h> int main() { char * s = "D.T.Software\n" ; int l = 13; printf ( "main begin\n" ); asm volatile ( "movl $4, %%eax\n" "movl $1, %%ebx\n" "movl %0, %%ecx\n" "movl %1, %%edx\n" "int $0x80 \n" : : "r" (s), "r" (l) : "eax" , "ebx" , "ecx" , "edx" ); asm volatile ( "movl $1, %eax\n" "movl $42, %ebx\n" "int $0x80 \n" ); printf ( "main end\n" ); return 0; } |
运行结果:
posted on 2020-06-12 11:40 lh03061238 阅读(228) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)