.global main
.section .data
.section .bss# 需要输出的字符数组,还没有初始化mystring: .skip 4
.section .text
main:# 将mystring这个字符串的地址存入到rbx寄存器中leaq mystring,%rbx# 将a放入到mystring第一个字节里边movb $'a',(%rbx)# 将地址往后边移动一个字节addq $1,%rbx# 将b放入到mystring第二个字节里边movb $'b',(%rbx)# 将地址往后边移动一个字节addq $1,%rbx# 将换行符放入到mystring第三个字节里边movb $'\n',(%rbx)# 将地址往后边移动一个字节addq $1,%rbx# 将NULL放入到mystring第四个字节里边movb $0,(%rbx)# 1是CPU输出的系统调用号movq $1,%rax# rdi = 1,表示输出到屏幕上movq $1,%rdi# rsi里边存放输出的字符串第一个字节的位置movq $mystring,%rsi# rdx = 3,表明只输出3个字节movq $3,%rdxsyscallmovq $60,%raxmovq $0,%rdisyscall
sudo gcc -no-pie skipTest.s -o skipTest
进行编译,sudo ./skipTest
进行运行。