Linux虚拟机下switch语句汇编输出,数据传送使用栈指针
来源:互联网 发布:windows nt和2000 编辑:程序博客网 时间:2024/05/15 13:49
虚拟机下跑的Linux ,switch.c 使用gcc -Og -S switch.c 编译输出汇编语句:
cs app上关于数据传送说的是6个参数内,会使用寄存器传递参数。7+个参数才会使用栈指针,这个虚拟机跑的Linux几个参数都用的栈指针,难道虚拟机无法用寄存器?
switch函数:
#include <stdio.h>int switcher(long a,long b,long c,long *dest){long val;switch (a){case 5:c=b^15;case 0:val=c+112;break;case 2:case 7:val=(b+c)<<2;break;case 4:val=a;break;default:val =b;}*dest =val;}int main(){}对应的汇编语句:switcher:.LFB23:.cfi_startprocmovl4(%esp), %eaxcmpl$7, %eaxja.L8jmp*.L4(,%eax,4).section.rodata.align 4.align 4.L4:.long.L3.long.L8.long.L5.long.L8.long.L2.long.L7.long.L8.long.L5.text.L7:movl8(%esp), %eaxxorl$15, %eaxmovl%eax, 12(%esp).L3:movl12(%esp), %eaxaddl$112, %eaxjmp.L2.L5:movl12(%esp), %eaxaddl8(%esp), %eaxsall$2, %eaxjmp.L2.L8:movl8(%esp), %eax.L2:movl16(%esp), %edxmovl%eax, (%edx)ret.cfi_endproc.LFE23:.sizeswitcher, .-switcher.globlmain.typemain, @functionmain:
0 0
- Linux虚拟机下switch语句汇编输出,数据传送使用栈指针
- VS2008下反汇编观察switch语句
- 使用switch-case语句输出成绩等级
- 使用函数指针来代替switch语句
- linux平台学x86汇编(六):数据的传送
- switch语句反汇编分析
- 8086汇编 数据传送指令
- 汇编之数据传送指令
- AT&T 汇编数据传送
- 从windows向虚拟机下的linux系统传送文件
- 使用标准库和函数指针简化switch语句
- switch语句的输出问题
- 一起来学反汇编-之switch语句
- C++反汇编四(SWITCH语句)
- C_使用switch语句
- switch语句的使用
- switch语句使用总结
- switch语句的使用
- python爬虫入门笔记
- 直播+时尚跨界掀起新玩法,传统时装行业变革在即
- 2 Open/Close函数及touch命令的实现
- Collection与Collections的区别
- leetcode经典编程题(1)
- Linux虚拟机下switch语句汇编输出,数据传送使用栈指针
- 个人对PIN码的基本理解
- Flip Game POJ
- java之多线程(一)进程和线程的区别
- 测试
- hadoop2.6单机运行及伪分布式部署运行
- spring的配置文件在web.xml中加载的方式
- 算法作业_1(2017.2.25第一周)
- IT产业的生态链