`
dogasshole
  • 浏览: 842613 次
文章分类
社区版块
存档分类
最新评论

用汇编识别little-endian和big-endian

 
阅读更多

编译环境:IA32+RH9+AS+LD

源代码如下:

.section .data
value1:
.short 0xabcd
.section .bss
.lcomm buffer, 2
.section .text
.globl _start
_start:
movw value1, %ax
movw %ax, buffer
movl $buffer, %esi
movb (%esi), %al
cmpb $0xcd, %al
jz little
movl $0, %ebx
jmp end
little:
movl $1, %ebx
end:
movl $1, %eax
int $0x80

把文件保存为endian.s,然后as -o endian.o endian.s,再然后ld -o endian endian.o,生成可执行文件endian,然后在所有目录的命令行下输入:./endian回车,嘿嘿,什么都没有,那我们怎么知道结果是不是正确的呢?因为程序运行的返回值保存在寄存器%ebx里,查看返回值的命令是:echo $?,显示的是“1”,没错,就是小端法。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics