博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Fw] assembly code in gas syntax
阅读量:5346 次
发布时间:2019-06-15

本文共 1143 字,大约阅读时间需要 3 分钟。

Address operand syntax

There are up to 4 parameters of an address operand that are presented in the syntax displacement(base register, offset register, scalar multiplier). This is equivalent to [base register + displacement + offset register * scalar multiplier] in Intel syntax. Either or both of the numeric, and either of the register parameters may be omitted:

movl    -4(%ebp, %edx, 4), %eax  # Full example: load *(ebp - 4 + (edx * 4)) into eaxmovl    -4(%ebp), %eax           # Typical example: load a stack variable into eaxmovl    (%ecx), %edx             # No offset: copy the target of a pointer into a registerleal    8(,%eax,4), %eax         # Arithmetic: multiply eax by 4 and add 8leal    (%eax,%eax,2), %eax      # Arithmetic: multiply eax by 2 and add eax (i.e. multiply by 3) 實際 Kernel 上應用
call _sys_call_table(,%eax,4)
在linux环境下info gcc-  C Extensions:: 在里面找到Extended Asm::章节即可,《深入理解计算系统》相关章节也有介绍。
 
 

TOP

 
这个等价于call_sys_call_table[%eax].
只是省略了基地址而已,所以在“,”之前是空的。
寻址格式(base_address, index, indexscale),其中indexscale也就是一个entry在表中占几个字节。
你只需要看Professional Assembly Language这本书就可以了。

转载于:https://www.cnblogs.com/bittorrent/p/3354361.html

你可能感兴趣的文章
GoLang基础数据类型--->字典(map)详解
查看>>
[JZOJ P1329] [DP]玩具装箱
查看>>
[cf]
查看>>
JSONObject与JSONArray
查看>>
CSS3实现各种格子纹理效果
查看>>
[Java][Spring][scurity]同步session控制,防止一个用户多次登录
查看>>
linux软件管理之------编译安装nginx服务器并手动编写自动化运行脚本
查看>>
django-manage.py参数
查看>>
动态规划——最长公共子序列(LCS)
查看>>
二叉排序树
查看>>
Win7计划任务命令
查看>>
iOS开发之oc(三)--继承、self/super的使用
查看>>
HTML图片映射实用
查看>>
javascript入门经典(第五版)-清华出版社之“经典”错误
查看>>
雅虎前端优化的35条军规
查看>>
phpcms在自定义模块中的自定义标签分页
查看>>
C语言-求1-20的阶乘的和(函数的递归)
查看>>
Oracle Forms 10g Tuning tips
查看>>
C# Winform dataGridView自动添加行号。简单修饰
查看>>
C# 属性与字段;
查看>>