at&r

本文介绍了汇编语言的基础知识,包括寄存器的使用、数据的移动操作、立即数及地址的表示方法、不同长度的操作数处理方式。此外还讲解了跳转与调用指令的格式、寻址方式以及如何在高级语言中嵌入汇编代码。

引用寄存器要在前面加% mov %eax %ebx

操作顺序从左到右      mov %eax(源) %ebx(目的)    

立即数/地址前要$

操作数长度加在指令后面b(byte)w(word)l(long)   列movw



跳转 ljump $section, $offset==jmp far section:offset

lcall $section,$offset==call far section:offset


寻址方式  section:disp(base,index,scale)==secton:[base+index*scale +disp]

例如

movl -4(%ebp),%eax==mov eax, [ebp-4]

movl array(,%eax,4),%eax==mov eax,[eax*4+array]

movw array(%ebx,%eax,4),%cx==mov cx,[ebx+4*eax+arry]


嵌入汇编

_asm_("asm statement":outputs:inputs:register-modigied)

asm statements 汇编语句

ouputs  从什么东西输出

inputs 输入到什么

后面是改变的寄存器


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值