.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,%rdx
syscall
movq $60,%rax
movq $0,%rdi
syscall
sudo gcc -no-pie skipTest.s -o skipTest
进行编译,sudo ./skipTest
进行运行。