LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1345|回复: 3

关于 nasm 和 gas的疑惑

[复制链接]
发表于 2011-2-25 13:50:39 | 显示全部楼层 |阅读模式
发到这个板块也不知是否合适,这个问题我实在是不理解,或许对大家来说只是一句话的问题:)
同样的一段代码,用nasm和as编译得到的是截然不同的结果,这里明显as是不正确的,但是不知道怎样才能正确,望大家指点

#tmp.s                                    
                                  mov ax, cs                                  
                                  mov ds, ax                                  
                            mov es, ax                                  

#nasm tmp.s                              

#ndisasm tmp                              

00000000  8CC8       mov ax,cs            
00000002  8ED8       mov ds,ax            
00000004  8EC0       mov es,ax

(6bytes)            
                                          
==========================================                                          
                                          
#tmp-gas.s                                   
                    movw %cs, %ax                        
                    movw %ax, %ds                        
                    movw %ax, %es                        
                                             
#as tmp-gas.s  -o tmp-gas                    
                                             
#ndisasm tmp-gas                             
                                             
00000000  7F45              jg 0x47         
00000002  4C                dec sp           
00000003  46                inc si           
00000004  0101              add [bx+di],ax   
00000006  0100              add [bx+si],ax   
00000008  0000              add [bx+si],al   
...

(449bytes)
发表于 2011-3-5 20:28:56 | 显示全部楼层
假設你用的是 i386 的系統。

$file tmp
$file tmp-gas

兩個檔案是不一樣的。 nasm 默認的輸出格式是 binary。 gas 默認是 elf-32。
你可以
$objdump -d tmp-gas
看看反匯編。

或者
$objcopy -S -O binary tmp-gas tmp-gas-bin
得到 binary 檔
然後
$ndisasm -b32 tmp-gas-bin
查看反匯編。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-3-24 10:37:12 | 显示全部楼层
太酷了!十分感谢!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-3-24 10:39:08 | 显示全部楼层
太酷了!十分感谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表