64 位環境彙編的 "Hello World! "
"
1 人贊了文章
首先上代碼
windows 下
str: .asciz "Hello World!
".globl mainmain: mov $str, %rcx call printf mov $0, %rcx call exit
這裡輸出用的是C語言庫函數。
編譯方式
gcc filename.s
Linux 下
str: .ascii "Hello world!
".globl _start_start: movq $1, %rax movq $1, %rdi movq $str, %rsi movq $13, %rdx syscall movq $60, %rax movq $0, %rdi syscall
這裡輸出用的是Linux系統調用。
編譯方式
as -o filename.o filename.sld filename.o
我的環境是:
CPU: Intel64 Family 6 Model 142 Stepping 9 GenuineIntel ~2600 Mhz
Windows 版本:10.0.17134 暫缺 Build 17134
編譯器:gcc version 7.3.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)
Linux 版本:Linux version 4.4.0-17134-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #137-Microsoft Thu Jun 14 18:46:00 PST 2018
as 版本:GNU assembler version 2.26.1 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.26.1
ld 版本: GNU ld (GNU Binutils for Ubuntu) 2.26.1
as 和 ld 都來自 gcc(gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) 自帶的。
推薦閱讀:
TAG:彙編語言 |