windows与linux 汇编差异

汇编语言有助记符,机器语言是纯粹二进制。

CPU与OS确定的情况下,一句汇编语言可唯一确定一句对应的机器语言。

 

Linux下采用的是ATT的汇编语法格式,Windows下面采用的是Intel汇编语法格式。二者的主要区别在于:

 

1.指令操作数的赋值方向是不同的 

   Intel:第一个是目的操作数,第二个是源操作数 

   ATT:第一个是源操作数,第二个是目的操作数

2.指令前缀 

   ATT:寄存器前边要加上%,立即数前要加上

   Intel:没有这方面的要求

3.内存单元操作数 

   Intel:基地址使用[] 

   AT&T:  基地址使用() 

  比如:intel中  mov  ax,[bx] 

              AT&T中 movl (%eax),%ebx

4.操作码的后缀 

     AT&T中操作码后面有一个后缀字母:l” 32,w” 16,b” 8位 

     Intel却使用了在操作数前面加dword ptr, word ptr, byte ptr的格式 

   例如:mov al,bl (Intel) 

             movb %bl %al (AT&T)

5.ATT中跳转指令标号后的后缀 表示跳转方向,“f”表示向前,“b”表示向后

 

 

 

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值