汇编

Paste_Image.png
AT&T

Demo:求最大值代码

.section .data #全局变量位置
items:
.long 4,5,6,8,2,6,0
.section .text #代码位置
.globl _start #像main函数一样特殊,链接器在链接时会查找目标文件中的_start符号代表的地址,把它设置为整
#个程序的入口地址,所以每个汇编程序都要提供一个_start符号并且用.globl声明。如果一个符号没有用.globl指
#示声明,就表示这个符号不会被链接器找到。 (没有globl 声明,按照.text代码顺序执行)
_start:
movl $0,%ecx
movl items(,%ecx,4),%ebx
movl %ebx,%eax
start_loop:
cmpl $0,%eax
je end     #相等跳转
incl %ecx
movl items(,%ecx,4),%eax $ #内存寻址通用格式:ADDRESS_OR_OFFSET(%BASE_OR_OFFSET,%INDEX,MULTIPLIER) 
#FINAL ADDRESS = ADDRESS_OR_OFFSET + BASE_OR_OFFSET + MULTIPLIER * INDEX 。有时有些项会被省略不写,则代表这些项为0
cmpl %ebx,%eax
jle start_loop  #eax<=ebx跳转
movl %eax,%ebx 
jmp start_loop
end:
movl $1,%eax
int $0x80$ #系统调用
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容