use*_*454 0 x86 assembly intel
程序 集中strlen的问题是关于程序集中的 strlen,但这似乎是用AT&T语法编写的,遗憾的是我的汇编程序不支持.
我只是好奇你如何将语法[eax + ebx]翻译成intel的语法?
所以
4(%eax) # offset 4
Run Code Online (Sandbox Code Playgroud)
相当于
[eax + 4]
Run Code Online (Sandbox Code Playgroud)
假设偏移值存储在%ebx中.什么是等价的
[eax + ebx]
Run Code Online (Sandbox Code Playgroud)
?
%ebx(%eax) # doesn't work!
Run Code Online (Sandbox Code Playgroud)
谢谢,
[eax+ebx]应该翻译成(%eax,%ebx).
AT&T语法中内存地址的完整语法是:
offset(%reg1,%reg2,scale)
Run Code Online (Sandbox Code Playgroud)
这相当于:
[reg1 + reg2*scale + offset]
Run Code Online (Sandbox Code Playgroud)
offset并且scale是常量值,scale必须为1,2,4或8.默认值为0表示偏移量,1表示比例.